diff --git a/infra/libkookie/nixpkgs/unstable/.github/PULL_REQUEST_TEMPLATE.md b/infra/libkookie/nixpkgs/unstable/.github/PULL_REQUEST_TEMPLATE.md
index bfc07096aa9..168d40f16a9 100644
--- a/infra/libkookie/nixpkgs/unstable/.github/PULL_REQUEST_TEMPLATE.md
+++ b/infra/libkookie/nixpkgs/unstable/.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/infra/libkookie/nixpkgs/unstable/README.md b/infra/libkookie/nixpkgs/unstable/README.md
index 0b76b4bcdca..a09b7d92e3e 100644
--- a/infra/libkookie/nixpkgs/unstable/README.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/doc/contributing/coding-conventions.chapter.md b/infra/libkookie/nixpkgs/unstable/doc/contributing/coding-conventions.chapter.md
index 7a8e7741a33..79d90c23a40 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/contributing/coding-conventions.chapter.md
+++ b/infra/libkookie/nixpkgs/unstable/doc/contributing/coding-conventions.chapter.md
@@ -181,7 +181,7 @@
rev = "${version}";
```
-- Filling lists condionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
+- 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;
diff --git a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/crystal.section.md b/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/crystal.section.md
index cbe31f9f0b2..cbabba24f0c 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/crystal.section.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/dotnet.section.md b/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/dotnet.section.md
index 9bf96f3198a..f2a5efd05db 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/dotnet.section.md
+++ b/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/dotnet.section.md
@@ -77,9 +77,13 @@ To package Dotnet applications, you can use `buildDotnetModule`. This has simila
* `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.
+* `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.
diff --git a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/python.section.md b/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/python.section.md
index cc1a7083dc2..53466921887 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/python.section.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/ruby.section.md b/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/ruby.section.md
index 36b794458cb..5e2f72ed61e 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/ruby.section.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/rust.section.md b/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/rust.section.md
index 26eb9e26bd0..e7e804b9963 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/languages-frameworks/rust.section.md
+++ b/infra/libkookie/nixpkgs/unstable/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}
@@ -411,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
@@ -426,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
@@ -447,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
@@ -672,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 {};
@@ -729,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; };
@@ -742,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
@@ -871,76 +871,107 @@ 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)
-### Rust overlay installation {#rust-overlay-installation}
-
-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}
+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.
-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.
+Fenix is an alternative to `rustup` and can also be used as an overlay.
-```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
-```
+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`).
-### Declarative rust overlay installation {#declarative-rust-overlay-installation}
-
-Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
+### 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 (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
- # Further overlays go here
+ (import (fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
];
- };
-};
+ }
+}:
+pkgs.mkShell {
+ nativeBuildInputs = with pkgs; [
+ pkg-config
+ rust-bin.stable.latest.minimal
+ ];
+}
```
-Note that this will fetch the latest overlay version when rebuilding your system.
+You can try this out by:
+1. Saving that to `shell.nix`
+2. Executing `nix-shell --pure --command 'rustc --version'`
-### Rust overlay usage {#rust-overlay-usage}
+As of writing, this prints out `rustc 1.56.0 (09c42c458 2021-10-18)`.
-The overlay contains attribute sets corresponding to different versions of the rust toolchain, such as:
+### How to use an overlay toolchain in a derivation {#how-to-use-an-overlay-toolchain-in-a-derivation}
-* `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)
+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"))
+ ];
+};
-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.
+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";
+ };
-Imperatively, the latest stable version can be installed with the following command:
+ cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
-```ShellSession
-$ nix-env -Ai nixpkgs.latest.rustChannels.stable.rust
+ 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 ];
+ };
+}
```
-Or using the attribute with nix-shell:
+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`
-```ShellSession
-$ nix-shell -p nixpkgs.latest.rustChannels.stable.rust
-```
+### Rust overlay installation {#rust-overlay-installation}
+
+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).
+
+### Declarative Rust overlay installation {#declarative-rust-overlay-installation}
-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.
+This snippet shows how to use oxalica's Rust overlay.
+Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
-The overlay automatically updates itself as it uses the same source as
-[rustup](https://www.rustup.rs/).
+```nix
+{ pkgs ? import {
+ overlays = [
+ (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
+ # Further overlays go here
+ ];
+ };
+};
+```
+
+Note that this will fetch the latest overlay version when rebuilding your system.
diff --git a/infra/libkookie/nixpkgs/unstable/doc/stdenv/cross-compilation.chapter.md b/infra/libkookie/nixpkgs/unstable/doc/stdenv/cross-compilation.chapter.md
index 53522962a5c..f6e61a1af19 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/stdenv/cross-compilation.chapter.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/doc/stdenv/stdenv.chapter.md b/infra/libkookie/nixpkgs/unstable/doc/stdenv/stdenv.chapter.md
index 02042407f6c..c108fffd1b0 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/stdenv/stdenv.chapter.md
+++ b/infra/libkookie/nixpkgs/unstable/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}
@@ -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/infra/libkookie/nixpkgs/unstable/doc/using/overlays.chapter.md b/infra/libkookie/nixpkgs/unstable/doc/using/overlays.chapter.md
index d2e3b49a6aa..df152bc14e7 100644
--- a/infra/libkookie/nixpkgs/unstable/doc/using/overlays.chapter.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/lib/attrsets.nix b/infra/libkookie/nixpkgs/unstable/lib/attrsets.nix
index 31fddc59e20..812521ce6d1 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/attrsets.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/lib/customisation.nix b/infra/libkookie/nixpkgs/unstable/lib/customisation.nix
index a794b673d70..234a528527d 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/customisation.nix
+++ b/infra/libkookie/nixpkgs/unstable/lib/customisation.nix
@@ -145,14 +145,14 @@ rec {
let
outputs = drv.outputs or [ "out" ];
- commonAttrs = (removeAttrs drv [ "outputUnspecified" ]) //
- (builtins.listToAttrs outputsList) //
+ commonAttrs = drv // (builtins.listToAttrs outputsList) //
({ all = map (x: x.value) outputsList; }) // passthru;
outputToAttrListElement = outputName:
{ name = outputName;
value = commonAttrs // {
inherit (drv.${outputName}) type outputName;
+ outputSpecified = true;
drvPath = assert condition; drv.${outputName}.drvPath;
outPath = assert condition; drv.${outputName}.outPath;
};
@@ -160,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/infra/libkookie/nixpkgs/unstable/lib/lists.nix b/infra/libkookie/nixpkgs/unstable/lib/lists.nix
index e469f3ef265..1dbff7668d7 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/lists.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/lib/modules.nix b/infra/libkookie/nixpkgs/unstable/lib/modules.nix
index 46ae3f13631..d9b4000e56b 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/modules.nix
+++ b/infra/libkookie/nixpkgs/unstable/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;
};
};
@@ -183,10 +209,28 @@ rec {
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/infra/libkookie/nixpkgs/unstable/lib/options.nix b/infra/libkookie/nixpkgs/unstable/lib/options.nix
index b3164181312..5d52f065af0 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/options.nix
+++ b/infra/libkookie/nixpkgs/unstable/lib/options.nix
@@ -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
diff --git a/infra/libkookie/nixpkgs/unstable/lib/strings.nix b/infra/libkookie/nixpkgs/unstable/lib/strings.nix
index de135d1c274..b2fd495e4c8 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/strings.nix
+++ b/infra/libkookie/nixpkgs/unstable/lib/strings.nix
@@ -369,7 +369,7 @@ rec {
Example:
escapeXML ''"test" 'test' < & >''
- => "\\[\\^a-z]\\*"
+ => ""test" 'test' < & >"
*/
escapeXML = builtins.replaceStrings
["\"" "'" "<" ">" "&"]
diff --git a/infra/libkookie/nixpkgs/unstable/lib/systems/platforms.nix b/infra/libkookie/nixpkgs/unstable/lib/systems/platforms.nix
index 2a5f630c3de..b2a8dbedef4 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/systems/platforms.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/lib/tests/modules.sh b/infra/libkookie/nixpkgs/unstable/lib/tests/modules.sh
index b51db91f6b0..49fc8bcbafc 100755
--- a/infra/libkookie/nixpkgs/unstable/lib/tests/modules.sh
+++ b/infra/libkookie/nixpkgs/unstable/lib/tests/modules.sh
@@ -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
diff --git a/infra/libkookie/nixpkgs/unstable/lib/tests/modules/declare-submodule-via-evalModules.nix b/infra/libkookie/nixpkgs/unstable/lib/tests/modules/declare-submodule-via-evalModules.nix
new file mode 100644
index 00000000000..2841c64a073
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/lib/types.nix b/infra/libkookie/nixpkgs/unstable/lib/types.nix
index c2532065d7e..244cbb6b535 100644
--- a/infra/libkookie/nixpkgs/unstable/lib/types.nix
+++ b/infra/libkookie/nixpkgs/unstable/lib/types.nix
@@ -505,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 {
@@ -523,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/infra/libkookie/nixpkgs/unstable/maintainers/maintainer-list.nix b/infra/libkookie/nixpkgs/unstable/maintainers/maintainer-list.nix
index 22116f0b23c..aa3ce8fa6c7 100644
--- a/infra/libkookie/nixpkgs/unstable/maintainers/maintainer-list.nix
+++ b/infra/libkookie/nixpkgs/unstable/maintainers/maintainer-list.nix
@@ -159,6 +159,7 @@
};
abbe = {
email = "ashish.is@lostca.se";
+ matrix = "@abbe:badti.me";
github = "wahjava";
githubId = 2255192;
name = "Ashish SHUKLA";
@@ -741,6 +742,7 @@
angustrau = {
name = "Angus Trau";
email = "nix@angus.ws";
+ matrix = "@angustrau:matrix.org";
github = "angustrau";
githubId = 13267947;
};
@@ -1079,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";
@@ -1144,6 +1152,12 @@
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";
@@ -1650,6 +1664,7 @@
};
bryanasdev000 = {
email = "bryanasdev000@gmail.com";
+ matrix = "@bryanasdev000:matrix.org";
github = "bryanasdev000";
githubId = 53131727;
name = "Bryan Albuquerque";
@@ -2136,6 +2151,12 @@
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";
@@ -2872,6 +2893,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";
@@ -3115,6 +3142,7 @@
};
earvstedt = {
email = "erik.arvstedt@gmail.com";
+ matrix = "@erikarvstedt:matrix.org";
github = "erikarvstedt";
githubId = 36110478;
name = "Erik Arvstedt";
@@ -3207,12 +3235,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";
@@ -3257,6 +3279,7 @@
};
ekleog = {
email = "leo@gaspard.io";
+ matrix = "@leo:gaspard.ninja";
github = "ekleog";
githubId = 411447;
name = "Leo Gaspard";
@@ -3627,10 +3650,10 @@
};
expipiplus1 = {
email = "nix@monoid.al";
- matrix = "@joe:monoid.al";
+ matrix = "@ellie:monoid.al";
github = "expipiplus1";
githubId = 857308;
- name = "Joe Hermaszewski";
+ name = "Ellie Hermaszewska";
};
extends = {
email = "sharosari@gmail.com";
@@ -3726,6 +3749,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";
@@ -4076,6 +4106,12 @@
githubId = 20208;
name = "Rok Garbas";
};
+ gardspirito = {
+ name = "gardspirito";
+ email = "nyxoroso@gmail.com";
+ github = "gardspirito";
+ githubId = 29687558;
+ };
garrison = {
email = "jim@garrison.cc";
github = "garrison";
@@ -4165,6 +4201,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";
@@ -4816,6 +4858,7 @@
};
ilkecan = {
email = "ilkecan@protonmail.com";
+ matrix = "@ilkecan:matrix.org";
github = "ilkecan";
githubId = 40234257;
name = "ilkecan bozdogan";
@@ -5754,6 +5797,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";
@@ -6025,6 +6078,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";
@@ -6209,6 +6268,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";
@@ -6345,6 +6410,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";
@@ -7184,6 +7255,12 @@
githubId = 51356;
name = "Mathieu Boespflug";
};
+ mbprtpmnr = {
+ name = "mbprtpmnr";
+ email = "mbprtpmnr@pm.me";
+ github = "mbprtpmnr";
+ githubId = 88109321;
+ };
mbrgm = {
email = "marius@yeai.de";
github = "mbrgm";
@@ -7646,6 +7723,7 @@
mohe2015 = {
name = "Moritz Hedtke";
email = "Moritz.Hedtke@t-online.de";
+ matrix = "@moritz.hedtke:matrix.org";
github = "mohe2015";
githubId = 13287984;
keys = [{
@@ -8249,6 +8327,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";
@@ -8627,6 +8711,7 @@
};
pamplemousse = {
email = "xav.maso@gmail.com";
+ matrix = "@pamplemouss_:matrix.org";
github = "Pamplemousse";
githubId = 2647236;
name = "Xavier Maso";
@@ -8776,6 +8861,7 @@
};
peterhoeg = {
email = "peter@hoeg.com";
+ matrix = "@peter:hoeg.com";
github = "peterhoeg";
githubId = 722550;
name = "Peter Hoeg";
@@ -8840,6 +8926,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";
@@ -9308,6 +9400,12 @@
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";
@@ -9646,6 +9744,7 @@
};
rnhmjoj = {
email = "rnhmjoj@inventati.org";
+ matrix = "@rnhmjoj:maxwell.ydns.eu";
github = "rnhmjoj";
githubId = 2817565;
name = "Michele Guerini Rocco";
@@ -9747,6 +9846,7 @@
};
roosemberth = {
email = "roosembert.palacios+nixpkgs@posteo.ch";
+ matrix = "@roosemberth:orbstheorem.ch";
github = "roosemberth";
githubId = 3621083;
name = "Roosembert (Roosemberth) Palacios";
@@ -9801,6 +9901,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";
@@ -9887,6 +9993,7 @@
};
ryantm = {
email = "ryan@ryantm.com";
+ matrix = "@ryantm:matrix.org";
github = "ryantm";
githubId = 4804;
name = "Ryan Mulligan";
@@ -10711,6 +10818,12 @@
github = "staccato";
githubId = 86573128;
};
+ stackshadow = {
+ email = "stackshadow@evilbrain.de";
+ github = "stackshadow";
+ githubId = 7512804;
+ name = "Martin Langlotz";
+ };
steell = {
email = "steve@steellworks.com";
github = "Steell";
@@ -10788,6 +10901,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";
@@ -10854,13 +10973,6 @@
githubId = 2666479;
name = "Y Nguyen";
};
- superherointj = {
- name = "Sérgio G.";
- email = "5861043+superherointj@users.noreply.github.com";
- matrix = "@superherointj:matrix.org";
- github = "superherointj";
- githubId = 5861043;
- };
SuperSandro2000 = {
email = "sandro.jaeckel@gmail.com";
matrix = "@sandro:supersandro.de";
@@ -11200,6 +11312,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";
@@ -11668,6 +11791,13 @@
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";
@@ -12054,6 +12184,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";
@@ -12452,6 +12598,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";
@@ -12876,6 +13032,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";
@@ -12909,17 +13071,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/infra/libkookie/nixpkgs/unstable/maintainers/scripts/find-tarballs.nix b/infra/libkookie/nixpkgs/unstable/maintainers/scripts/find-tarballs.nix
index 52cce909918..990185bbb3b 100644
--- a/infra/libkookie/nixpkgs/unstable/maintainers/scripts/find-tarballs.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/maintainers/scripts/update.py b/infra/libkookie/nixpkgs/unstable/maintainers/scripts/update.py
index eb26a472e92..06b12a0ee04 100644
--- a/infra/libkookie/nixpkgs/unstable/maintainers/scripts/update.py
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/maintainers/team-list.nix b/infra/libkookie/nixpkgs/unstable/maintainers/team-list.nix
index 4a1ca99a590..fecea9e4148 100644
--- a/infra/libkookie/nixpkgs/unstable/maintainers/team-list.nix
+++ b/infra/libkookie/nixpkgs/unstable/maintainers/team-list.nix
@@ -145,6 +145,7 @@ with lib.maintainers; {
jitsi = {
members = [
+ cleeyv
petabyteboy
ryantm
yuka
@@ -199,7 +200,6 @@ with lib.maintainers; {
openstack = {
members = [
angustrau
- superherointj
SuperSandro2000
];
scope = "Maintain the ecosystem around OpenStack";
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/administration/cleaning-store.chapter.md b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/administration/cleaning-store.chapter.md
index fb2090b31d8..c9140d0869c 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/administration/cleaning-store.chapter.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/development/writing-nixos-tests.section.md b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/development/writing-nixos-tests.section.md
index 8471e7608af..d9749d37da7 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
index 0ca98dd6e51..4243d2bf53f 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
index 83a96d5bb22..0d523681b63 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/installation/installing.chapter.xml b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/installation/installing.chapter.xml
index 91ab7168297..db073fa8396 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/installation/installing.chapter.xml
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 1e80f635f06..9581b2afa68 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/infra/libkookie/nixpkgs/unstable/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,12 @@
Highlights
+
+
+ iptables now uses
+ nf_tables backend.
+
+
PHP now defaults to PHP 8.0, updated from 7.4.
@@ -44,6 +50,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
@@ -94,6 +123,25 @@
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
+
+
+
+
@@ -130,6 +178,14 @@
services.geoipupdate.
+
+
+ Jibri,
+ a service for recording or streaming a Jitsi Meet conference.
+ Available as
+ services.jibri.
+
+
Kea, ISCs
@@ -144,6 +200,14 @@
services.owncast.
+
+
+ PeerTube,
+ developed by Framasoft, is the free and decentralized
+ alternative to video platforms. Available at
+ services.peertube.
+
+
sourcehut, a
@@ -357,11 +421,57 @@
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.
+
+ 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,
@@ -379,6 +489,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
@@ -525,6 +643,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
@@ -1129,6 +1258,43 @@ Superuser created successfully.
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.
+
+
@@ -1152,25 +1318,31 @@ Superuser created successfully.
In NixOS virtual machines (QEMU), the
virtualisation module has been updated with
- new options to configure:
+ new options:
- IPv4 port forwarding
- (virtualisation.forwardPorts),
+ forwardPorts
+ to configure IPv4 port forwarding,
- shared host directories
- (virtualisation.sharedDirectories),
+ sharedDirectories
+ to set up shared host directories,
- screen resolution
- (virtualisation.resolution).
+ resolution
+ to set the screen resolution,
+
+
+
+
+ useNixStoreImage
+ to use a disk image for the Nix store instead of 9P.
@@ -1423,6 +1595,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
@@ -1596,6 +1785,88 @@ Superuser created successfully.
+
+
+ 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.
+
+
+
+
+ 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.
+
+
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/installation/installing.chapter.md b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/installation/installing.chapter.md
index a0823b51e9c..def4f37fbca 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/installation/installing.chapter.md
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/release-notes/rl-2111.section.md b/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/release-notes/rl-2111.section.md
index a598257f36c..0c603144b64 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/infra/libkookie/nixpkgs/unstable/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,8 @@ In addition to numerous new and upgraded packages, this release has the followin
## Highlights {#sec-release-21.11-highlights}
+- `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,6 +18,11 @@ 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.
@@ -33,6 +40,10 @@ In addition to numerous new and upgraded packages, this release has the followin
- 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
+
## 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).
@@ -43,10 +54,14 @@ In addition to numerous new and upgraded packages, this release has the followin
- [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).
@@ -110,13 +125,27 @@ In addition to numerous new and upgraded packages, this release has the followin
- [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.
+
## 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)
@@ -196,6 +225,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `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;`.
@@ -349,16 +380,29 @@ In addition to numerous new and upgraded packages, this release has the followin
- `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 to configure:
- - IPv4 port forwarding ([`virtualisation.forwardPorts`](options.html#opt-virtualisation.forwardPorts)),
- - shared host directories ([`virtualisation.sharedDirectories`](options.html#opt-virtualisation.sharedDirectories)),
- - screen resolution ([`virtualisation.resolution`](options.html#opt-virtualisation.resolution)).
+- In 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.
@@ -420,6 +464,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- 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.
@@ -457,3 +503,18 @@ In addition to numerous new and upgraded packages, this release has the followin
- `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.
+
+- 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.
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/lib/eval-config.nix b/infra/libkookie/nixpkgs/unstable/nixos/lib/eval-config.nix
index 15429a7160c..69e0a2afdba 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/lib/eval-config.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/lib/make-disk-image.nix b/infra/libkookie/nixpkgs/unstable/nixos/lib/make-disk-image.nix
index 55643facea0..0a4a71fadc4 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/lib/make-disk-image.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/lib/test-driver/test-driver.py b/infra/libkookie/nixpkgs/unstable/nixos/lib/test-driver/test-driver.py
index e659b0c04f5..a7c0484060f 100755
--- a/infra/libkookie/nixpkgs/unstable/nixos/lib/test-driver/test-driver.py
+++ b/infra/libkookie/nixpkgs/unstable/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
@@ -405,13 +404,14 @@ class Machine:
keep_vm_state: bool
allow_reboot: bool
- process: Optional[subprocess.Popen] = None
- pid: Optional[int] = None
- monitor: Optional[socket.socket] = None
- shell: Optional[socket.socket] = None
+ process: Optional[subprocess.Popen]
+ pid: Optional[int]
+ monitor: Optional[socket.socket]
+ shell: Optional[socket.socket]
+ serial_thread: Optional[threading.Thread]
- booted: bool = False
- connected: bool = False
+ booted: bool
+ connected: bool
# Store last serial console lines for use
# of wait_for_console_text
last_lines: Queue = Queue()
@@ -444,6 +444,15 @@ class Machine:
self.cleanup_statedir()
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
+
@staticmethod
def create_startcommand(args: Dict[str, str]) -> StartCommand:
rootlog.warning(
@@ -572,24 +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
@@ -921,7 +946,8 @@ class Machine:
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()
@@ -1021,9 +1047,12 @@ class Machine:
assert self.process
assert self.shell
assert self.monitor
+ assert self.serial_thread
+
self.process.terminate()
self.shell.close()
self.monitor.close()
+ self.serial_thread.join()
class VLan:
@@ -1114,11 +1143,13 @@ class Driver:
for cmd in cmd(start_scripts)
]
- @atexit.register
- def clean_up() -> None:
- with rootlog.nested("clean up"):
- for machine in self.machines:
- machine.release()
+ 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"""
@@ -1293,14 +1324,13 @@ if __name__ == "__main__":
if not args.keep_vm_state:
rootlog.info("Machine state will be reset. To keep it, pass --keep-vm-state")
- driver = Driver(
+ with Driver(
args.start_scripts, args.vlans, args.testscript.read_text(), args.keep_vm_state
- )
-
- 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")
+ ) 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/infra/libkookie/nixpkgs/unstable/nixos/lib/testing-python.nix b/infra/libkookie/nixpkgs/unstable/nixos/lib/testing-python.nix
index dbba9e4c445..cce017a6441 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/lib/testing-python.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/lib/testing-python.nix
@@ -209,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 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;
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/maintainers/scripts/lxd/lxd-image-inner.nix b/infra/libkookie/nixpkgs/unstable/nixos/maintainers/scripts/lxd/lxd-image-inner.nix
new file mode 100644
index 00000000000..74634fd1671
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/maintainers/scripts/lxd/lxd-image.nix b/infra/libkookie/nixpkgs/unstable/nixos/maintainers/scripts/lxd/lxd-image.nix
new file mode 100644
index 00000000000..c76b9fcc7f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/maintainers/scripts/lxd/nix.tpl b/infra/libkookie/nixpkgs/unstable/nixos/maintainers/scripts/lxd/nix.tpl
new file mode 100644
index 00000000000..307258ddc62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/config/console.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/config/console.nix
index 98f942ee63f..168bebd8d06 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/config/console.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/flirc.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/flirc.nix
new file mode 100644
index 00000000000..94ec715b9fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/gkraken.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/gkraken.nix
new file mode 100644
index 00000000000..97d15369db0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/printers.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/printers.nix
index 7bab4f7038d..ef07542950b 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/printers.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/printers.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/video/nvidia.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/video/nvidia.nix
index 8f6b5c22ea4..917c6d3013e 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/video/nvidia.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/hardware/video/nvidia.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/modules/installer/tools/nixos-enter.sh b/infra/libkookie/nixpkgs/unstable/nixos/modules/installer/tools/nixos-enter.sh
index e57296b38e4..00883205e8b 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/installer/tools/nixos-enter.sh
+++ b/infra/libkookie/nixpkgs/unstable/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
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/module-list.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/module-list.nix
index df35a57d047..c951db5822a 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/module-list.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
@@ -389,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
@@ -419,6 +422,7 @@
./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
@@ -583,6 +587,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
@@ -755,6 +760,7 @@
./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
@@ -766,6 +772,7 @@
./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
@@ -836,6 +843,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
@@ -966,6 +974,7 @@
./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
@@ -988,6 +997,7 @@
./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
@@ -998,6 +1008,7 @@
./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
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/file-roller.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/file-roller.nix
index b939d59909c..3c47d598165 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/file-roller.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/file-roller.nix
@@ -4,7 +4,9 @@
with lib;
-{
+let cfg = config.programs.file-roller;
+
+in {
# Added 2019-08-09
imports = [
@@ -21,6 +23,13 @@ with lib;
enable = mkEnableOption "File Roller, an archive manager for GNOME";
+ package = mkOption {
+ type = types.package;
+ default = pkgs.gnome.file-roller;
+ defaultText = literalExpression "pkgs.gnome.file-roller";
+ description = "File Roller derivation to use.";
+ };
+
};
};
@@ -28,11 +37,11 @@ with lib;
###### implementation
- config = mkIf config.programs.file-roller.enable {
+ config = mkIf cfg.enable {
- environment.systemPackages = [ pkgs.gnome.file-roller ];
+ environment.systemPackages = [ cfg.package ];
- services.dbus.packages = [ pkgs.gnome.file-roller ];
+ services.dbus.packages = [ cfg.package ];
};
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/neovim.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/neovim.nix
index 97b77ae98fe..26d75caeb8d 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/neovim.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/programs/neovim.nix
@@ -139,7 +139,7 @@ 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;
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/security/acme.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/security/acme.nix
index f522b7c4128..cfbc8e91903 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/security/acme.nix
+++ b/infra/libkookie/nixpkgs/unstable/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"
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/security/ca.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/security/ca.nix
index 83c15f90f92..f71d9d90ec5 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/security/ca.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/modules/security/pam.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/security/pam.nix
index 4c18fa8cc67..7c8db9db003 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/security/pam.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/audio/roon-server.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/audio/roon-server.nix
index 42da5a10017..566c7cae42c 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/audio/roon-server.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/backup/borgbackup.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/backup/borgbackup.nix
index 5461dbaf0bd..220c571b927 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/backup/borgbackup.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = ''
@@ -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.";
@@ -657,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/backup/restic.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/backup/restic.nix
index ac57f271526..67fef55614b 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/backup/restic.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/conf.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/conf.nix
index 38db10406b9..0caec5cfc20 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/conf.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/default.nix
index a165f619dc0..90f22c48e05 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 ];
@@ -13,40 +15,125 @@ with lib;
"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 = 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 = literalExpression ''
- {
- "mapreduce.map.cpu.vcores" = "1";
+ 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 = literalExpression ''
+ options.services.hadoop.yarnSite.default // {
+ "yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
+ }
+ '';
+ description = ''
+ Hadoop yarn-site.xml definition
+
+ '';
+ };
+
+ httpfsSite = mkOption {
+ default = { };
type = types.attrsOf types.anything;
example = literalExpression ''
{
- "yarn.resourcemanager.ha.id" = "resourcemanager1";
+ "hadoop.http.max.threads" = 500;
}
'';
- description = "Hadoop yarn-site.xml definition";
+ 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 {
@@ -60,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/hdfs.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/hdfs.nix
index 4f4b0a92108..be667aa82d8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/hdfs.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = {
+ 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;
};
- datanode.enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN DataNode
- '';
+ 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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/yarn.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/yarn.nix
index c92020637e4..37c26ea10f7 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/cluster/hadoop/yarn.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/client-rt.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/client-rt.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/client.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/client.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/client.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/client.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/jack.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/jack.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json
rename to infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
index 4ae6aab29cd..4be3e881a9d 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
@@ -13,10 +13,10 @@ 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));
- 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 = {
@@ -43,8 +43,8 @@ in {
package = mkOption {
type = types.package;
- default = pkgs.pipewire.mediaSession;
- defaultText = literalExpression "pkgs.pipewire.mediaSession";
+ default = pkgs.pipewire-media-session;
+ defaultText = literalExpression "pkgs.pipewire-media-session";
description = ''
The pipewire-media-session derivation to use.
'';
@@ -55,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 = {};
};
@@ -64,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 = {};
};
@@ -73,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 = {};
};
@@ -82,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 = {};
};
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire.nix
index 604645b2b18..55755ecd645 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/desktops/pipewire/pipewire.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = {
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/development/blackfire.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/development/blackfire.nix
index 6fd948cce38..8564aabc6a3 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/development/blackfire.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/development/blackfire.xml b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/development/blackfire.xml
index ad4af35788d..cecd249dda4 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/development/blackfire.xml
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/finance/odoo.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/finance/odoo.nix
new file mode 100644
index 00000000000..422ee951007
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/fancontrol.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/fancontrol.nix
index 5574c5a132e..861b70970b8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/fancontrol.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/power-profiles-daemon.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/power-profiles-daemon.nix
index 70b7a72b8ba..4144bc66708 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/power-profiles-daemon.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/rasdaemon.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/hardware/rasdaemon.nix
new file mode 100644
index 00000000000..b1efe0f18c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/misc/signald.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/misc/signald.nix
new file mode 100644
index 00000000000..4cd34e4326d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/misc/xmrig.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/misc/xmrig.nix
new file mode 100644
index 00000000000..15c7d2a7b14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/grafana.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/grafana.nix
index 9b21dc78b19..5067047e969 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/grafana.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/grafana.nix
@@ -677,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;
@@ -701,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/prometheus/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/prometheus/default.nix
index d2b37cf688b..5f7bda1acbc 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/prometheus/default.nix
@@ -7,6 +7,30 @@ let
workingDir = "/var/lib/" + cfg.stateDir;
+ prometheusYmlOut = "${workingDir}/prometheus-substituted.yaml";
+
+ writeConfig = pkgs.writeShellScriptBin "write-prometheus-config" ''
+ PATH="${makeBinPath (with pkgs; [ coreutils envsubst ])}"
+ touch '${prometheusYmlOut}'
+ chmod 600 '${prometheusYmlOut}'
+ envsubst -o '${prometheusYmlOut}' -i '${prometheusYml}'
+ '';
+
+ 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
@@ -47,7 +71,11 @@ let
cmdlineArgs = cfg.extraFlags ++ [
"--storage.tsdb.path=${workingDir}/data/"
- "--config.file=/run/prometheus/prometheus-substituted.yaml"
+ "--config.file=${
+ if cfg.enableReload
+ then prometheusYmlOut
+ else "/run/prometheus/prometheus-substituted.yaml"
+ }"
"--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
"--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
"--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
@@ -731,6 +759,25 @@ in {
'';
};
+ enableReload = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Reload prometheus when configuration file changes (instead of restart).
+
+ 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.
+
+ Note that prometheus will also get reloaded when the location of the
+ changes but not when its contents
+ changes. So when you change it contents make sure to reload prometheus
+ manually or include the hash of in its
+ name.
+ '';
+ };
+
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
@@ -928,7 +975,7 @@ in {
systemd.services.prometheus = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
- preStart = ''
+ preStart = mkIf (!cfg.enableReload) ''
${lib.getBin pkgs.envsubst}/bin/envsubst -o "/run/prometheus/prometheus-substituted.yaml" \
-i "${prometheusYml}"
'';
@@ -936,9 +983,10 @@ in {
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 ];
+ EnvironmentFile = mkIf (cfg.environmentFile != null && !cfg.enableReload) [ cfg.environmentFile ];
RuntimeDirectory = "prometheus";
RuntimeDirectoryMode = "0700";
WorkingDirectory = workingDir;
@@ -946,5 +994,48 @@ in {
StateDirectoryMode = "0700";
};
};
+ systemd.services.prometheus-config-write = mkIf cfg.enableReload {
+ wantedBy = [ "prometheus.service" ];
+ before = [ "prometheus.service" ];
+ serviceConfig = {
+ Type = "oneshot";
+ User = "prometheus";
+ StateDirectory = cfg.stateDir;
+ StateDirectoryMode = "0700";
+ EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
+ ExecStart = "${writeConfig}/bin/write-prometheus-config";
+ };
+ };
+ # 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 and needs to be reloaded
+ # (reloadIfChanged). The reload command then actually writes the new config
+ # and reloads prometheus.
+ systemd.services.prometheus-config-reload = mkIf cfg.enableReload {
+ wantedBy = [ "prometheus.service" ];
+ after = [ "prometheus.service" ];
+ reloadIfChanged = true;
+ serviceConfig = {
+ Type = "oneshot";
+ User = "prometheus";
+ StateDirectory = cfg.stateDir;
+ StateDirectoryMode = "0700";
+ EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
+ RemainAfterExit = true;
+ TimeoutSec = 60;
+ ExecStart = "${pkgs.logger}/bin/logger 'prometheus-config-reload will only reload prometheus when reloaded itself.'";
+ ExecReload = [
+ "${writeConfig}/bin/write-prometheus-config"
+ "+${triggerReload}/bin/trigger-reload-prometheus"
+ ];
+ };
+ };
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/unifi-poller.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/unifi-poller.nix
index 81a7b408bcc..cca4a0e7207 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/monitoring/unifi-poller.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 {
@@ -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 {
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/ddclient.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/ddclient.nix
index 7820eedd932..fd9c216b060 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/ddclient.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/jibri/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/jibri/default.nix
new file mode 100644
index 00000000000..96832b0eb55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/jibri/logging.properties-journal b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/jibri/logging.properties-journal
new file mode 100644
index 00000000000..61eadbfddcb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/lxd-image-server.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/lxd-image-server.nix
new file mode 100644
index 00000000000..5ec6cacffa4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.md b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.md
new file mode 100644
index 00000000000..5cdb598151e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.nix
index b0fbfc19408..2d498d4dbbc 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.nix
@@ -5,215 +5,553 @@ 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}
- '';
-
- passwordConf = optionalString cfg.checkPasswords ''
- password_file ${cfg.dataDir}/passwd
- '';
-
- 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}
- '';
-
- userAcl = (concatStringsSep "\n\n" (mapAttrsToList (n: c:
- "user ${n}\n" + (concatStringsSep "\n" c.acl)) cfg.users
- ));
-
- aclFile = pkgs.writeText "mosquitto.acl" ''
- ${cfg.aclExtraConf}
- ${userAcl}
- '';
+ # 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;
+
+ assertKeysValid = prefix: valid: config:
+ mapAttrsToList
+ (n: _: {
+ assertion = valid ? ${n};
+ message = "Invalid config key ${prefix}.${n}.";
+ })
+ config;
+
+ formatFreeform = { prefix ? "" }: mapAttrsToList (n: v: "${prefix}${n} ${optionToString v}");
+
+ userOptions = with types; submodule {
+ options = {
+ password = mkOption {
+ type = uniq (nullOr str);
+ default = null;
+ description = ''
+ Specifies the (clear text) password for the MQTT User.
+ '';
+ };
-in
+ 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.
+ '';
+ };
- ###### Interface
+ 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.
+ '';
+ };
- options = {
- services.mosquitto = {
- enable = mkEnableOption "the MQTT Mosquitto broker";
+ acl = mkOption {
+ type = listOf str;
+ example = [ "read A/B" "readwrite A/#" ];
+ default = [];
+ description = ''
+ Control client access to topics on the broker.
+ '';
+ };
+ };
+ };
- host = mkOption {
- default = "127.0.0.1";
- example = "0.0.0.0";
- type = types.str;
+ 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 = ''
- Host to listen on without SSL.
+ Plugin path to load, should be a .so file.
'';
};
- port = mkOption {
- default = 1883;
- type = types.int;
+ denySpecialChars = mkOption {
+ type = bool;
description = ''
- Port on which to listen without SSL.
+ Automatically disallow all clients using #
+ or + in their name/id.
'';
+ default = true;
};
- ssl = {
- enable = mkEnableOption "SSL listener";
+ options = mkOption {
+ type = attrsOf optionType;
+ description = ''
+ Options for the auth plugin. Each key turns into a auth_opt_*
+ line in the config.
+ '';
+ default = {};
+ };
+ };
+ };
- cafile = mkOption {
- type = types.nullOr types.path;
- default = null;
- description = "Path to PEM encoded CA certificates.";
- };
+ 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;
+ };
- certfile = mkOption {
- type = types.nullOr types.path;
- default = null;
- description = "Path to PEM encoded server certificate.";
- };
+ 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;
+ };
- keyfile = mkOption {
- type = types.nullOr types.path;
- default = null;
- description = "Path to PEM encoded server key.";
- };
+ address = mkOption {
+ type = nullOr str;
+ description = ''
+ Address to listen on. Listen on 0.0.0.0/::
+ when unset.
+ '';
+ default = null;
+ };
- host = mkOption {
- default = "0.0.0.0";
- example = "localhost";
- type = types.str;
- description = ''
- Host to listen on with SSL.
- '';
- };
+ 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 = [];
+ };
- port = mkOption {
- default = 8883;
- type = types.int;
- description = ''
- Port on which to listen with SSL.
- '';
- };
+ users = mkOption {
+ type = attrsOf userOptions;
+ example = { john = { password = "123456"; acl = [ "readwrite john/#" ]; }; };
+ description = ''
+ A set of users and their passwords and ACLs.
+ '';
+ default = {};
};
- dataDir = mkOption {
- default = "/var/lib/mosquitto";
- type = types.path;
+ omitPasswordAuth = mkOption {
+ type = bool;
description = ''
- The data directory.
+ 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;
};
- 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.
- '';
- };
+ acl = mkOption {
+ type = listOf str;
+ description = ''
+ Additional ACL items to prepend to the generated ACL file.
+ '';
+ example = [ "pattern read #" "topic readwrite anon/report/#" ];
+ default = [];
+ };
- 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.
- '';
- };
+ settings = mkOption {
+ type = submodule {
+ freeformType = attrsOf optionType;
+ };
+ description = ''
+ Additional settings for this listener.
+ '';
+ default = {};
+ };
+ };
+ };
- 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.
- '';
- };
+ 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;
+ };
- hashedPasswordFile = mkOption {
- type = with types; uniq (nullOr str);
- example = "/path/to/file";
- default = null;
+ bridgeOptions = with types; submodule {
+ options = {
+ addresses = mkOption {
+ type = listOf (submodule {
+ options = {
+ address = mkOption {
+ type = str;
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.
+ Address of the remote MQTT broker.
'';
};
- acl = mkOption {
- type = types.listOf types.str;
- example = [ "topic read A/B" "topic A/#" ];
+ port = mkOption {
+ type = port;
description = ''
- Control client access to topics on the broker.
+ Port of the remote MQTT broker.
'';
+ default = 1883;
};
};
});
- example = { john = { password = "123456"; acl = [ "topic readwrite john/#" ]; }; };
+ default = [];
description = ''
- A set of users and their passwords and ACLs.
+ Remote endpoints for the bridge.
'';
};
- allowAnonymous = mkOption {
- default = false;
- type = types.bool;
+ topics = mkOption {
+ type = listOf str;
description = ''
- Allow clients to connect without authentication.
+ 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/" ];
};
- checkPasswords = mkOption {
- default = false;
- example = true;
- type = types.bool;
+ settings = mkOption {
+ type = submodule {
+ freeformType = attrsOf optionType;
+ };
description = ''
- Refuse connection when clients provide incorrect passwords.
+ Additional settings for this bridge.
'';
+ default = {};
};
+ };
+ };
- extraConf = mkOption {
- default = "";
- type = types.lines;
- description = ''
- Extra config to append to `mosquitto.conf` file.
- '';
- };
+ 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;
+ };
- aclExtraConf = mkOption {
- default = "";
- type = types.lines;
- description = ''
- Extra config to prepend to the ACL file.
- '';
- };
+ 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
+
+{
+
+ ###### Interface
+
+ 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";
@@ -227,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
@@ -252,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
@@ -275,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 = {
@@ -302,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.xml b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/mosquitto.xml
new file mode 100644
index 00000000000..d16ab28c026
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/networkmanager.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/networkmanager.nix
index 2a826e0f087..74daf0ae9fa 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/networkmanager.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/networkmanager.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/seafile.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/seafile.nix
new file mode 100644
index 00000000000..856797b6b02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/smokeping.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/smokeping.nix
index 021368488a3..c075cbbceac 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/smokeping.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/smokeping.nix
@@ -131,10 +131,15 @@ in
};
imgUrl = mkOption {
type = types.str;
- default = "http://${cfg.hostName}:${toString cfg.port}/cache";
- defaultText = literalExpression ''"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"];
@@ -167,6 +172,17 @@ in
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;
@@ -297,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
@@ -311,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/unifi.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/unifi.nix
index caf89c84397..53ad4df477f 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/networking/unifi.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
{
@@ -68,16 +49,6 @@ in
'';
};
- 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
@@ -209,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;
@@ -220,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 pennae ];
}
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/step-ca.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/step-ca.nix
index 2eccc30e405..db7f81acd2a 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/step-ca.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/step-ca.nix
@@ -119,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/yubikey-agent.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/yubikey-agent.nix
index 8a2f98d0412..8be2457e1e2 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/security/yubikey-agent.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = {
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/torrent/transmission.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/torrent/transmission.nix
index b8cfcf39121..a6ff467914a 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/torrent/transmission.nix
+++ b/infra/libkookie/nixpkgs/unstable/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'';
@@ -156,34 +256,6 @@ in
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";
@@ -199,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";
@@ -228,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.
@@ -241,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 = "";
@@ -287,7 +357,6 @@ in
"quotactl"
];
SystemCallArchitectures = "native";
- SystemCallErrorNumber = "EPERM";
};
};
@@ -309,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,
@@ -342,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;
})
];
@@ -372,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}/**,
@@ -380,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/video/epgstation/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/video/epgstation/default.nix
index e34b6e0510a..36f7b937d5a 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/video/epgstation/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = {
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/bookstack.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/bookstack.nix
index 74eeb2faa4a..54c491f8b17 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/bookstack.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/bookstack.nix
@@ -221,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/code-server.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/code-server.nix
new file mode 100644
index 00000000000..474e9140ae8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/dokuwiki.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/dokuwiki.nix
index bc5b1a8be54..fc0e23729b3 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/dokuwiki.nix
@@ -66,6 +66,8 @@ let
siteOpts = { config, lib, name, ... }:
{
options = {
+ enable = mkEnableOption "DokuWiki web application.";
+
package = mkOption {
type = types.package;
default = pkgs.dokuwiki;
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/ihatemoney/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/ihatemoney/default.nix
index b4987fa4702..238241854c1 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/ihatemoney/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/invidious.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/invidious.nix
new file mode 100644
index 00000000000..7fb826af583
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/jitsi-meet.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/jitsi-meet.nix
index 2eacd87ae6f..2f1c4acec1e 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/jitsi-meet.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/jitsi-meet.nix
@@ -38,6 +38,10 @@ let
};
bosh = "//${cfg.hostName}/http-bind";
websocket = "wss://${cfg.hostName}/xmpp-websocket";
+
+ fileRecordingsEnabled = true;
+ liveStreamingEnabled = true;
+ hiddenDomain = "recorder.${cfg.hostName}";
};
in
{
@@ -48,7 +52,7 @@ in
type = str;
example = "meet.example.org";
description = ''
- Hostname of the Jitsi Meet instance.
+ FQDN of the Jitsi Meet instance.
'';
};
@@ -130,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;
@@ -229,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" ];
@@ -243,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
''
@@ -267,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
@@ -380,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/lemmy.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/lemmy.nix
index ae7d0d02c89..7cd2357c455 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/lemmy.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/lemmy.nix
@@ -214,8 +214,6 @@ in
systemd.services.lemmy-postgresql = mkIf cfg.settings.database.createLocally {
description = "Lemmy postgresql db";
after = [ "postgresql.service" ];
- bindsTo = [ "postgresql.service" ];
- requiredBy = [ "lemmy.service" ];
partOf = [ "lemmy.service" ];
script = with cfg.settings.database; ''
PSQL() {
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/mastodon.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/mastodon.nix
index d3790d8b176..7910f398048 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/mastodon.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/mastodon.nix
@@ -38,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
@@ -50,6 +50,9 @@ let
# Logs directory and mode
LogsDirectory = "mastodon";
LogsDirectoryMode = "0750";
+ # Proc filesystem
+ ProcSubset = "pid";
+ ProtectProc = "invisible";
# Access write directories
UMask = "0027";
# Capabilities
@@ -74,6 +77,7 @@ let
MemoryDenyWriteExecute = false;
RestrictRealtime = true;
RestrictSUIDSGID = true;
+ RemoveIPC = true;
PrivateMounts = true;
# System Call Filtering
SystemCallArchitectures = "native";
@@ -344,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 {
@@ -464,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" ];
@@ -491,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" ];
@@ -517,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;
};
@@ -541,7 +545,7 @@ in {
RuntimeDirectory = "mastodon-web";
RuntimeDirectoryMode = "0750";
# System Call Filtering
- SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
+ SystemCallFilter = [ ("~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ])) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
};
@@ -563,7 +567,7 @@ in {
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 ];
};
@@ -596,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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/nextcloud.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/nextcloud.nix
index b07bf3c57b8..550e10e9863 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/nextcloud.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/nextcloud.nix
@@ -156,7 +156,7 @@ 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;
@@ -510,13 +510,7 @@ in {
};
config = mkIf cfg.enable (mkMerge [
- { assertions = let acfg = cfg.config; in [
- { 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:
''
@@ -550,7 +544,6 @@ in {
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 isUnsupportedMariadb ''
@@ -577,7 +570,11 @@ 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
);
@@ -592,7 +589,7 @@ in {
{ systemd.timers.nextcloud-cron = {
wantedBy = [ "timers.target" ];
timerConfig.OnBootSec = "5m";
- timerConfig.OnUnitActiveSec = "15m";
+ timerConfig.OnUnitActiveSec = "5m";
timerConfig.Unit = "nextcloud-cron.service";
};
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/peertube.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/peertube.nix
new file mode 100644
index 00000000000..362a3358b79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/web-apps/peertube.nix
@@ -0,0 +1,447 @@
+{ lib, pkgs, config, ... }:
+
+let
+ cfg = config.services.peertube;
+
+ settingsFormat = pkgs.formats.json {};
+ configFile = settingsFormat.generate "production.json" cfg.settings;
+
+ env = {
+ NODE_CONFIG_DIR = "/var/lib/peertube/config";
+ NODE_ENV = "production";
+ NODE_EXTRA_CA_CERTS = "/etc/ssl/certs/ca-certificates.crt";
+ NPM_CONFIG_PREFIX = cfg.package;
+ HOME = cfg.package;
+ };
+
+ systemCallsList = [ "@cpu-emulation" "@debug" "@keyring" "@ipc" "@memlock" "@mount" "@obsolete" "@privileged" "@setuid" ];
+
+ cfgService = {
+ # Proc filesystem
+ ProcSubset = "pid";
+ ProtectProc = "invisible";
+ # Access write directories
+ UMask = "0027";
+ # Capabilities
+ CapabilityBoundingSet = "";
+ # Security
+ NoNewPrivileges = true;
+ # Sandboxing
+ ProtectSystem = "strict";
+ ProtectHome = true;
+ PrivateTmp = true;
+ PrivateDevices = true;
+ PrivateUsers = true;
+ ProtectClock = true;
+ ProtectHostname = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectControlGroups = true;
+ RestrictNamespaces = true;
+ LockPersonality = true;
+ RestrictRealtime = true;
+ RestrictSUIDSGID = true;
+ RemoveIPC = true;
+ PrivateMounts = true;
+ # System Call Filtering
+ SystemCallArchitectures = "native";
+ };
+
+ envFile = pkgs.writeText "peertube.env" (lib.concatMapStrings (s: s + "\n") (
+ (lib.concatLists (lib.mapAttrsToList (name: value:
+ if value != null then [
+ "${name}=\"${toString value}\""
+ ] else []
+ ) env))));
+
+ peertubeEnv = pkgs.writeShellScriptBin "peertube-env" ''
+ set -a
+ source "${envFile}"
+ eval -- "\$@"
+ '';
+
+ peertubeCli = pkgs.writeShellScriptBin "peertube" ''
+ node ~/dist/server/tools/peertube.js $@
+ '';
+
+in {
+ options.services.peertube = {
+ enable = lib.mkEnableOption "Enable Peertube’s service";
+
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = "peertube";
+ description = "User account under which Peertube runs.";
+ };
+
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = "peertube";
+ description = "Group under which Peertube runs.";
+ };
+
+ localDomain = lib.mkOption {
+ type = lib.types.str;
+ example = "peertube.example.com";
+ description = "The domain serving your PeerTube instance.";
+ };
+
+ listenHttp = lib.mkOption {
+ type = lib.types.int;
+ default = 9000;
+ description = "listen port for HTTP server.";
+ };
+
+ listenWeb = lib.mkOption {
+ type = lib.types.int;
+ default = 9000;
+ description = "listen port for WEB server.";
+ };
+
+ enableWebHttps = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "Enable or disable HTTPS protocol.";
+ };
+
+ dataDirs = lib.mkOption {
+ type = lib.types.listOf lib.types.path;
+ default = [ ];
+ example = [ "/opt/peertube/storage" "/var/cache/peertube" ];
+ description = "Allow access to custom data locations.";
+ };
+
+ serviceEnvironmentFile = lib.mkOption {
+ type = lib.types.nullOr lib.types.path;
+ default = null;
+ example = "/run/keys/peertube/password-init-root";
+ description = ''
+ Set environment variables for the service. Mainly useful for setting the initial root password.
+ For example write to file:
+ PT_INITIAL_ROOT_PASSWORD=changeme
+ '';
+ };
+
+ settings = lib.mkOption {
+ type = settingsFormat.type;
+ example = lib.literalExpression ''
+ {
+ listen = {
+ hostname = "0.0.0.0";
+ };
+ log = {
+ level = "debug";
+ };
+ storage = {
+ tmp = "/opt/data/peertube/storage/tmp/";
+ logs = "/opt/data/peertube/storage/logs/";
+ cache = "/opt/data/peertube/storage/cache/";
+ };
+ }
+ '';
+ description = "Configuration for peertube.";
+ };
+
+ database = {
+ createLocally = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "Configure local PostgreSQL database server for PeerTube.";
+ };
+
+ host = lib.mkOption {
+ type = lib.types.str;
+ default = if cfg.database.createLocally then "/run/postgresql" else null;
+ example = "192.168.15.47";
+ description = "Database host address or unix socket.";
+ };
+
+ port = lib.mkOption {
+ type = lib.types.int;
+ default = 5432;
+ description = "Database host port.";
+ };
+
+ name = lib.mkOption {
+ type = lib.types.str;
+ default = "peertube";
+ description = "Database name.";
+ };
+
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = "peertube";
+ description = "Database user.";
+ };
+
+ passwordFile = lib.mkOption {
+ type = lib.types.nullOr lib.types.path;
+ default = null;
+ example = "/run/keys/peertube/password-posgressql-db";
+ description = "Password for PostgreSQL database.";
+ };
+ };
+
+ redis = {
+ createLocally = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "Configure local Redis server for PeerTube.";
+ };
+
+ host = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then "127.0.0.1" else null;
+ description = "Redis host.";
+ };
+
+ port = lib.mkOption {
+ type = lib.types.nullOr lib.types.port;
+ default = if cfg.redis.createLocally && cfg.redis.enableUnixSocket then null else 6379;
+ description = "Redis port.";
+ };
+
+ passwordFile = lib.mkOption {
+ type = lib.types.nullOr lib.types.path;
+ default = null;
+ example = "/run/keys/peertube/password-redis-db";
+ description = "Password for redis database.";
+ };
+
+ enableUnixSocket = lib.mkOption {
+ type = lib.types.bool;
+ default = cfg.redis.createLocally;
+ description = "Use Unix socket.";
+ };
+ };
+
+ smtp = {
+ createLocally = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "Configure local Postfix SMTP server for PeerTube.";
+ };
+
+ passwordFile = lib.mkOption {
+ type = lib.types.nullOr lib.types.path;
+ default = null;
+ example = "/run/keys/peertube/password-smtp";
+ description = "Password for smtp server.";
+ };
+ };
+
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.peertube;
+ description = "Peertube package to use.";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ assertions = [
+ { assertion = cfg.serviceEnvironmentFile == null || !lib.hasPrefix builtins.storeDir cfg.serviceEnvironmentFile;
+ message = ''
+ 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 <
- 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/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/desktop-managers/plasma5.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 11cb4d3b8a9..8a1793484e2 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -1,19 +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";
- sed = "${getBin pkgs.gnused}/bin/sed";
+ ini = pkgs.formats.ini { };
gtkrc2 = writeText "gtkrc-2.0" ''
# Default GTK+ 2 config for NixOS Plasma 5
@@ -33,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}
@@ -75,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
@@ -87,95 +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}"
-
- ''
- + 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
+ 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}
+
+ # 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
+ fi
+ '';
in
{
- options = {
-
- services.xserver.desktopManager.plasma5 = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = "Enable the Plasma 5 (KDE 5) desktop environment.";
- };
+ 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.";
- };
+ 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.
- '';
- };
+ 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.";
- };
+ 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 = [
@@ -187,33 +180,39 @@ in
(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;
- ''];
+ 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
@@ -247,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
@@ -314,7 +313,8 @@ in
breeze-icons
pkgs.hicolor-icon-theme
- kde-gtk-config breeze-gtk
+ kde-gtk-config
+ breeze-gtk
qtvirtualkeyboard
@@ -336,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;
@@ -361,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
@@ -385,6 +389,27 @@ 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 ];
@@ -395,5 +420,4 @@ in
nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
})
];
-
}
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/display-managers/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/display-managers/default.nix
index 7fc8db95a48..bdc46faa7fd 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/display-managers/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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}
'';
@@ -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.
'';
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/display-managers/sddm.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/display-managers/sddm.nix
index 5a4fad9c4cb..529a086381f 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = {
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index 6c26b4e0f87..c38bef9d6d4 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/infra/libkookie/nixpkgs/unstable/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 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[Tuple[Optional[str], int]]) -> None:
+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 = []
@@ -243,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/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/stage-2-init.sh b/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/stage-2-init.sh
index 50ee0b8841e..afaca2e4158 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/stage-2-init.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/systemd-lib.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/systemd-lib.nix
index 2dbf15031a0..6c4d27018ee 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/systemd-lib.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/systemd.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/systemd.nix
index 93ea77d1ee7..8fcf62d7fbf 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/boot/systemd.nix
+++ b/infra/libkookie/nixpkgs/unstable/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"
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/etc/setup-etc.pl b/infra/libkookie/nixpkgs/unstable/nixos/modules/system/etc/setup-etc.pl
index eed20065087..be6b2d9ae71 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/system/etc/setup-etc.pl
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/modules/tasks/filesystems/zfs.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/tasks/filesystems/zfs.nix
index 2c03ef7ba7e..65364801c32 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/tasks/filesystems/zfs.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/tasks/filesystems/zfs.nix
@@ -561,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
@@ -575,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/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/libvirtd.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/libvirtd.nix
index 121e7286bc1..ab87394a30e 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/libvirtd.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/libvirtd.nix
@@ -254,7 +254,7 @@ in
"allow ${e}")
cfg.allowedBridges;
systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemu.package ];
- etc.ethertypes.source = "${pkgs.ebtables}/etc/ethertypes";
+ etc.ethertypes.source = "${pkgs.iptables}/etc/ethertypes";
};
boot.kernelModules = [ "tun" ];
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxc-container.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxc-container.nix
index e47bd59dc01..c7d5ee1fd11 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxc-container.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = literalExample ''
+ {
+ # 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" ];
+ };
+ };
+ '';
+ };
+ };
+ };
+
+ 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
+
+ # 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;
+ };
- # Some more help text.
- services.getty.helpLine =
- ''
+ # TODO: build rootfs as squashfs for faster unpack
+ system.build.tarball = pkgs.callPackage ../../lib/make-system-tarball.nix {
+ extraArgs = "--owner=0";
- Log in as "root" with an empty password.
+ 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 "";
+
+ 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.
+ '';
- # Allow ssh connections
- networking.firewall.allowedTCPPorts = [ 22 ];
+ # Containers should be light-weight, so start sshd on demand.
+ services.openssh.enable = mkDefault true;
+ services.openssh.startWhenNeeded = mkDefault true;
+ };
}
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxd.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxd.nix
index 94cd22d1371..18451b147ff 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxd.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/lxd.nix
@@ -34,7 +34,7 @@ in {
package = mkOption {
type = types.package;
- default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
+ default = pkgs.lxd;
defaultText = literalExpression "pkgs.lxd";
description = ''
The LXD package to use.
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/qemu-vm.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/qemu-vm.nix
index c5f71b249a6..a8db42f5ed6 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/qemu-vm.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/qemu-vm.nix
@@ -122,6 +122,12 @@ let
TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi
+ ${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
+ ''}
+
# Create a directory for exchanging data with the VM.
mkdir -p "$TMPDIR/xchg"
@@ -171,7 +177,7 @@ let
'';
- 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
@@ -263,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 = {
@@ -399,17 +418,23 @@ in
'';
};
- virtualisation.pathsInNixDB =
+ virtualisation.additionalPaths =
mkOption {
type = types.listOf types.path;
default = [];
description =
''
- The list of paths whose closure is registered in the Nix
- database in the VM. All other paths in the host Nix store
+ 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 in the guest).
+ database of the guest).
+
+ When is
+ set, the closure is copied to the Nix store image.
'';
};
@@ -535,7 +560,7 @@ in
package =
mkOption {
type = types.package;
- default = pkgs.qemu;
+ default = pkgs.qemu_kvm;
example = "pkgs.qemu_test";
description = "QEMU package to use.";
};
@@ -608,6 +633,20 @@ in
};
};
+ 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;
@@ -740,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
@@ -759,12 +798,21 @@ in
virtualisation.bootDevice = mkDefault (driveDeviceName 1);
- virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
+ virtualisation.additionalPaths = [ config.system.build.toplevel ];
virtualisation.sharedDirectories = {
- nix-store = { source = "/nix/store"; target = "/nix/store"; };
- xchg = { source = ''"$TMPDIR"/xchg''; target = "/tmp/xchg"; };
- shared = { source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"''; target = "/tmp/shared"; };
+ 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 =
@@ -815,6 +863,11 @@ in
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`].
@@ -865,6 +918,13 @@ in
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
};
+ "/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" ];
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/vmware-guest.nix b/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/vmware-guest.nix
index 7b25ffc440f..480a9703cef 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/modules/virtualisation/vmware-guest.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/release.nix b/infra/libkookie/nixpkgs/unstable/nixos/release.nix
index 264d82bacc8..6b7564a9b97 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/release.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/all-tests.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/all-tests.nix
index 12b67008291..a48dcda94d7 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/all-tests.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/all-tests.nix
@@ -26,15 +26,12 @@ 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
beanstalkd = handleTest ./beanstalkd.nix {};
@@ -131,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 {};
@@ -165,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 {};
@@ -173,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.
@@ -190,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 {};
@@ -206,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 {};
@@ -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 {};
@@ -323,6 +324,7 @@ 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 {};
@@ -343,6 +345,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 +353,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 +370,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 {};
@@ -383,6 +388,7 @@ in
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 {};
@@ -414,7 +420,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 {};
@@ -431,6 +437,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 {};
@@ -447,8 +454,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 {};
@@ -460,7 +467,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 {};
@@ -493,7 +499,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/infra/libkookie/nixpkgs/unstable/nixos/tests/ammonite.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/ammonite.nix
deleted file mode 100644
index 4b674f35e3c..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/awscli.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/awscli.nix
deleted file mode 100644
index e6741fcf141..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/bat.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/bat.nix
deleted file mode 100644
index 0f548a590fb..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/bittorrent.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/bittorrent.nix
index ee7a582922c..11420cba9dc 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/bittorrent.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/borgbackup.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/borgbackup.nix
index fae1d2d0713..cbb28689209 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/borgbackup.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/chromium.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/chromium.nix
index ea9e19cefbc..8965646bc5d 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/chromium.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/cifs-utils.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/cifs-utils.nix
deleted file mode 100644
index 98587b10d94..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-bridge.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-bridge.nix
index 12fa67c8b01..a1b0c9469d8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-bridge.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-extra_veth.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-extra_veth.nix
index cbbb2525832..172409f56e8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-extra_veth.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-imperative.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-imperative.nix
index 1dcccfc306a..34103ef7586 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-imperative.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-ip.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-ip.nix
index 5abea2dbad9..8fc42dab624 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-ip.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-portforward.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-portforward.nix
index 221a6f50efd..e21f6cee76a 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-portforward.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-tmpfs.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-tmpfs.nix
index fd9f9a252ca..0185c2d91f2 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/containers-tmpfs.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/croc.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/croc.nix
index 75a8fc991d4..5d709eb3d1c 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/croc.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/custom-ca.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/custom-ca.nix
index 05cfbbb2fdf..4480519c7ed 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/custom-ca.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/custom-ca.nix
@@ -109,9 +109,7 @@ 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
qutebrowser
midori
@@ -153,9 +151,7 @@ in
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": "Security Risk",
+ "firefox": "Security Risk",
"chromium": "not private",
"qutebrowser -T": "Certificate error",
"midori": "Security"
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/tests/deluge.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/deluge.nix
index f673ec2db5a..33c57ce7c36 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/deluge.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/discourse.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/discourse.nix
index 7dd39085a00..cfac5f84a62 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/discourse.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/elk.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/elk.nix
index 2a1a4cba295..ae746d7e1f0 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/elk.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/emacs-daemon.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/emacs-daemon.nix
index 58bcd095990..e12da56021d 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/emacs-daemon.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/enlightenment.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/enlightenment.nix
index 4623574ce92..c5f0e208906 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/enlightenment.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/enlightenment.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/tests/etesync-dav.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/etesync-dav.nix
index da5c056f534..6a747e23f76 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/etesync-dav.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/firefox.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/firefox.nix
index dcaf369b62b..7216ad43b8e 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/firefox.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/firefox.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/tests/ft2-clone.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/ft2-clone.nix
index c877054234e..71eda43e2b2 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/ft2-clone.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/ghostunnel.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/ghostunnel.nix
index a82cff8082b..8bea6485402 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/ghostunnel.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/gitlab.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/gitlab.nix
index 3e9feeb0769..dc3b889c8e8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/gitlab.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/hadoop.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/hadoop.nix
new file mode 100644
index 00000000000..b4ed0e17a85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/hdfs.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/hdfs.nix
index f1f98ed42eb..360dbd60ed2 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/hdfs.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/yarn.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/yarn.nix
index 01077245d39..09bdb35791c 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/hadoop/yarn.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/handbrake.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/handbrake.nix
index c92fb5db7d6..d2d41b372be 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/handbrake.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/hibernate.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/hibernate.nix
index ae506c8542f..4f05b99a5a1 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/hibernate.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/home-assistant.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/home-assistant.nix
index 699be8fd7dc..0894736bac9 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/home-assistant.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/default.nix
similarity index 52%
rename from infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney.nix
rename to infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/default.nix
index 0451a450580..78278d2e869 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/rates.json b/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/rates.json
new file mode 100644
index 00000000000..ebdd2651b04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/server.crt b/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/server.crt
new file mode 100644
index 00000000000..10e568b14b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/server.key b/infra/libkookie/nixpkgs/unstable/nixos/tests/ihatemoney/server.key
new file mode 100644
index 00000000000..72a43577d64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/installed-tests/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/installed-tests/default.nix
index 6c2846a1636..08785e5e666 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/installed-tests/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/installed-tests/power-profiles-daemon.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/installed-tests/power-profiles-daemon.nix
new file mode 100644
index 00000000000..43629a0155d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/invidious.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/invidious.nix
new file mode 100644
index 00000000000..8b831715a44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/jibri.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/jibri.nix
new file mode 100644
index 00000000000..3dd28e6aac1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/keepassxc.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/keepassxc.nix
index 98902187f6a..685a200b318 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/keepassxc.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/kernel-generic.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/kernel-generic.nix
index 192dc810d7a..3fdd3995b7a 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/kernel-generic.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/kernel-generic.nix
@@ -23,22 +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_14
-
- linuxPackages_4_14_hardened
- linuxPackages_4_19_hardened
- linuxPackages_5_4_hardened
- linuxPackages_5_10_hardened
-
- linuxPackages_testing;
+ kernels = pkgs.linuxKernel.vanillaPackages // {
+ inherit (pkgs.linuxKernel.packages)
+ linux_4_14_hardened
+ linux_4_19_hardened
+ linux_5_4_hardened
+ linux_5_10_hardened
+
+ linux_testing;
};
in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/tests/kexec.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/kexec.nix
index ec0cd9796b0..b0d072167fa 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/kexec.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/keymap.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/keymap.nix
index a18a05f90c6..4306a9ae2cf 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/keymap.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/libreswan.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/libreswan.nix
index 17ae60af8ee..56ab908aed9 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/libreswan.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/lorri/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/lorri/default.nix
index c33c7503993..147ae999fdb 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/lorri/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/lsd.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/lsd.nix
deleted file mode 100644
index c643f2f0b7b..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd-image-server.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd-image-server.nix
new file mode 100644
index 00000000000..9f060fed38d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd-image.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd-image.nix
new file mode 100644
index 00000000000..bc8274eebed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd.nix
index 889ca9598e3..1a3b84a85cf 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/lxd.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/magic-wormhole-mailbox-server.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/magic-wormhole-mailbox-server.nix
index afdf7124fdc..54088ac60f2 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/magic-wormhole-mailbox-server.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/matrix-appservice-irc.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/matrix-appservice-irc.nix
index 79b07ef83c5..e1da410af06 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/matrix-appservice-irc.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
-
- 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...")
-
-
- def callback(room, e):
- if "hi from irc" in e['content']['body']:
- exit(0)
-
-
- m_room.add_listener(callback, "m.room.message")
- matrix.listen_forever()
- ''
+ {
+ 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
+
+ from nio import AsyncClient, RoomMessageText, JoinResponse
+
+
+ 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
+
+
+ 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/infra/libkookie/nixpkgs/unstable/nixos/tests/minecraft.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/minecraft.nix
index 3225ebac392..1c34f04b4df 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/minecraft.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/mosquitto.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/mosquitto.nix
index e29bd559ed9..36cc8e3e3d9 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/mosquitto.nix
+++ b/infra/libkookie/nixpkgs/unstable/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;
+ };
+
+ 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}" ];
+ };
+ };
+ }
+ ];
};
-
- # disable private /tmp for this test
- systemd.services.mosquitto.serviceConfig.PrivateTmp = lib.mkForce false;
};
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}")
-
- # QoS = 0, so only one subscribers should get it
- server.execute(subscribe("-q 0"))
-
- # we need to give the subscribers some time to connect
- client2.execute("sleep 5")
- client2.succeed(publish("-m FOO -q 0"))
-
- server.wait_until_succeeds("grep -q FOO ${file}")
- server.execute("rm ${file}")
-
- # QoS = 1, so both subscribers should get it
- server.execute(subscribe("-q 1"))
- client1.execute(subscribe("-q 1"))
-
- # 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 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"))
+
+ with subtest("check acl"):
+ client1.succeed(subscribe("", "reader", topic="$SYS/#"))
+ client1.fail(subscribe("", "writer", topic="$SYS/#"))
+
+ 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"))
+ ])
+
+ 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"))
+ ])
+
+ 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"))
+
+ 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/infra/libkookie/nixpkgs/unstable/nixos/tests/mpv.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/mpv.nix
index 9e44862cb1b..a4803f3cb5b 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/mpv.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/mpv.nix
@@ -21,7 +21,7 @@ in
};
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/infra/libkookie/nixpkgs/unstable/nixos/tests/mumble.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/mumble.nix
index 717f3c78928..2b5cc20163b 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/mumble.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/musescore.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/musescore.nix
index 96481a9a8bf..7fd80d70df1 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/musescore.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/nextcloud/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/nextcloud/default.nix
index 65043e509b3..bd7a7aacdc9 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/nextcloud/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/nextcloud/default.nix
@@ -18,4 +18,4 @@ foldl
};
})
{}
- [ 20 21 22 ]
+ [ 21 22 ]
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/tests/nfs/simple.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/nfs/simple.nix
index 6a01089c082..1e319a8eec8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/nfs/simple.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/nginx-etag.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/nginx-etag.nix
index 63ab2e0c6c2..a7bfc0d2695 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/nginx-etag.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/nixops/default.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/nixops/default.nix
index 4520b426849..3fb81906a52 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/nixops/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/nixops/default.nix
@@ -27,7 +27,7 @@ let
users.users.person.isNormalUser = true;
virtualisation.writableStore = true;
virtualisation.memorySize = 1024 /*MiB*/;
- virtualisation.pathsInNixDB = [
+ virtualisation.additionalPaths = [
pkgs.hello
pkgs.figlet
@@ -78,7 +78,7 @@ let
# 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] >/dev/console; done &")
+ deployer.succeed("while sleep 60s; do echo [60s passed]; done >&2 &")
deployer_do("cd ~/unicorn; ssh -oStrictHostKeyChecking=accept-new root@server echo hi")
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/tests/odoo.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/odoo.nix
new file mode 100644
index 00000000000..96e3405482b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/openarena.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/openarena.nix
index 461a35e89fe..63dc1b9a685 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/openarena.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/openresty-lua.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/openresty-lua.nix
new file mode 100644
index 00000000000..b177b3c194d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/os-prober.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/os-prober.nix
index 3cc38ebe347..a7b955d4472 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/os-prober.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/owncast.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/owncast.nix
index e54d2cc5dd4..debb34f5009 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/owncast.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/owncast.nix
@@ -1,21 +1,42 @@
-{ system ? builtins.currentSystem, config ? { }
-, pkgs ? import ../.. { inherit system config; } }:
-
-with import (nixpkgs + "/nixos/lib/testing-python.nix") { inherit system; };
-makeTest {
+import ./make-test-python.nix ({ pkgs, ... }: {
name = "owncast";
- meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ MayNiklas ]; };
+ meta = with pkgs.lib.maintainers; { maintainers = [ MayNiklas ]; };
nodes = {
- client = { ... }: {
- environment.systemPackages = [ curl ];
- services.owncast = { enable = true; };
+ 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("owncast.service")
- client.succeed("curl localhost:8080/api/status")
+
+ 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/infra/libkookie/nixpkgs/unstable/nixos/tests/pantheon.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/pantheon.nix
index 20aee2eb7a4..aebf6b53447 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/pantheon.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/pantheon.nix
@@ -51,7 +51,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
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/infra/libkookie/nixpkgs/unstable/nixos/tests/plasma5-systemd-start.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/plasma5-systemd-start.nix
new file mode 100644
index 00000000000..ac6fad7da6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/plasma5.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/plasma5.nix
index 7a5b7db9462..281c9843e90 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/plasma5.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/plasma5.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/tests/plotinus.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/plotinus.nix
index ddd6a4c1194..af38b41813b 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/plotinus.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/printing.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/printing.nix
index badcb99a57a..6338fd8d8ac 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/printing.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/prometheus.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/prometheus.nix
index 70ac78a4a46..d102b4c0751 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/prometheus.nix
+++ b/infra/libkookie/nixpkgs/unstable/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,36 @@ 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.
+ # We also use an environmentFile to test if that works correctly.
+ services.prometheus = {
+ environmentFile = pkgs.writeText "prometheus-config-env-file" ''
+ JOB_NAME=s3-node_exporter
+ '';
+ scrapeConfigs = [
+ {
+ job_name = "$JOB_NAME";
+ static_configs = [
+ {
+ targets = [ "s3:9100" ];
+ }
+ ];
+ }
+ ];
+ };
+ };
+ };
+ };
};
query = { pkgs, ... }: {
@@ -171,10 +202,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 +231,12 @@ in import ./make-test-python.nix {
# Check if prometheus responds to requests:
prometheus.wait_for_unit("prometheus.service")
+
+ # Check if prometheus' config file is correctly locked down because it could contain secrets.
+ prometheus.succeed(
+ "stat -c '%a %U' /var/lib/prometheus2/prometheus-substituted.yaml | grep '600 prometheus'"
+ )
+
prometheus.wait_for_open_port(${toString queryPort})
prometheus.succeed("curl -sf http://127.0.0.1:${toString queryPort}/metrics")
@@ -245,5 +289,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/infra/libkookie/nixpkgs/unstable/nixos/tests/pt2-clone.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/pt2-clone.nix
index 3c090b7de42..364920c3987 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/pt2-clone.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/rasdaemon.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/rasdaemon.nix
new file mode 100644
index 00000000000..e4bd8d96a8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/seafile.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/seafile.nix
new file mode 100644
index 00000000000..70b9ba55457
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/service-runner.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/service-runner.nix
index 58f46735f56..79d96f739a6 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/service-runner.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/shattered-pixel-dungeon.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/shattered-pixel-dungeon.nix
index d8c4b44819e..d4e5de22ab9 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/shattered-pixel-dungeon.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/signal-desktop.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/signal-desktop.nix
index 379af4d3912..7bc7cfe18cf 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/signal-desktop.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/soapui.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/soapui.nix
index 205128df91f..76a87ed5efa 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/soapui.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/spike.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/spike.nix
deleted file mode 100644
index 09035a15641..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/sssd-ldap.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/sssd-ldap.nix
index e3119348eac..5c58eaef714 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/sssd-ldap.nix
+++ b/infra/libkookie/nixpkgs/unstable/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}
+ };
+ declarativeContents = {
+ ${dbSuffix} = ''
+ dn: ${dbSuffix}
+ objectClass: top
+ objectClass: dcObject
+ objectClass: organization
+ o: ${dbDomain}
- dn: ou=posix,${dbSuffix}
- objectClass: top
- objectClass: organizationalUnit
+ dn: ou=posix,${dbSuffix}
+ objectClass: top
+ objectClass: organizationalUnit
- dn: ou=accounts,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: ""
- '';
- };
+ dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
+ objectClass: person
+ objectClass: posixAccount
+ # userPassword: somePasswordHash
+ homeDirectory: /home/${testUser}
+ uidNumber: 1234
+ gidNumber: 1234
+ cn: ""
+ sn: ""
+ '';
};
+ };
- services.sssd = {
- enable = true;
- config = ''
- [sssd]
- config_file_version = 2
- services = nss, pam, sudo
- domains = ${dbDomain}
+ 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}
- '';
- };
+ [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}")
- '';
- }
-)
+ testScript = ''
+ machine.start()
+ machine.wait_for_unit("openldap.service")
+ machine.wait_for_unit("sssd.service")
+ machine.succeed("getent passwd ${testUser}")
+ '';
+})
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/tests/switch-test.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/switch-test.nix
index 4caa7d98f47..7ea07a390b8 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/switch-test.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/switch-test.nix
@@ -392,7 +392,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
machine.succeed("touch /testpath")
machine.wait_until_succeeds("test -f /testpath-modified")
- machine.succeed("rm /testpath /testpath-modified")
+ machine.succeed("rm /testpath")
+ machine.succeed("rm /testpath-modified")
switch_to_specialisation("with-path-modified")
machine.succeed("touch /testpath")
diff --git a/infra/libkookie/nixpkgs/unstable/nixos/tests/systemd-boot.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/systemd-boot.nix
index 3c93cb82d64..a6742606dbe 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/systemd-boot.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/systemd-cryptenroll.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/systemd-cryptenroll.nix
new file mode 100644
index 00000000000..2c436f2de89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/tigervnc.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/tigervnc.nix
index 092eaf238d8..ed575682d93 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/tigervnc.nix
+++ b/infra/libkookie/nixpkgs/unstable/nixos/tests/tigervnc.nix
@@ -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/infra/libkookie/nixpkgs/unstable/nixos/tests/turbovnc-headless-server.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/turbovnc-headless-server.nix
index dfa17d65f85..7d705c56ecf 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/turbovnc-headless-server.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/tuxguitar.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/tuxguitar.nix
index 6586132d3cd..63a7b6c7dec 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/tuxguitar.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/ucg.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/ucg.nix
deleted file mode 100644
index 7769fd01fce..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/virtualbox.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/virtualbox.nix
index 09314d93b7d..f15412d365f 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/virtualbox.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/vscodium.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/vscodium.nix
index ca75da35b1e..033090aa0e3 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/vscodium.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/web-apps/peertube.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/web-apps/peertube.nix
new file mode 100644
index 00000000000..38b31f6c332
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/wine.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/wine.nix
new file mode 100644
index 00000000000..c46c7d338b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/xfce.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/xfce.nix
index 99e30342e59..148eccdbe30 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/xfce.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/xrdp.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/xrdp.nix
index 92eb7d4772e..0e1d521c5ac 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/xrdp.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/xterm.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/xterm.nix
index 078d1dca964..4ee31139ab5 100644
--- a/infra/libkookie/nixpkgs/unstable/nixos/tests/xterm.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/nixos/tests/yq.nix b/infra/libkookie/nixpkgs/unstable/nixos/tests/yq.nix
deleted file mode 100644
index cdcb3d6e246..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ashuffle/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ashuffle/default.nix
index e445132ee3c..5a1be2eaf0c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ashuffle/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bambootracker/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bambootracker/default.nix
index 591c14c1adf..b2cce97bbc4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bambootracker/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 447bc7d6635..aa9290d9477 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "bitwig-studio";
- version = "4.0.1";
+ version = "4.0.7";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
- sha256 = "sha256-yhCAKlbLjyBywkSYY1aqbUGFlAHBLR8g8xPDIqoUIZk=";
+ sha256 = "sha256-NAiwHLYhTAQH6xZw5u8bM7MOILcMclQMKtJc7MGJb+Q=";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ecasound/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ecasound/default.nix
index 47db2201648..108be8726c5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ecasound/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ecasound/default.nix
@@ -1,5 +1,6 @@
{ lib, stdenv
, fetchurl
+, fetchpatch
, pkg-config
, alsa-lib
, audiofile
@@ -28,6 +29,16 @@ stdenv.mkDerivation rec {
sha256 = "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6";
};
+ patches = [
+ # Pull patch pending upstream inclusion for ncurses-6.3:
+ # https://sourceforge.net/p/ecasound/bugs/54/
+ (fetchpatch {
+ name = "ncursdes-6.3.patch";
+ url = "https://sourceforge.net/p/ecasound/bugs/54/attachment/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch";
+ sha256 = "1x1gsjzd43lh19mhpmwrbq269h56s8bxgyv0yfi5yf0sqjf9vaq0";
+ })
+ ];
+
nativeBuildInputs = [
pkg-config
];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/fluidsynth/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/fluidsynth/default.nix
index 1a6471397de..fa53bee5dc8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/fluidsynth/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/fluidsynth/default.nix
@@ -11,8 +11,8 @@ let
sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
};
"2" = {
- fluidsynthVersion = "2.0.6";
- sha256 = "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a";
+ fluidsynthVersion = "2.2.3";
+ sha256 = "0x5808d03ym23np17nl8gfbkx3c4y3d7jyyr2222wn2prswbb6x3";
};
};
in
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/giada/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/giada/default.nix
index b49335298e0..4b7b760db35 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/giada/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/helvum/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/helvum/default.nix
index 39c8a3b3184..757b83cd4d5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/helvum/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/jconvolver/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/jconvolver/default.nix
new file mode 100644
index 00000000000..5294ae5f13a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/librespot/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/librespot/default.nix
index de1952b9912..7b7d811f573 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/librespot/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/librespot/default.nix
@@ -4,16 +4,16 @@
rustPlatform.buildRustPackage rec {
pname = "librespot";
- version = "0.3.0";
+ version = "0.3.1";
src = fetchFromGitHub {
owner = "librespot-org";
repo = "librespot";
rev = "v${version}";
- sha256 = "0n7h690gplpp47gdj038g6ncgwr7wvwfkg00cbrbvxhv7kzqqa1f";
+ sha256 = "1fv2sk89rf1vraq823bxddlxj6b4gqhfpc36xr7ibz2405zickfv";
};
- cargoSha256 = "0qakvpxvn84ppgs3qlsfan4flqkmjcgs698w25jasx9ymiv8wc3s";
+ cargoSha256 = "1sal85gsbnrabxi39298w9njdc08csnwl40akd6k9fsc0fmpn1b0";
cargoBuildFlags = with lib; [
"--no-default-features"
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/midi-visualizer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/midi-visualizer/default.nix
index 0213dc4af6d..a50e5dcd669 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mixxx/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mixxx/default.nix
index 518c54dc48a..bbd0e07a64a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mixxx/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mpdevil/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mpdevil/default.nix
index b55cf9be351..e355cfb86de 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mpdevil/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/mpdevil/default.nix
@@ -7,13 +7,13 @@
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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/munt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/munt/default.nix
index 191612700f4..93a9ce25854 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/munt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/orca-c/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/orca-c/default.nix
index 2c3a8fb1390..4bad4960337 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/orca-c/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/orca-c/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation {
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ netcrns ];
+ mainProgram = "orca";
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/plexamp/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/plexamp/default.nix
index c542517797e..9cce4af9298 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/plexamp/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/plexamp/default.nix
@@ -2,26 +2,25 @@
let
pname = "plexamp";
- version = "3.7.1";
- name = "${pname}-${version}";
+ version = "3.8.0";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage";
- sha512 = "jKuuM1vQANGYE2W0OGl+35mB1ve5K/xPcBTk2O1azPRBDlRVU0DHRSQy2T71kwhxES1ASRt91qAV/dATk6oUkw==";
+ sha512 = "wdOJYmUHPSuijQjmkwq1jLX3qgLzmFxDihlETELlzk13RcpCcczL++V5dqdiQY6UmZVP3KL4VPjXubSq4CmXlQ==";
};
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/33";
license = licenses.unfree;
maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/pocket-casts/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/pocket-casts/default.nix
new file mode 100644
index 00000000000..46625253d0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/praat/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/praat/default.nix
index 75a706cff1e..ac7f4206dbe 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/praat/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/praat/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "praat";
- version = "6.1.53";
+ version = "6.1.55";
src = fetchFromGitHub {
owner = "praat";
repo = "praat";
rev = "v${version}";
- sha256 = "sha256-4GOVrKVHl/Cj0PNx+rcLESn5fbyIsnzaheMOFLlEVMU=";
+ sha256 = "sha256-PQVbrohIlmzKcG/8TzOBgyQWWaMH88voMNWAqEfyUWI=";
};
configurePhase = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/pt2-clone/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/pt2-clone/default.nix
index 6abc120379d..e5a97aee86c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/pt2-clone/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ptcollab/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ptcollab/default.nix
index ffc2d72891d..71c574490f0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ptcollab/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/ptcollab/default.nix
@@ -13,13 +13,13 @@
mkDerivation rec {
pname = "ptcollab";
- version = "0.5.0";
+ version = "0.5.0.1";
src = fetchFromGitHub {
owner = "yuxshao";
repo = "ptcollab";
rev = "v${version}";
- sha256 = "sha256-sN3O8m+ib6Chb/RXTFbNWW6PnrolCHpmC/avRX93AH4=";
+ sha256 = "10v310smm0df233wlh1kqv8i36lsg1m36v0flrhs2202k50d69ri";
};
nativeBuildInputs = [ qmake pkg-config ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/qjackctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/qjackctl/default.nix
index 7d1ec9f9978..1d5edf892cb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/qjackctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/snd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/snd/default.nix
index 56d1dacaf9a..9561dc00d74 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/snd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/songrec/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/songrec/default.nix
index 166784a164d..60fbd3a2888 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/songrec/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/spotify/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/spotify/default.nix
index 48e6a85f5d2..c25276ff6e1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/spotify/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/strawberry/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/strawberry/default.nix
index 6cc55650220..fd75a4a8e5d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/strawberry/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/synthv1/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/synthv1/default.nix
index eecf8caee37..b0e9e9bde9d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/synthv1/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tagutil/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tagutil/default.nix
index 802cd00087a..903537333ff 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tagutil/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tagutil/default.nix
@@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
zlib
];
+ prePatch = ''
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tenacity/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tenacity/default.nix
new file mode 100644
index 00000000000..160243cdf34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tonelib-jam/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tonelib-jam/default.nix
index 7a5a5c7280f..1c0d51ed88b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tonelib-jam/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = [
+ nativeBuildInputs = [
+ autoPatchelfHook
dpkg
- gtk3
- glib
- desktop-file-utils
- alsa-lib
- libjack2
- harfbuzz
- fribidi
- pango
- freetype
];
- nativeBuildInputs = [
- autoPatchelfHook
+ buildInputs = [
+ stdenv.cc.cc.lib
+ alsa-lib
+ freetype
+ libglvnd
+ ] ++ runtimeDependencies;
+
+ runtimeDependencies = map lib.getLib [
+ curl
+ libXcursor
+ libXinerama
+ libXrandr
+ libXrender
+ libjack2
];
- unpackPhase = ''
- mkdir -p $TMP/ $out/
- dpkg -x $src $TMP
- '';
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tonelib-zoom/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tonelib-zoom/default.nix
index 2eef1f7bd60..41539503e02 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/tonelib-zoom/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = [
+ nativeBuildInputs = [
+ autoPatchelfHook
dpkg
- webkitgtk
- libjack2
- alsa-lib
];
- nativeBuildInputs = [
- autoPatchelfHook
+ buildInputs = [
+ stdenv.cc.cc.lib
+ alsa-lib
+ freetype
+ libglvnd
+ webkitgtk
+ ] ++ runtimeDependencies;
+
+ runtimeDependencies = map lib.getLib [
+ curl
+ libXcursor
+ libXinerama
+ libXrandr
+ libXrender
+ libjack2
];
- unpackPhase = ''
- mkdir -p $TMP/ $out/
- dpkg -x $src $TMP
- '';
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/vocal/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/vocal/default.nix
index a2fea468de9..3d6f3aef9e1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/audio/vocal/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/backup/areca/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/backup/areca/default.nix
index b50ebdd4a87..d16fc0f85c5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/backup/areca/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/backup/areca/default.nix
@@ -47,6 +47,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/backup/urbackup-client/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/backup/urbackup-client/default.nix
new file mode 100644
index 00000000000..16ae8fcf3e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/bisq-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/bisq-desktop/default.nix
index 4077442b341..2781e69c56a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/bisq-desktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/bisq-desktop/default.nix
@@ -35,11 +35,11 @@ let
in
stdenv.mkDerivation rec {
pname = "bisq-desktop";
- version = "1.7.4";
+ version = "1.7.5";
src = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
- sha256 = "1yhxq6pv8hc0pz8g993a9nng2srnmmajkqxf0lfvkypy13k9zdg4";
+ sha256 = "0mwlmya53xaps8x8c5cvk9zxy0ddijkrba8x3jp2glql34wac3ri";
};
nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg gnutar zip xz ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/default.nix
index a5d9432b143..0d9da9b3ced 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -1,58 +1,40 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
- dotnetPackages, 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
+{ lib, buildDotnetModule, fetchFromGitHub, dotnetCorePackages
+, altcoinSupport ? false }:
-stdenv.mkDerivation rec {
+buildDotnetModule rec {
pname = "btcpayserver";
- version = "1.2.4";
+ version = "1.3.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-vjNJ08twsJ036TTFF6srOGshDpP7ZwWCGN0XjrtFT/g=";
+ sha256 = "sha256-IBdQlVZx7Bt4y7B7FvHJihHUWO15a89hs+SGwcobDqY=";
};
- nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
-
- buildPhase = ''
- export HOME=$TMP/home
- export DOTNET_CLI_TELEMETRY_OPTOUT=1
- export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+ projectFile = "BTCPayServer/BTCPayServer.csproj";
+ nugetDeps = ./deps.nix;
- nuget sources Add -Name tmpsrc -Source $TMP/nuget
- nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+ dotnet-sdk = dotnetCorePackages.sdk_3_1;
+ dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
- 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/deps.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/deps.nix
index f92b2f7a856..c3406494aeb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/infra/libkookie/nixpkgs/unstable/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,38 +271,38 @@
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
- version = "3.0.0";
- sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+ version = "3.3.2";
+ sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
- version = "3.3.0";
- sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
+ version = "3.11.0";
+ sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
- version = "3.6.0";
- sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
+ version = "3.3.0";
+ sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
- version = "3.3.0";
- sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
+ version = "3.11.0";
+ sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
- version = "3.6.0";
- sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
+ version = "3.3.0";
+ sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
})
(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";
+ version = "3.1.6";
+ sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
})
(fetchNuGet {
- name = "Microsoft.DotNet.PlatformAbstractions";
- version = "3.1.4";
- sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+ name = "Microsoft.EntityFrameworkCore.Abstractions";
+ version = "3.1.18";
+ sha256 = "0d00d6wx2mm5bav39bjsikjq0sx6qmp183dbwimfda7wav2bwya8";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Abstractions";
- version = "3.1.4";
- sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
+ 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";
- })
- (fetchNuGet {
- name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.1";
- sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
+ version = "3.1.6";
+ sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac";
})
(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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/chia/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/chia/default.nix
index b4ffd2a4f2a..83d9cee9ec6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/chia/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/chia/default.nix
@@ -6,14 +6,14 @@
let chia = python3Packages.buildPythonApplication rec {
pname = "chia";
- version = "1.2.9";
+ version = "1.2.10";
src = fetchFromGitHub {
owner = "Chia-Network";
repo = "chia-blockchain";
rev = version;
fetchSubmodules = true;
- sha256 = "sha256-ZDWkVCga/NsKOnj5HP0lnmnX6vqw+I0b3a1Wr1t1VN0=";
+ sha256 = "sha256-TzSBGjgaE0IWaqJcCIoO/u+gDh17NtAqhE8ldbbjNIE=";
};
postPatch = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/clightning/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/clightning/default.nix
index 0cec96b7a6e..04f3c1fcbc8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/clightning/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/eclair/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/eclair/default.nix
index 7b74512a388..dcddef61931 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/eclair/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/default.nix
index d37ace71073..84b2a2f736a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/default.nix
@@ -9,24 +9,27 @@
rustPlatform.buildRustPackage rec {
pname = "electrs";
- version = "0.9.1";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "romanz";
repo = pname;
rev = "v${version}";
- hash = "sha256-GDO8iGntQncvdJiDMBJk9GrGF9JToasbLRzju3S0TS0=";
+ hash = "sha256-dYKSc5fU66fu+GdTeWQBrIOJAiBGdYAOS7MCto98Xss=";
};
- cargoHash = "sha256-Ms785+3Z4xEUW8FRRu1FIHk7HSWYLBThKlJDFjW6j0I=";
+ cargoHash = "sha256-M4H5tUbo1f18kk8S53saebSnZhZFr8udw41BUNJbQVI==";
# needed for librocksdb-sys
nativeBuildInputs = [ llvmPackages.clang ];
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+ # 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";
+ # ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
+ # ROCKSDB_LIB_DIR = "${rocksdb}/lib";
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/update.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/update.sh
index 3e4d90db59d..14105d71a44 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/update.sh
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/electrs/update.sh
@@ -21,6 +21,7 @@ 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
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/elements/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/elements/default.nix
index c44f2078dae..63914af6f3c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/elements/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ergo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ergo/default.nix
index a0e648218f5..422ad8210de 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ergo/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/exodus/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/exodus/default.nix
index 149b20d0dd2..39d13189e8e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/exodus/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 89e0a9291d1..636d377ebe4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
let
pname = "ledger-live-desktop";
- version = "2.33.1";
+ 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 = "1k1h37fbpsib9h8867m2dsfacdjs78gdm61gvrin5gpw1zj10syz";
+ sha256 = "00zl7ywmkbhwzkj7p618rin5pd0ix8cas5q1b8ka6ynw4wlg3w5c";
};
appimageContents = appimageTools.extractType2 {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/default.nix
index c55965054b7..01e1dfb8c42 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.11";
+ version = "2.2.16";
src = fetchFromGitHub {
owner = "dgarage";
repo = "NBXplorer";
rev = "v${version}";
- sha256 = "sha256-ZDqzkANGMdvv3e5gWCYcacUYKLJRquXRHLr8RAzT9hY=";
+ sha256 = "sha256-6nq5oCEVADZbzQJaEizzt6Lag11bZYLKGMTl2snZob8=";
};
- nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
-
- buildPhase = ''
- export HOME=$TMP/home
- export DOTNET_CLI_TELEMETRY_OPTOUT=1
- export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+ projectFile = "NBXplorer/NBXplorer.csproj";
+ nugetDeps = ./deps.nix;
- nuget sources Add -Name tmpsrc -Source $TMP/nuget
- nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+ dotnet-sdk = dotnetCorePackages.sdk_3_1;
+ dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
- 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/deps.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/deps.nix
index d53e784ea11..c9cc80016b7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -6,23 +6,23 @@
})
(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,18 +181,18 @@
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
- version = "3.0.7";
- sha256 = "0nrkdbsc4k9fd4588axnkfa9gmif9b59wxw8fnmpg0nf4x8scm4n";
+ version = "3.0.8";
+ sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
})
(fetchNuGet {
name = "NBitcoin.TestFramework";
- version = "3.0.5";
- sha256 = "09cgjzbkxvsi65qzns0ignp0x89z630vqacsgwj3b1h30dycwqdr";
+ version = "3.0.6";
+ sha256 = "0yw382238rjv0qmhz1xlb5v696s8sxbjf839c2ck6dqd947q403w";
})
(fetchNuGet {
name = "NBitcoin";
- version = "6.0.10";
- sha256 = "00m0j74pqyjqal1wc28j6734rfd9zd7ajqb1p3fsdpqr16kfg56s";
+ version = "6.0.15";
+ sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
})
(fetchNuGet {
name = "NETStandard.Library";
@@ -699,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/polkadot/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/polkadot/default.nix
index b7277fc1f77..9b88861d0ea 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/polkadot/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "polkadot";
- version = "0.9.11";
+ version = "0.9.12-1";
src = fetchFromGitHub {
owner = "paritytech";
repo = "polkadot";
rev = "v${version}";
- sha256 = "17a0g4sijc1p9fy5xh8krs3y1hc75s17ak0hfhpi231gs4fl20pd";
+ sha256 = "sha256-+HATcxdIDQGDIQBF08yy/eKBcS10Hp7C0nZFVsYFNwQ=";
};
- cargoSha256 = "07yzdchpzs2g1f8fzhaj11yybd2d8lv9ib859z7122anxzdr0028";
+ cargoSha256 = "sha256-1qg4ZnSORRVI7eCVMrR7lY3tzo7KJt+dC2RBXqbKrig=";
nativeBuildInputs = [ clang ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/display-managers/sddm/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/display-managers/sddm/default.nix
index 029501c7787..4676e770f1b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/display-managers/sddm/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/display-managers/sddm/sddm-default-session.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/display-managers/sddm/sddm-default-session.patch
new file mode 100644
index 00000000000..455ebbd4157
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/aewan/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/aewan/default.nix
index b9d350cbd43..8472a91c596 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/aewan/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/android-studio/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/android-studio/default.nix
index af4fc5c997c..600902f75b1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/android-studio/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/android-studio/default.nix
@@ -13,12 +13,12 @@ let
sha256Hash = "10gpwb130bzp6a9g958cjqcb2gsm0vdgm08nm5xy45xdh54nxjfg";
};
betaVersion = {
- version = "2021.1.1.14"; # "Android Studio Bumblebee (2021.1.1) Beta 1"
- sha256Hash = "1j1fxl4vzq3bln2z9ycxn9imjgy55yd1nbl7ycmsi90bdp96pzj0";
+ version = "2021.1.1.15"; # "Android Studio Bumblebee (2021.1.1) Beta 2"
+ sha256Hash = "sha256-J+Jw9F8pEE0SMWka//jADOiQ+GSOeRf5GBfp0RDtwqA=";
};
latestVersion = { # canary & dev
- version = "2021.2.1.1"; # "Android Studio Chipmunk (2021.2.1) Canary 1"
- sha256Hash = "1fn0jv6ybgdhgpwhamw16fjqbg2961ir9jhbjzanysi7y3935nbv";
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/default.nix
index 993c046d2c9..f840218d850 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.146.0";
+ version = "1.148.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
- sha256 = "sha256-YK4nLQvRdgS7hq5a9uVfVjUAgkM/sYXiKjbt0QNzcok=";
+ sha256 = "sha256-/wvtIPF/1HneW0zuT7+VCixemkw91MdU0S66bz2y48U=";
};
postPatch = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/deps.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/deps.json
index 42b7af5abb4..aaa63595ab1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/deps.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/cudatext/deps.json
@@ -11,13 +11,13 @@
},
"ATFlatControls": {
"owner": "Alexey-T",
- "rev": "2021.09.14",
- "sha256": "sha256-j69UkRNdVdzMITBHMT1QwAsYX9S0fts5/0PCroCGtL8="
+ "rev": "2021.10.19",
+ "sha256": "sha256-NO1q4qDXZ0x0G6AtcRP9xnFDWuBzOvxq8G7I76LgaBw="
},
"ATSynEdit": {
"owner": "Alexey-T",
- "rev": "2021.10.03",
- "sha256": "sha256-JGw/GbQNLAgHhDm/EgCGvzPpd8rqQo2FhmAL51XIekw="
+ "rev": "2021.10.27",
+ "sha256": "sha256-7DlnO7IeCFLU1A+HJt4CFXoHWfhAr52tBvfPNHieXMM="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
@@ -26,8 +26,8 @@
},
"EControl": {
"owner": "Alexey-T",
- "rev": "2021.10.03",
- "sha256": "sha256-Kbjzn4Rp+/oTNgFMlzlkQEeob0Z4VidqJ/+wuNHS580="
+ "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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/eclipse/plugins.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/eclipse/plugins.nix
index 46a9b6c477a..337479b16bc 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/eclipse/plugins.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/eclipse/plugins.nix
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
index 876392c0810..f74402f5e6e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
@@ -5,13 +5,13 @@
trivialBuild {
pname = "bqn-mode";
- version = "0.pre+unstable=2021-09-27";
+ version = "0.pre+unstable=2021-10-26";
src = fetchFromGitHub {
owner = "AndersonTorres";
repo = "bqn-mode";
- rev = "5bdc713ade78f11d756231739429440552d7faf8";
- hash = "sha256-ztGHWKVgMP9N4hV9k0PY9LxqXgHxkycyF3N0eZ+jIZs=";
+ rev = "89d6928d0653518c97bcb06ae156f8b1de1b8768";
+ sha256 = "0pnvfssglaqbjw6hw7vf7vffzjdbqscqhyl62vknml29yl7mjq05";
};
meta = with lib; {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 7eb9f12a5a0..d2b870bb82d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -384,10 +384,10 @@
elpaBuild {
pname = "boxy-headings";
ename = "boxy-headings";
- version = "2.1.0";
+ version = "2.1.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/boxy-headings-2.1.0.tar";
- sha256 = "021w4ic028jsq7vxz1jgnfny9dymcz6v112b3b3nwyw3g3dnc62f";
+ url = "https://elpa.gnu.org/packages/boxy-headings-2.1.2.tar";
+ sha256 = "0jyfp41jw33kmi7832x5x0mgh5niqvb7dfc7q00kay5q9ixg83dq";
};
packageRequires = [ boxy emacs org ];
meta = {
@@ -444,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";
@@ -707,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";
@@ -1086,10 +1116,10 @@
elpaBuild {
pname = "ebdb";
ename = "ebdb";
- version = "0.8.6";
+ version = "0.8.8";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ebdb-0.8.6.tar";
- sha256 = "0amr1s1q5w4513qw31qsr8gpsfgj5b2j7qn017rmwbaf1mj0k6z0";
+ url = "https://elpa.gnu.org/packages/ebdb-0.8.8.tar";
+ sha256 = "035xakji5vypdpc06qp9yhg8ny7qn80h8kax6cl80p0lljplzrnn";
};
packageRequires = [ emacs seq ];
meta = {
@@ -1146,10 +1176,10 @@
elpaBuild {
pname = "eev";
ename = "eev";
- version = "20211011";
+ version = "20211101";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/eev-20211011.tar";
- sha256 = "1a71qam6z5s3zl7fvxpsnabbqxh8a7llm1524nxs2353pb6ksfra";
+ url = "https://elpa.gnu.org/packages/eev-20211101.tar";
+ sha256 = "0sxbf116msfv6ly1dqga2sz2zpqr78nzp3v44qy7rps2887incmr";
};
packageRequires = [ emacs ];
meta = {
@@ -1260,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
@@ -1269,10 +1334,10 @@
elpaBuild {
pname = "emms";
ename = "emms";
- version = "7.7";
+ version = "7.8";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/emms-7.7.tar";
- sha256 = "0n9nx4wgjxkr8nsxcq8svg0x0qkqj7bsd2j0ihy4jzj29xmyxl0h";
+ url = "https://elpa.gnu.org/packages/emms-7.8.tar";
+ sha256 = "1nlb9rrdlbcqghph30r9i9m1brbdha818czbms0zhzdisxb0smi0";
};
packageRequires = [ cl-lib nadvice seq ];
meta = {
@@ -1409,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 = {
@@ -1484,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 = {
@@ -1998,10 +2063,10 @@
elpaBuild {
pname = "ivy-posframe";
ename = "ivy-posframe";
- version = "0.6.2";
+ version = "0.6.3";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.2.tar";
- sha256 = "1x6pm0pry2j7yazhxvq1gydbymwll9yg85m8qi4sh8s0pnm0vjzk";
+ url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.3.tar";
+ sha256 = "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh";
};
packageRequires = [ emacs ivy posframe ];
meta = {
@@ -2990,10 +3055,10 @@
elpaBuild {
pname = "phps-mode";
ename = "phps-mode";
- version = "0.4.7";
+ version = "0.4.12";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/phps-mode-0.4.7.tar";
- sha256 = "0y5milfjf45bi7gj7brl2lhyla8nsj3dc1a4nfq1wx3zw8arlc50";
+ url = "https://elpa.gnu.org/packages/phps-mode-0.4.12.tar";
+ sha256 = "0xkzx5narbry0kbamzxv1hjgsal98cj9rp3ck25xg2ywb6nspwcw";
};
packageRequires = [ emacs ];
meta = {
@@ -3035,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 = {
@@ -3591,10 +3656,10 @@
elpaBuild {
pname = "shell-command-plus";
ename = "shell-command+";
- version = "2.3.1";
+ version = "2.3.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/shell-command+-2.3.1.tar";
- sha256 = "0g8pcrkkh3bxcxxbasnz834gi3pvhlkpf011fvmlhwzswypcyqmy";
+ url = "https://elpa.gnu.org/packages/shell-command+-2.3.2.tar";
+ sha256 = "03hmk4gr9kjy3238n0ys9na00py035j9s0y8d87c45f5af6c6g2c";
};
packageRequires = [ emacs ];
meta = {
@@ -3632,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";
@@ -4015,10 +4095,10 @@
elpaBuild {
pname = "tramp";
ename = "tramp";
- version = "2.5.1.3";
+ version = "2.5.1.4";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/tramp-2.5.1.3.tar";
- sha256 = "1qcwdavfrbw8yyfy5rbzbcfyqavqbz13jncahkqlgwbkqvmgh7y5";
+ url = "https://elpa.gnu.org/packages/tramp-2.5.1.4.tar";
+ sha256 = "0mk9r9hj43klah7mwldg4bw7fxcqvrbwv1gj6g90zdfsflqy7nh9";
};
packageRequires = [ emacs ];
meta = {
@@ -4060,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 = {
@@ -4189,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 = {
@@ -4219,10 +4299,10 @@
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 = {
@@ -4281,10 +4361,10 @@
elpaBuild {
pname = "verilog-mode";
ename = "verilog-mode";
- version = "2021.9.23.89128420";
+ version = "2021.10.14.127365406";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/verilog-mode-2021.9.23.89128420.tar";
- sha256 = "1sgmkmif44npghz4nnag1w91qrrylq36175cjj87lcdp22s6isgk";
+ url = "https://elpa.gnu.org/packages/verilog-mode-2021.10.14.127365406.tar";
+ sha256 = "0d842dwg98srv73nkg69c7x24rw20mxgqmb4k1qcbl02bwxkfmsm";
};
packageRequires = [];
meta = {
@@ -4307,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";
@@ -4604,10 +4704,10 @@
elpaBuild {
pname = "xref";
ename = "xref";
- version = "1.3.0";
+ version = "1.3.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/xref-1.3.0.tar";
- sha256 = "0bw2cbxmjavzhmpd9gyl41d4c201p535jrfz3b7jb5zw12jdnppl";
+ url = "https://elpa.gnu.org/packages/xref-1.3.2.tar";
+ sha256 = "13bsaxdxwn14plaam0hsrswngh3rm2k29v5ybjgjyjy4d5vwz78j";
};
packageRequires = [ emacs ];
meta = {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index ac2fdc4b373..90f13e870c7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/infra/libkookie/nixpkgs/unstable/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";
@@ -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
@@ -159,10 +282,10 @@
elpaBuild {
pname = "flymake-kondor";
ename = "flymake-kondor";
- version = "0.1.0";
+ version = "0.1.3";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/flymake-kondor-0.1.0.tar";
- sha256 = "0fn9vnrqy5nmv07jv2ry0xs90rkb92qhrh7j5pdikw7zykcwlbdd";
+ url = "https://elpa.nongnu.org/nongnu/flymake-kondor-0.1.3.tar";
+ sha256 = "07k8b3wayp1h4hir98zs5srjjsnh6w0h9pzn4vnq9s2jr355509n";
};
packageRequires = [ emacs ];
meta = {
@@ -264,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 = {
@@ -356,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";
@@ -416,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";
@@ -638,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";
@@ -792,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 = {
@@ -882,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.4.1";
+ version = "8.4.2";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/swift-mode-8.4.1.tar";
- sha256 = "0f87bjgva0iv818bh2dqvc1svrwh5zm134jpxcmvmzr1yqazx4qp";
+ url = "https://elpa.nongnu.org/nongnu/swift-mode-8.4.2.tar";
+ sha256 = "0rkri1414f2w2bw76dwnmylcdca6x9bkdvlq1aznz76ac259klji";
};
packageRequires = [ emacs seq ];
meta = {
@@ -927,6 +1140,21 @@
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";
@@ -1017,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index 5b2372f634f..118065eb31c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -213,11 +213,11 @@
"repo": "ymarco/auto-activating-snippets",
"unstable": {
"version": [
- 20211002,
- 1952
+ 20211103,
+ 1551
],
- "commit": "ea9d91be117056f1e49479c94d034e8c6f8df5a0",
- "sha256": "0z0ilyq0h1ic62gk3gwfiagp8hv4vl2z663fhxwl9g5r94rc3pxi"
+ "commit": "b868ef7065039899628a2846dd1274233e07a310",
+ "sha256": "1a8rr7ni9x4n21lysfhczf0j0nqi9xd17s39lfpxmpp10s36mrxf"
},
"stable": {
"version": [
@@ -1148,8 +1148,8 @@
"auto-complete",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "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": [
@@ -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": "070d0c841788d3a09e4557d92fd954bb1b6a7e9e",
- "sha256": "055cyxcanmj29yphvw7g6k022bj8gs19xrhamxm4xii7bwbd5imv"
+ "commit": "475d9add939bf86936a1d5b41c3260f0000bd3c8",
+ "sha256": "0f7849s67gzzrnkb57hm2p6hbkrd50s02m9l5xfqg286dinhqp0v"
},
"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,14 +2358,14 @@
"repo": "cpitclaudel/alectryon",
"unstable": {
"version": [
- 20210925,
- 414
+ 20211018,
+ 321
],
"deps": [
"flycheck"
],
- "commit": "bddc1dc5757bd6ef308f21ed70811281a2ad5298",
- "sha256": "1vpsddfjxpvylq70r7ip6c0iaqn10jdkxmwd93r1zzkxg30hzsf3"
+ "commit": "1bcc7c68abcd6471604c9b7fe7f85b0878bbd435",
+ "sha256": "10kpdra8m015xsh7w25v18zd62csayji0p5jqgif20bw6g8g20a7"
},
"stable": {
"version": [
@@ -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": [
@@ -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",
@@ -3246,8 +3281,8 @@
20200914,
644
],
- "commit": "070d0c841788d3a09e4557d92fd954bb1b6a7e9e",
- "sha256": "055cyxcanmj29yphvw7g6k022bj8gs19xrhamxm4xii7bwbd5imv"
+ "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
- ],
- "deps": [
- "seq"
+ 20211027,
+ 1528
],
- "commit": "c4fe4b0af2ac7f9d32acee234716ab31fa824cef",
- "sha256": "1xif6vv53rpc2k974pqckmzck55zhdhzyfl54kdp25w93xbs3js4"
+ "commit": "5deca2fdb640fa70e614e66ee37e1d6739d39ba4",
+ "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
},
"stable": {
"version": [
0,
- 4,
+ 5,
1
],
- "deps": [
- "seq"
- ],
- "commit": "9a50ed6b73222e9973c08d79b6955e57ed3b7d97",
- "sha256": "1xif6vv53rpc2k974pqckmzck55zhdhzyfl54kdp25w93xbs3js4"
+ "commit": "4fc188a9817cb4c7e0f19b6f1ae720c902f7ebe9",
+ "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
}
},
{
@@ -3567,11 +3594,11 @@
"repo": "dieter-wilhelm/apdl-mode",
"unstable": {
"version": [
- 20211014,
- 612
+ 20211023,
+ 1831
],
- "commit": "30616b0924d85a99ca381f21d4717cb6eccc9f95",
- "sha256": "09jb6xagdiyr0qvigsr4ij9kqgmm3qrq37z1djrh1r95qlq9b6wf"
+ "commit": "8b326a38fa1bf3b9675b251c78eb9456245aeef9",
+ "sha256": "07qcvn607x3mmrp8mc3wkxczj1mkhd0lb8674qx84j0yl7idv1dm"
},
"stable": {
"version": [
@@ -3606,11 +3633,11 @@
"repo": "raxod502/apheleia",
"unstable": {
"version": [
- 20211003,
- 1818
+ 20211031,
+ 1757
],
- "commit": "8b9d576f2fda10d0c9051fc03c1eb1d9791e32fd",
- "sha256": "16j6lcqlsn1qy6nr82aq9hamkr0h6mnc9l5pk5x5v5n1s44sa0a3"
+ "commit": "1b7f2cf9969e7dfe610780b38b6f3dd834d1c01d",
+ "sha256": "1gy4pczi6lwvcjfxng8kf6nd4czpi261k4p46dgny686hr70mzc9"
},
"stable": {
"version": [
@@ -3767,11 +3794,11 @@
"repo": "waymondo/apropospriate-theme",
"unstable": {
"version": [
- 20210809,
- 1934
+ 20211103,
+ 1600
],
- "commit": "e84255cf485004b6b2cb37ce9e0be62fd6512f8b",
- "sha256": "06rcf08f8qm068ck2mxqbg03vkr0hf5nnsbzpwmn7i6qqw23x6jd"
+ "commit": "008cd61d8b42367316b147eef2a81636f01faeee",
+ "sha256": "04k12kb19xzw3dm4ydiy1m3qfpv0smvr33847lh4bhkiv1wyilp8"
},
"stable": {
"version": [
@@ -4569,8 +4596,8 @@
"keytar",
"s"
],
- "commit": "30d8d0dac138eae9423c90d59f5bce2957c0de77",
- "sha256": "17jaaxj0nk5iylgcqlwvj9xb9cjng9gba1j131vn4b8hvkm2ccb5"
+ "commit": "a1e0a364a64900839b544d88347fa229b3aa91ab",
+ "sha256": "0cinmvmzmlqms4kx4qc78fzxgwxki4jd6zk62y2rghk307i97qbb"
},
"stable": {
"version": [
@@ -5019,11 +5046,11 @@
"repo": "mina86/auto-dim-other-buffers.el",
"unstable": {
"version": [
- 20210210,
- 1744
+ 20211101,
+ 1155
],
- "commit": "62c936d502f35d168b9e59a66c994d74a62ad2cf",
- "sha256": "07ilprnidpg8wn28h8ra9ml6pxaixg734ybya0gj1ac6sc3ky52s"
+ "commit": "2a19931b275dc3c70c4bb16a3c60046800ba631a",
+ "sha256": "00f0n6pz0qi2fandcgj8skgj169bwxrda62vkrf0frwpavwpmkml"
}
},
{
@@ -5063,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": [
@@ -5124,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": [
@@ -5596,27 +5623,27 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20210125,
- 2115
+ 20211020,
+ 111
],
"deps": [
"avy",
"embark"
],
- "commit": "010b7356af782a3723fcfbbfc943bc8082c54c27",
- "sha256": "0ag3s7qyihh0231y7zmv33yafpb8ly01djxgpvdr0vhsflp0c7v6"
+ "commit": "0b524bda8d9c5f9e26898e383e98a4ec689fa144",
+ "sha256": "1jgl9n6js71sx4j1wg2nl5aaqmsq2hzna0qawz813637kaylrdxn"
},
"stable": {
"version": [
0,
- 10
+ 12
],
"deps": [
"avy",
"embark"
],
- "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
- "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
+ "commit": "0bd49785a6aa4225e2d2ebcde559c1e2ee006a9f",
+ "sha256": "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36"
}
},
{
@@ -6061,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,
@@ -6383,11 +6410,11 @@
"repo": "bazelbuild/emacs-bazel-mode",
"unstable": {
"version": [
- 20211006,
- 855
+ 20211031,
+ 1941
],
- "commit": "41745212f75b4deafb27fc790df1a74ae344df84",
- "sha256": "12h7sndahwpyqc1sr2dgf3wz5g6hizb908iw3rfyhxjgss2yai3b"
+ "commit": "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18",
+ "sha256": "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"
}
},
{
@@ -7069,36 +7096,6 @@
"sha256": "0vcdi0q6rbs3qqlpccy9hdv82zrx61gdj3fn444qashk84s085vf"
}
},
- {
- "ename": "bibtex-actions",
- "commit": "a6050cc5f04343c5a0e3992d223eca3b50acec7c",
- "sha256": "1yfrs54gb38877322rmg6p7lqy91km33vil867qgbyj016ss4x7s",
- "fetcher": "github",
- "repo": "bdarcus/bibtex-actions",
- "unstable": {
- "version": [
- 20211014,
- 2143
- ],
- "deps": [
- "bibtex-completion",
- "parsebib"
- ],
- "commit": "b96728a7ccaa578360f7275bb01080c28bebd216",
- "sha256": "17mif19zax6xhx0qbiwimfq1q3m18rka28nv6c9x5g3l6f0hby4i"
- },
- "stable": {
- "version": [
- 0,
- 4
- ],
- "deps": [
- "bibtex-completion"
- ],
- "commit": "c18b1ad05168597a3cbaee67775d15d2ebb737f4",
- "sha256": "0x45wq2nw753dz6694li3f0zmjm0rljmrr5rvj2qrhgqldlwn6zn"
- }
- },
{
"ename": "bibtex-completion",
"commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
@@ -7107,8 +7104,8 @@
"repo": "tmalsburg/helm-bibtex",
"unstable": {
"version": [
- 20210725,
- 1459
+ 20211019,
+ 1306
],
"deps": [
"biblio",
@@ -7118,8 +7115,8 @@
"parsebib",
"s"
],
- "commit": "bb47f355b0da8518aa3fb516019120c14c8747c9",
- "sha256": "10y6k1jch43jykd8g8xi10k8wq98x2w2xap64smrhxvgp53y2765"
+ "commit": "aa775340ba691d2322948bfdc6a88158568a1399",
+ "sha256": "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"
},
"stable": {
"version": [
@@ -7318,14 +7315,14 @@
"repo": "rnkn/binder",
"unstable": {
"version": [
- 20210131,
- 1227
+ 20211030,
+ 511
],
"deps": [
"seq"
],
- "commit": "52f1c11b01a5f7e7a470a73dec4c3335dea4124b",
- "sha256": "00kjjr28bvimbdhg016n0g6ws1lix87c1bic1xb3nk0bvnbkpwfp"
+ "commit": "8cefdf0959f0da33250044cf4890b69cfdcf0c5b",
+ "sha256": "0q4cz07s8qzkvnym7ab2l111dk88nfigpf0r3x0jcxx2qivs52s4"
},
"stable": {
"version": [
@@ -7544,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",
@@ -7939,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",
@@ -8353,11 +8397,11 @@
"repo": "topikettunen/brutal-emacs",
"unstable": {
"version": [
- 20211014,
+ 20211018,
2212
],
- "commit": "ce00e434baec93bdf846195516f083190edf3662",
- "sha256": "0ax0qy597xknrqg8bp4sf7ag4nl7pdlgg1zicfis25xbdanyg9ar"
+ "commit": "5ec10f0614978c376df95ed9da05f2227cd7cd62",
+ "sha256": "1gz69g9kz90yriwlyarfd632k19q65sb0r4as25ykq8m67cr5cm9"
}
},
{
@@ -9799,8 +9843,8 @@
20210707,
2310
],
- "commit": "cd6587efb64f58dc0e542f08734c875b93e63968",
- "sha256": "094flwbwvvdr8asx5wgr07gbxz4n3fxb8ywbg13f69c9wagk6rkp"
+ "commit": "a3bb240667686a007f3dd0649a093b7326e130cf",
+ "sha256": "03svmpz905nhpcgriq66sw4la2v58l2490h663yggf313zlplych"
},
"stable": {
"version": [
@@ -9959,8 +10003,8 @@
"repo": "cask/cask",
"unstable": {
"version": [
- 20211001,
- 1042
+ 20211103,
+ 1654
],
"deps": [
"ansi",
@@ -9971,8 +10015,8 @@
"s",
"shut-up"
],
- "commit": "fe66b65944be8e03359ffe6f06618ecab8232f6b",
- "sha256": "0mw6adyvjf4x5d83iy1gf5v36nr4dm09806ybgfkfvivsd348k97"
+ "commit": "467979414c85bb2ce83f5c6ab9f95721164e9efa",
+ "sha256": "0jccv6aprs4fq2m7b2hdxp0dgkjkwjfmlh5ywbl5pacms3c3l82l"
},
"stable": {
"version": [
@@ -10169,8 +10213,8 @@
20210501,
820
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -10218,8 +10262,8 @@
20200904,
1431
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -10488,8 +10532,8 @@
20171115,
2108
],
- "commit": "ffa981bace8ab7dc1166c335b4b906b3bc0c6d32",
- "sha256": "0ly2mnxpr27axvr4rxrk9a45jl0frfp190i86azd3sb9fj2klvq7"
+ "commit": "1a3b84397c11d99cbeaadfccd7472ac914f715b2",
+ "sha256": "05xk1zmngk90vdskmj2ldlc14sk13g6adckch7g83nhdhw936x9h"
},
"stable": {
"version": [
@@ -11279,8 +11323,8 @@
"repo": "clojure-emacs/cider",
"unstable": {
"version": [
- 20211013,
- 2024
+ 20211103,
+ 2049
],
"deps": [
"clojure-mode",
@@ -11291,8 +11335,8 @@
"sesman",
"spinner"
],
- "commit": "0a9d0ef429e76ee36c34e116c4633c69cea96c67",
- "sha256": "06hzm7dpb7gsdrbxn3v3zjdci6qdm6mcnm7f03bgij3qcjg0isky"
+ "commit": "7228402c093a7660a6bee6e4c1c69cce81703013",
+ "sha256": "174az297qq5x5x13ga99zvw7pn4n7aazplby348w79sih5flkl1z"
},
"stable": {
"version": [
@@ -11553,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",
@@ -11561,8 +11624,8 @@
"repo": "andras-simonyi/citeproc-el",
"unstable": {
"version": [
- 20211014,
- 1115
+ 20211104,
+ 751
],
"deps": [
"dash",
@@ -11573,8 +11636,8 @@
"s",
"string-inflection"
],
- "commit": "c8ff95862823cdff067e8cc9bb7f5ef537e8f1d9",
- "sha256": "1dqs5slpd9i8dj6fgryg46zabd6c134qrdq8dkj1i5n0k17ni0h1"
+ "commit": "e93b45fe125d2ed61c60136638b3836ec770f879",
+ "sha256": "176h3xs9jgxcgslp9vklzzsk5s02nf8zdljcjgnjkfxrjng26s8b"
},
"stable": {
"version": [
@@ -11993,8 +12056,8 @@
"repo": "clojure-emacs/clj-refactor.el",
"unstable": {
"version": [
- 20211005,
- 1722
+ 20211031,
+ 723
],
"deps": [
"cider",
@@ -12007,14 +12070,14 @@
"seq",
"yasnippet"
],
- "commit": "9e1f92033449a4abc6218ce31670d89e3e6a4dc5",
- "sha256": "0nd1hn4qswnhyg5ak175sjsk4y6z6l8xn6j9bcdm2vx7slcghlmc"
+ "commit": "9eab9469fe2a06275b7cac7e53eb48ceb5724f81",
+ "sha256": "0gg6pavih3nifcgdpafsl463f50klaf7mhmh9iz9sz45iyfz2q1i"
},
"stable": {
"version": [
- 2,
- 5,
- 1
+ 3,
+ 0,
+ 0
],
"deps": [
"cider",
@@ -12027,8 +12090,8 @@
"seq",
"yasnippet"
],
- "commit": "b24ce76acefe792975f00147c94b4dd784e65b80",
- "sha256": "1pyskl9xcqrk6r2zbp5i9402inngqps7wwb4nbdbrgi4di9b8in7"
+ "commit": "b1503962c90f1c88a4f32b8d32cf87c48437c158",
+ "sha256": "0i759k6qm752lmdsxrgp0bh3akl01as8k8q6x1a7cpdh6yddwajs"
}
},
{
@@ -12255,11 +12318,11 @@
"repo": "clojure-emacs/clojure-mode",
"unstable": {
"version": [
- 20210821,
- 2010
+ 20211028,
+ 1217
],
- "commit": "e1dc7caee76d117a366f8b8b1c2da7e6400636a8",
- "sha256": "101fallqv90dgjdiq24hc63yw2a3df12y5cclcg9p4hk8rinc80x"
+ "commit": "feb03a603b2080b36492b538aeb2041bac4d129c",
+ "sha256": "1x2fqc003hkvk0gqqgzy0xnya1mx6mi864gicvf2fxbvvwl28vvh"
},
"stable": {
"version": [
@@ -12285,8 +12348,8 @@
"deps": [
"clojure-mode"
],
- "commit": "e1dc7caee76d117a366f8b8b1c2da7e6400636a8",
- "sha256": "101fallqv90dgjdiq24hc63yw2a3df12y5cclcg9p4hk8rinc80x"
+ "commit": "feb03a603b2080b36492b538aeb2041bac4d129c",
+ "sha256": "1x2fqc003hkvk0gqqgzy0xnya1mx6mi864gicvf2fxbvvwl28vvh"
},
"stable": {
"version": [
@@ -12588,8 +12651,8 @@
20210104,
1831
],
- "commit": "c5ae200d94333600117fc93e50c66bdd50994bbc",
- "sha256": "0pay9ly2vzjb69a1aah1h6jkmixhrkps31i3mgk8frxyanlgjkgd"
+ "commit": "909f435b9302f0cd02a73f34bc3316a8e1620bae",
+ "sha256": "16435f7clz33gl9j1l86ng5i4cgj7qgcv49335k39wjjzqdhqqa2"
},
"stable": {
"version": [
@@ -12597,10 +12660,10 @@
22,
0,
-1,
- 1
+ 2
],
- "commit": "167060303b6d9ffb56b2785cec0f7e363f0876c6",
- "sha256": "0zaw4zjxsrjfm4rajqlh4wff158crbxyjpajbmh4yckd3gnz1swr"
+ "commit": "28a033cc7de056d1a74857606397bb294ebe27ac",
+ "sha256": "18ir7q31l9jqshx3hixiaq9nvlfasxqrmr0a57q852xb0ad31gcj"
}
},
{
@@ -12668,11 +12731,11 @@
"repo": "tumashu/cnfonts",
"unstable": {
"version": [
- 20200824,
- 240
+ 20211102,
+ 2232
],
- "commit": "b967605d571d827c1cb041c174fb363985758729",
- "sha256": "1h4c6czj7zr1p8b0233rxmczkaf7hh72869lijsvkvx9xmq9pk8w"
+ "commit": "46c9034f28cc559f8c93650baa1a64a42b06c535",
+ "sha256": "1dy6n1cdn05bdr4f1wk72gav5mnfbm23i6cp2vh6nd1nq5kkkchp"
},
"stable": {
"version": [
@@ -13269,11 +13332,11 @@
"repo": "matthewbauer/comint-hyperlink",
"unstable": {
"version": [
- 20191104,
- 2224
+ 20211026,
+ 100
],
- "commit": "a7878825788ff6b9d6b8a5adf0214a028bad895e",
- "sha256": "19fww5aciqx4h67hpmzf564n0ygzg69v1sk1qjyhbs27pq5zrjmq"
+ "commit": "905f2db1f95950899301b9f71faed9e9362cf5dc",
+ "sha256": "1d5a0c33zdziz1yw2nv65qyi122zz7b5y9vgsx6kfz7xj32sc8s5"
},
"stable": {
"version": [
@@ -13541,11 +13604,11 @@
"repo": "company-mode/company-mode",
"unstable": {
"version": [
- 20211002,
- 1732
+ 20211024,
+ 2305
],
- "commit": "4c08ef468678bbf3b3c9e750f6e694eea1aa8423",
- "sha256": "1p58wsy587nsx2pvhd3nnrmm4pwdnbhmxw6hsbkqwimm4gsn3z90"
+ "commit": "811beeade86669e20da35efed5b00de6a5e305ab",
+ "sha256": "0v5y92c328x3fn2z4hxiwv0qgjp85r4g28wp6b5cph8azfvzgnk9"
},
"stable": {
"version": [
@@ -13715,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"
}
},
{
@@ -14096,16 +14158,16 @@
"repo": "jcs-elpa/company-fuzzy",
"unstable": {
"version": [
- 20211015,
- 1239
+ 20211104,
+ 1200
],
"deps": [
"company",
"ht",
"s"
],
- "commit": "493fe05fa81ba680fd44c5d05256a2ae788dabbe",
- "sha256": "0fysg6fc20z8ymay27g6s1b3jcq0ndfcv5wynwjdfgvv2f5aay6z"
+ "commit": "44ef04f5f21285d68bd419f4f153e192777d9991",
+ "sha256": "1gca3i7ylk28wx7wa722ismy6irya96k8qf1zjh851sn2m7bkfin"
},
"stable": {
"version": [
@@ -14778,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": [
@@ -14817,8 +14879,8 @@
"company",
"prescient"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -15006,8 +15068,8 @@
"company",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -15771,11 +15833,11 @@
"repo": "minad/consult",
"unstable": {
"version": [
- 20211014,
- 1752
+ 20211103,
+ 1226
],
- "commit": "3715f7378bf1ea54af3878d118da1222bbf4bfa0",
- "sha256": "1a3zg2nv2i2lgyvzn7l2y6d65s2jcrsmkz7j92gdv9zgmg4dbw7w"
+ "commit": "3b18b04524f0e963070ab6c61d4d3a3f10507d12",
+ "sha256": "07m3v8lg91ql0j0vicf59cavhyn0xva8qd83xxlngnsivqsa0h63"
},
"stable": {
"version": [
@@ -15794,15 +15856,15 @@
"repo": "mohkale/consult-company",
"unstable": {
"version": [
- 20211003,
- 1325
+ 20211021,
+ 1152
],
"deps": [
"company",
"consult"
],
- "commit": "914c51c7d983e36869dd27bf21c80a8cac96a41f",
- "sha256": "1wpq468mqzjq1c9ixks4hqik9yhli2p31x7mfmfqx3lw5rnc74cy"
+ "commit": "ef1c553b4a72b23297b55708bf6f6dd1b27cc68e",
+ "sha256": "1wqs6ryx7vihmcd11x6ankfrhwn6bhvkld2hw390y1bmxq30pw3n"
}
},
{
@@ -15927,16 +15989,16 @@
"repo": "gagbo/consult-lsp",
"unstable": {
"version": [
- 20210930,
- 1225
+ 20211103,
+ 1200
],
"deps": [
"consult",
"f",
"lsp-mode"
],
- "commit": "b9aa9617f174a304040ae75d35483fa8d4ade5d7",
- "sha256": "0px09bvi8x5b7h4w3mdffj1fnl7nk51xybpxz7n8v8i7v1w3547z"
+ "commit": "91deff6bcaee55ee4e33a4a9fe943d8de305e26c",
+ "sha256": "10nwwkdx537xr9d5zi5drbw4whrfha27kq0xd1jkvvdsqiaydxrl"
},
"stable": {
"version": [
@@ -15983,6 +16045,25 @@
"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"
+ }
+ },
{
"ename": "consult-recoll",
"commit": "e570f099cb90817115609b960f4f31ca21545b74",
@@ -16035,8 +16116,8 @@
"consult",
"yasnippet"
],
- "commit": "bf6b496e00cecfd6475ebaa374a0c7c407963a8a",
- "sha256": "0wgighq6r2vn9nxnisx7ci6xrxcpzhn19vaqs5xp2ig2gsm1andp"
+ "commit": "5a053c0867a80832de04ef58a084b231aced78cf",
+ "sha256": "12xdk8z0nzb1in2zgqvlqk8dwqlg3y7jg9c26lgg174qi5h995r5"
}
},
{
@@ -16136,26 +16217,26 @@
"repo": "liuyinz/emacs-conventional-changelog",
"unstable": {
"version": [
- 20211012,
- 1322
+ 20211103,
+ 1242
],
"deps": [
"transient"
],
- "commit": "ba6285674d12d1eab6624ebf7a3bae7e72d56f99",
- "sha256": "13l3h3akismyfgsw1l47df56lx3myr1zjqimhfzcl1jk4qg2579q"
+ "commit": "9db9dcfdff2ff8cf6a88e938646cb26ce0f61774",
+ "sha256": "1qm6v88mz6bxz0yg2yw5xfiz5jjnz3i9vwaa3irnywzs6prw7pa4"
},
"stable": {
"version": [
1,
2,
- 0
+ 1
],
"deps": [
"transient"
],
- "commit": "ba6285674d12d1eab6624ebf7a3bae7e72d56f99",
- "sha256": "13l3h3akismyfgsw1l47df56lx3myr1zjqimhfzcl1jk4qg2579q"
+ "commit": "fa0eaa173c3b89be2ecd0db55511e1d896f9a422",
+ "sha256": "01qngmxaw7am5idr1mlb3lb39bgxfc8l802cjksp7k640gpmkk31"
}
},
{
@@ -16336,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": [
@@ -16455,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",
@@ -16978,16 +17077,16 @@
"repo": "AdamNiederer/cov",
"unstable": {
"version": [
- 20210330,
- 44
+ 20211026,
+ 308
],
"deps": [
"elquery",
"f",
"s"
],
- "commit": "62a4650f97eddebf6cd04b662a69b15ba72472c1",
- "sha256": "01l38yfgzh4apvj9ipl50b5shf6vnyqdciklpbajciynz118p19q"
+ "commit": "58cf3d5fd2d71084083a293b0fc7ce947aadaf26",
+ "sha256": "0lbsc5dz810gcvpapqa0x9b0wpd9fb1sb4qj32ypfbc3ywklzd38"
}
},
{
@@ -17562,8 +17661,8 @@
20210826,
421
],
- "commit": "4a5114abe76b1e3859fcfe0f5b35b53f57343d47",
- "sha256": "0a50llp0n2jcr8zgkx7nn925xhwh3k1iiz67662xplfl5gmww4g1"
+ "commit": "c0c7602368f7b3933584e7790394a4d509bd1c50",
+ "sha256": "1nkaaggdh9bzisq4dx6mi2lbajymq9l6dp83gsphf94xcn3q5g2s"
},
"stable": {
"version": [
@@ -17650,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,
@@ -17808,11 +17907,11 @@
"repo": "raxod502/ctrlf",
"unstable": {
"version": [
- 20210912,
- 1913
+ 20211019,
+ 244
],
- "commit": "b8a7899faf9d37f1990dfefd9c6b2998c40d7fcc",
- "sha256": "0y9vqkwf8v6135s4p6y7whqf3dpsj47alby4jq4jhvg28dxbjbhr"
+ "commit": "e915c5920cd3e39f481a6ce024073dd28cc9f743",
+ "sha256": "0asy33mgyjiz7kvpsh09npqigb3x9bk64p8j81czaa3jxw40mnh1"
},
"stable": {
"version": [
@@ -18255,8 +18354,8 @@
20190111,
2150
],
- "commit": "c129b15e8ee249a33ca9a5dc82a3defe509ad5c0",
- "sha256": "0lg75np90niwj2ajqvla8s4dsgg8jr8k5bhgqsry6v6kx549rzvs"
+ "commit": "b5f81f5e900922356ee7aeedf78a54fa96f85c71",
+ "sha256": "0rb5sngg8l1l4wdixhq4jzf2a55x60c0xzyzrqvpb596pacadbg9"
},
"stable": {
"version": [
@@ -18407,11 +18506,11 @@
"repo": "rails-to-cosmos/danneskjold-theme",
"unstable": {
"version": [
- 20210929,
- 1514
+ 20211019,
+ 1630
],
- "commit": "a9e47c5c6ee241e2061846777333730b26ffa0f0",
- "sha256": "0m39b91s9j67raridl42y853syx779yjk7c6abnymw7gy9678fvj"
+ "commit": "e74c5960eae3db90bf1b3ea7e71a2406c27554a8",
+ "sha256": "1vpfhiqwhdfa0w4akh6wfam88qkjy73i8yryfaz8a5qbm60nd43h"
}
},
{
@@ -18463,8 +18562,8 @@
"repo": "emacs-lsp/dap-mode",
"unstable": {
"version": [
- 20211013,
- 1936
+ 20211020,
+ 1757
],
"deps": [
"bui",
@@ -18476,8 +18575,8 @@
"posframe",
"s"
],
- "commit": "1cddcedf9ab57a2c14a5ec50b6907b866920f42e",
- "sha256": "0g67m40y4giill6sild7d9iaz5dis666wlxpcdl89vyvj2ys8hqd"
+ "commit": "a18f29e3d1a3a945ec5dfc7dea98927ecb022c34",
+ "sha256": "037xly2c3jd33a3gnkrfp7lammrgarl5kknp5zvqs35278xpsdng"
},
"stable": {
"version": [
@@ -18763,11 +18862,11 @@
"repo": "stanaka/dash-at-point",
"unstable": {
"version": [
- 20180710,
- 1356
+ 20211023,
+ 104
],
- "commit": "4d795a23a8428c421d5107f1b005c9d8e0d1816c",
- "sha256": "09rxyr22qxc9pdrkg0c4smifh2r797ggz5hg74q8j8jybvixsbls"
+ "commit": "fba1a6f42ea51d05110e12c62bdced664059eb55",
+ "sha256": "0yvr3dzdd3f6njg6in54ab2mddlagaqz8mynccgw5sq1d58w1nvp"
}
},
{
@@ -18830,8 +18929,8 @@
20210928,
656
],
- "commit": "77eff49a054e08a474608237f0faae13acb4489b",
- "sha256": "00xqgjwihd1r625mba788l0270bd9is8g211rsln91wmfv7gnifk"
+ "commit": "a19868f2fb8f7fc4132b4e9bfac5cdd65f245181",
+ "sha256": "1gmcnj3ldhqy417wv2lqfh53pg8glfz28bgd26sx5nbw7w5lhd9r"
},
"stable": {
"version": [
@@ -19011,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"
}
},
{
@@ -19170,8 +19270,8 @@
"ccc",
"cdb"
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -19419,11 +19519,11 @@
"repo": "ideasman42/emacs-default-font-presets",
"unstable": {
"version": [
- 20211007,
- 309
+ 20211104,
+ 52
],
- "commit": "1985fc92c62c0a1e660639f78518a42d055045fa",
- "sha256": "12ink0pj2mpyf0g6q0smypirw9rvjlg0rr7zj7xw8k6jfhlhlf0l"
+ "commit": "dbb6c6c5350ba76b12bd69a584b0634a8262a76f",
+ "sha256": "1yjc4g50r0jghf5a0qipfzys6krgz5vqizm3hlq4lh29hvkazc6i"
}
},
{
@@ -19858,8 +19958,8 @@
20211002,
1657
],
- "commit": "206d06512cd9934644fa9ea3e17b5e78d01b7e64",
- "sha256": "1d51lnwvy53zhq99m6bdm4sp2ykhnwcijc8gpxjqy3c8vnzdbjyk"
+ "commit": "e1b4b0258289d442e349f67f175f05be6f4347d4",
+ "sha256": "0yqmaa12sdci6wy95fany03rcqsm9avrjldzrypa9xv5a2ayi48f"
}
},
{
@@ -20087,14 +20187,14 @@
"repo": "dgutov/diff-hl",
"unstable": {
"version": [
- 20210928,
- 139
+ 20211102,
+ 242
],
"deps": [
"cl-lib"
],
- "commit": "6b7ca8c310ec1c1a83990c8d1c013c68f61d9d51",
- "sha256": "1iigna8p76v57hahw3qcsnkd86gqspfb738c74vj5chb1wgb48dw"
+ "commit": "47f8724ced083c4f5aca9e0751bfd2489198d1be",
+ "sha256": "186b66fr2hj75si88431dx8jcp2icvk6qb2xi0z24ll7rxwccskg"
},
"stable": {
"version": [
@@ -21128,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"
}
},
{
@@ -22096,8 +22196,8 @@
"repo": "Silex/docker.el",
"unstable": {
"version": [
- 20211011,
- 824
+ 20211101,
+ 717
],
"deps": [
"dash",
@@ -22107,8 +22207,8 @@
"tablist",
"transient"
],
- "commit": "9d845e1eaed663ccc811c0a9ede3b3c61859e9e4",
- "sha256": "01rnsyqrxvyc3kbfa4nmvxqxw261sc9b6jhqsnx14s3qfhy9w51l"
+ "commit": "a7097f68a96470ae7d77b86c7bdee9acb095f06e",
+ "sha256": "1dnrk8fc725l3nk0rr0xxzz8zizs3558spprjbg8ry1l5fahjm9a"
},
"stable": {
"version": [
@@ -22241,11 +22341,11 @@
"repo": "spotify/dockerfile-mode",
"unstable": {
"version": [
- 20210828,
- 1805
+ 20211016,
+ 1545
],
- "commit": "83bc055f5bcafabd3a10655a193fe8fe8b886867",
- "sha256": "03w5j4hm39m2cjm5s70vl5q8znscafwnk3kgwlmj62y8i6p0hhdr"
+ "commit": "5db94549ce8b000ae35adf511c820ad228178052",
+ "sha256": "1qldv6zcayj8sqjdl16g9rwxa0dzyja2r5d6v7kch9559vif1nyb"
},
"stable": {
"version": [
@@ -22332,11 +22432,11 @@
"repo": "progfolio/doct",
"unstable": {
"version": [
- 20211014,
- 244
+ 20211018,
+ 1902
],
- "commit": "6e20848a2786e8e9a5fecf27b6f29a7954635ff7",
- "sha256": "1wdk4m117x9vidin1n5kr8a33znf08r4j096pnqhwm5axq5s3ciz"
+ "commit": "c1919a4297e5479d3a22ded90095245317b29935",
+ "sha256": "0vzkva3nn8fbk0xhyyns5vfr3irgy8hbn1wcxwpi3ygchrflckia"
}
},
{
@@ -22469,16 +22569,16 @@
"repo": "seagle0128/doom-modeline",
"unstable": {
"version": [
- 20211013,
- 644
+ 20211024,
+ 1720
],
"deps": [
"all-the-icons",
"dash",
"shrink-path"
],
- "commit": "56876e64d92fa1aa2d569831a126e1a26ce06849",
- "sha256": "1vpqa95ibw5srisrypfnmf3rkkspiq7crk72yf3sghpcancl7b50"
+ "commit": "25e81e77cd7481de4c666d4070ae038e4970c767",
+ "sha256": "1xrhfrnpzj3c3vrqzw8wsrbpgnvl849ad4fzpqid1vvzl6xzq2ww"
},
"stable": {
"version": [
@@ -23133,16 +23233,16 @@
"repo": "jacktasia/dumb-jump",
"unstable": {
"version": [
- 20211006,
- 1631
+ 20211018,
+ 1545
],
"deps": [
"dash",
"popup",
"s"
],
- "commit": "f3176fbf9c11b94cf05bd8279399d9536115ff3c",
- "sha256": "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"
+ "commit": "dbb915441a2b66f2fbb954ff5de2723c5a4771d4",
+ "sha256": "0gbxhl50j6m6c0kq2v3ph9b3mdrmjdslxiy6lhms4l01zyrg621g"
},
"stable": {
"version": [
@@ -23185,8 +23285,8 @@
20210909,
1010
],
- "commit": "87a2d25e56caf65600e9d3f647bcb4999556ecb4",
- "sha256": "0g7vwfcbv88kbsxz7qzwj7wdxf88ir22wwlglxryaf5249fzzln5"
+ "commit": "4060ee0f13866916336f4ba2c14fa836c9ad04da",
+ "sha256": "0ffxaj9l186ln642j86m9j79hkn71wqqx8xyzcwg2cc3avqnm3sx"
},
"stable": {
"version": [
@@ -23772,16 +23872,16 @@
"repo": "masasam/emacs-easy-hugo",
"unstable": {
"version": [
- 20211001,
- 1239
+ 20211017,
+ 1248
],
"deps": [
"popup",
"request",
"transient"
],
- "commit": "751fdb95d0fb239b3204b6e4cde78006a5b95ec7",
- "sha256": "0xv9kfjb734igfyv7fbqxsnhnbd0hb0hsf477jymzg8hvzlqbqb0"
+ "commit": "baead14d7f2fa86e108269932a94bf376de9c2e5",
+ "sha256": "1d61wkambq4dr65bv8ldyqzkicgspw4yiyb52x6ngka6gj8cs27h"
},
"stable": {
"version": [
@@ -23951,26 +24051,25 @@
"repo": "joostkremers/ebib",
"unstable": {
"version": [
- 20211014,
- 1059
+ 20211102,
+ 2220
],
"deps": [
"parsebib"
],
- "commit": "b829aac34b90471cb53960ac0c0186603d032946",
- "sha256": "0fp2nbr3zrq62mj83qwfh7x358mpkicphh9ha0yq64pd6a4l0ivd"
+ "commit": "84c7234c4901207fa0520af96922c2b8e407ff4c",
+ "sha256": "18gvmymkpzws8s4zjcm1kijyr55dgfcq201z3w1jzhkhcs01bfsc"
},
"stable": {
"version": [
2,
- 32,
- 2
+ 33
],
"deps": [
"parsebib"
],
- "commit": "831ffcca35601e169c0778035688c5d17d138b58",
- "sha256": "04kw0akp35r2ibrcav4kaf34d1xs8pckjiygv7h1nqpv6dmrgfq7"
+ "commit": "84c7234c4901207fa0520af96922c2b8e407ff4c",
+ "sha256": "18gvmymkpzws8s4zjcm1kijyr55dgfcq201z3w1jzhkhcs01bfsc"
}
},
{
@@ -24083,7 +24182,7 @@
"version": [
0,
6,
- 17
+ 18
],
"deps": [
"ansi",
@@ -24093,8 +24192,8 @@
"f",
"s"
],
- "commit": "3a77ba9f1064c2bca47b401974c009e65727c46e",
- "sha256": "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"
+ "commit": "d173cdf487bc2c62305e2232db96290bc021950f",
+ "sha256": "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"
}
},
{
@@ -24660,11 +24759,11 @@
"repo": "suntsov/efar",
"unstable": {
"version": [
- 20211014,
- 728
+ 20211019,
+ 1512
],
- "commit": "1823b9301f552a6944a42f49a0a136a2861ffb88",
- "sha256": "0fvdybwda6p09frlij7imqljmnlpa16p03wv45f6w1gsi4akqzy8"
+ "commit": "ff82fa01dd350d662cdef1fbf3db57425abc3649",
+ "sha256": "0zavb6xwdnysbbfs6k0cs9xdqaw87kmp97wrdsf1d8k5xam6l36v"
},
"stable": {
"version": [
@@ -24860,16 +24959,16 @@
"repo": "fsharp/emacs-fsharp-mode",
"unstable": {
"version": [
- 20210330,
- 1442
+ 20211020,
+ 1758
],
"deps": [
"eglot",
"fsharp-mode",
"jsonrpc"
],
- "commit": "882d70dde3c066947b0acc51c72ff2f3a903f100",
- "sha256": "08kpjxqvlpid48dhkl6d1nr76kj7l9f1a3sgrkc5ha52k26m5nkn"
+ "commit": "e92e270c6c987497041fac65cded82146cd41dde",
+ "sha256": "0jzxdim6mpj984cmhxzpafig6dcaav5x98y59f4ji3dxc95qs6r7"
},
"stable": {
"version": [
@@ -24945,11 +25044,11 @@
"url": "https://forge.chapril.org/hjuvi/eide.git",
"unstable": {
"version": [
- 20210818,
- 2149
+ 20211027,
+ 617
],
- "commit": "a547b8f46ed905f456ac37f4693279532cc1d886",
- "sha256": "0xk7i9da9qglz924hfw14hk4l3lxjqrmlyv9i4ai610a06pnq7rk"
+ "commit": "5bb04501a7f5bb3f5be33b8b96742f1ac9839a8d",
+ "sha256": "0w3xc2yhdrhcb5fjy1h877y14k1iidcqc548qnxjyzal8l0z5nw1"
},
"stable": {
"version": [
@@ -25145,8 +25244,8 @@
20210613,
1418
],
- "commit": "b5a5a405d04f61ec9c5fcb19357a50a4b9e36a25",
- "sha256": "1w6ps78saxdvx64a2y1vvzn11mvb6bw9657zfin0yibh2s91hqrk"
+ "commit": "960f3fb962c35d3196bab20b2a3f6d6228119277",
+ "sha256": "1d1lkcnjjdca73frn611gz9rck73mn2kxq207lh2ykww3wkaa0pa"
},
"stable": {
"version": [
@@ -25495,20 +25594,24 @@
"repo": "doublep/eldev",
"unstable": {
"version": [
- 20210711,
- 1204
+ 20211102,
+ 1943
],
- "commit": "b7b5c6d7a9cf9f3fcbe57d4c2f91471b1139cc9f",
- "sha256": "0gfwfbya50fz8lv6aa83s35w41f93lrhgcd9qj7c9pf2yya4fvcy"
+ "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"
}
},
{
@@ -25622,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",
@@ -25691,11 +25809,11 @@
"repo": "xwl/electric-spacing",
"unstable": {
"version": [
- 20210625,
- 1722
+ 20211025,
+ 1016
],
- "commit": "1be87078a689d967cb2d6654659fb49427926d62",
- "sha256": "06iws70cc58xs79wlv9wgqk6vk9grvv1jhcngjjwg0pdn080rksz"
+ "commit": "859f4ab05eff9b00b3fd460b69010a03e010130e",
+ "sha256": "1s10sn14386dgjxkb7y6mlf5amcb5pq5p3akr0xjdh0dkdwy3db0"
}
},
{
@@ -26192,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": [
@@ -26742,8 +26860,8 @@
"s",
"yasnippet"
],
- "commit": "4248dccef31e260813d93cafd083bfcd71efc92a",
- "sha256": "16pkbg1fwsn0haz2x0ky9pmpgxj9syszsm5g58jra5r0dhyv99vz"
+ "commit": "8d0de310d41ebf06b22321a8534546447456870c",
+ "sha256": "0hg6yk0wkfh2rwcc4h0bb6m2p3dg62ja22mjpa94khq52lv1piwf"
},
"stable": {
"version": [
@@ -26807,8 +26925,8 @@
"repo": "emacs-elsa/Elsa",
"unstable": {
"version": [
- 20201011,
- 1950
+ 20211101,
+ 1023
],
"deps": [
"cl-lib",
@@ -26816,8 +26934,8 @@
"f",
"trinary"
],
- "commit": "ac0ab88abca1215cac60f8a986dadf3011b444bb",
- "sha256": "0g712vmiabia8aqvdw15i4416dgvy73flsijb6x8mq6bbxw6mmrc"
+ "commit": "22bb5bd15e3f4fc2a9f10b998626fec18fd3a1a0",
+ "sha256": "1cccxhni2xk5zc0rf807himgdh8aj0m247q0y1xngc9amjms9hqj"
}
},
{
@@ -27400,19 +27518,19 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20211013,
- 119
+ 20211103,
+ 1737
],
- "commit": "010b7356af782a3723fcfbbfc943bc8082c54c27",
- "sha256": "0ag3s7qyihh0231y7zmv33yafpb8ly01djxgpvdr0vhsflp0c7v6"
+ "commit": "0b524bda8d9c5f9e26898e383e98a4ec689fa144",
+ "sha256": "1jgl9n6js71sx4j1wg2nl5aaqmsq2hzna0qawz813637kaylrdxn"
},
"stable": {
"version": [
0,
- 10
+ 12
],
- "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
- "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
+ "commit": "0bd49785a6aa4225e2d2ebcde559c1e2ee006a9f",
+ "sha256": "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36"
}
},
{
@@ -27423,27 +27541,27 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20211012,
- 1921
+ 20211031,
+ 1522
],
"deps": [
"consult",
"embark"
],
- "commit": "010b7356af782a3723fcfbbfc943bc8082c54c27",
- "sha256": "0ag3s7qyihh0231y7zmv33yafpb8ly01djxgpvdr0vhsflp0c7v6"
+ "commit": "0b524bda8d9c5f9e26898e383e98a4ec689fa144",
+ "sha256": "1jgl9n6js71sx4j1wg2nl5aaqmsq2hzna0qawz813637kaylrdxn"
},
"stable": {
"version": [
0,
- 10
+ 12
],
"deps": [
"consult",
"embark"
],
- "commit": "47daded610b245caf01a97d74c940aff91fe14e2",
- "sha256": "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"
+ "commit": "0bd49785a6aa4225e2d2ebcde559c1e2ee006a9f",
+ "sha256": "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36"
}
},
{
@@ -27598,29 +27716,29 @@
"url": "https://git.savannah.gnu.org/git/emms.git",
"unstable": {
"version": [
- 20211013,
- 1353
+ 20211101,
+ 1746
],
"deps": [
"cl-lib",
"nadvice",
"seq"
],
- "commit": "f0da8453ae94aec630ad5b3395d6bc882ef0ae57",
- "sha256": "098lx63narp2drx0bq6bni20z0mi6nwr80cb4gc358ry7zy4m9rn"
+ "commit": "777c904c9d6c8dfff3ed21c5e4a24a6432f8ee52",
+ "sha256": "0kg312x6ka4nxpbwsfyhg8n4a2yqi0wcfxgbj17sfcs9d3ssijs8"
},
"stable": {
"version": [
7,
- 7
+ 8
],
"deps": [
"cl-lib",
"nadvice",
"seq"
],
- "commit": "bc0d2ec1ba99409421d3f75aae315e10b5014b31",
- "sha256": "13jwf5dxhj1ch2l4klxjy1h1by70lhx99bsjdx23pvr6di0srnj9"
+ "commit": "4529ea69dd86c5e88d7fb7d568a5258b20988042",
+ "sha256": "1hyxcpv020dhm15fvdq2jgdqzsn2ara8156dpz4c93g8kj614crx"
}
},
{
@@ -27786,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": [
@@ -28349,14 +28467,14 @@
"repo": "emacscollective/epkg",
"unstable": {
"version": [
- 20210930,
- 1703
+ 20211017,
+ 2000
],
"deps": [
"closql"
],
- "commit": "a8e2b7e7a8123c32f14b13af5cf2ab1d1d1ec764",
- "sha256": "0mw0z88ycdl42pr4y5ix6pb402l26fs0h2npyv0grr42k78xba8h"
+ "commit": "9be7c61fe119d9d984d8f3a91139c794300a77f2",
+ "sha256": "03qymnnsw5fb2xv1bm4z8arz8mnzqhg988baj15r13j1fcakl55r"
},
"stable": {
"version": [
@@ -28468,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,
@@ -28949,14 +29067,14 @@
"repo": "ergoemacs/ergoemacs-mode",
"unstable": {
"version": [
- 20211012,
- 142
+ 20211103,
+ 2356
],
"deps": [
"cl-lib"
],
- "commit": "3f961db491f572b7f0637e09fd113c43a1061617",
- "sha256": "1519y2q6mqvjncd8axdimajb12z7xmzmgxr8c021iq8s2ikf65bs"
+ "commit": "63fe57790e212a3375fd9af2ccb3184f3e1d821b",
+ "sha256": "1hac7p9v510iw15livf3mx8f5f522n6s3w4mbhflilymb3bxclgh"
},
"stable": {
"version": [
@@ -29003,8 +29121,8 @@
20200914,
644
],
- "commit": "d281edeac893db140ab2a0ec9f42a4c1dd2efecb",
- "sha256": "089z3mgpgsb7gx6v7ysmvi8nc2fzbhd72av1yh2m4lc1alxw711a"
+ "commit": "475d9add939bf86936a1d5b41c3260f0000bd3c8",
+ "sha256": "0f7849s67gzzrnkb57hm2p6hbkrd50s02m9l5xfqg286dinhqp0v"
},
"stable": {
"version": [
@@ -29027,17 +29145,17 @@
20210315,
1640
],
- "commit": "e782c0305e2fcdff0b9ea9c2b365878e602df04a",
- "sha256": "1vfy86wsv8mx1w7lawxp7h7lc7iyqn9jsddi8006f8ccqsndbbzc"
+ "commit": "b3d4affcf9880255f6edc2e67095015e6ed2aca2",
+ "sha256": "1rz9akamp7qc8m417xgbjbm0785bj1jsjpaabzmq3pjxcqzykna0"
},
"stable": {
"version": [
24,
1,
- 2
+ 4
],
- "commit": "0706178dea1c62d8d63c33c86bbf473dcaef89d5",
- "sha256": "0kkrng9822vkgw8l7vqglrrmhpq9pqrm7x8786s1bjl31bxd8i9z"
+ "commit": "eef2e7066ecdf9de5dc7fd81dc5043d9a9757efa",
+ "sha256": "0gpjl5avpfgrkm6g3p8b2b3zgfvrpsxgvzgb01mhbcw8mi2raka0"
}
},
{
@@ -29465,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"
}
},
{
@@ -29609,8 +29727,8 @@
20210429,
413
],
- "commit": "32d2568ebeb42553a30dda77e03c0e2ec8854199",
- "sha256": "0my99472i5zdlhcv95jhfv58ph28gaw159p2llp4wv13acryin56"
+ "commit": "8e3a685fc6d97af79e1046e5b24385786d8e92f6",
+ "sha256": "15m084kk3ikw85pw9dg5xwc1abbv51a2f0k421vks0bhi37ba1wd"
},
"stable": {
"version": [
@@ -29663,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",
@@ -30057,27 +30193,27 @@
"repo": "ShuguangSun/ess-view-data",
"unstable": {
"version": [
- 20211009,
- 55
+ 20211103,
+ 1525
],
"deps": [
"csv-mode",
"ess"
],
- "commit": "6fd97a89c73815672de7df21d1ecd362a66126b5",
- "sha256": "1vbq9xnspbmykbz4axrxskfsb30bzcnfkymiyfy82shb65r53fn4"
+ "commit": "060ea424d7781d652ae385a48384848b6ded0105",
+ "sha256": "1nwdf2i47j1m1vhy8ng02xbrmr15gm97fmnd5z4yb29gj2kb69fv"
},
"stable": {
"version": [
1,
- 3
+ 4
],
"deps": [
"csv-mode",
"ess"
],
- "commit": "845412ba57efab1a28fbaf0dcdbe76bdab03f828",
- "sha256": "0m5wmxi4zq3xy9jsg7d2318iyn9g6fpzqiraq0810fbmrdl4dda4"
+ "commit": "fddf070b51dbcbf7fa060a9998e676e8d0c15e1d",
+ "sha256": "1zhlinkfzybkk0gbr1pskvx69wk566r6a5dxgpjjry247hq76ci2"
}
},
{
@@ -30484,15 +30620,15 @@
"repo": "emacs-evil/evil",
"unstable": {
"version": [
- 20211011,
- 2205
+ 20211021,
+ 2104
],
"deps": [
"cl-lib",
"goto-chg"
],
- "commit": "44f75e93c6db89de882a0eb1d8bcc7c4ebb8e94e",
- "sha256": "12r45djpmdhf4ygc9wdxj1jmxwcag300a8skfhkpiqimapnm8k5k"
+ "commit": "17c635f6e1f538bf4b2c3c276ddd9d4d165a52fb",
+ "sha256": "1yd7kmhk0v235h4nlynfs29ljx7ca6i7s7h8wj5krk5b8sv51x27"
},
"stable": {
"version": [
@@ -30636,15 +30772,15 @@
"repo": "wbolster/emacs-evil-colemak-basics",
"unstable": {
"version": [
- 20211011,
- 1752
+ 20211022,
+ 1248
],
"deps": [
"evil",
"evil-snipe"
],
- "commit": "05c023740f3d95805533081894bfd87f06401af5",
- "sha256": "1fnzrwr53h18wp4wkb834j39xg8bv7yqcmilb41bc81npfmi2mn1"
+ "commit": "f9fbb49c48b3347d97fd2e19d7499bfee0ac5ad9",
+ "sha256": "0w40qfwjjmvzkxi8p09s9g266ggvxcw7jhg7j70fz24hq6plmc2r"
},
"stable": {
"version": [
@@ -30686,15 +30822,15 @@
"repo": "emacs-evil/evil-collection",
"unstable": {
"version": [
- 20211007,
- 1722
+ 20211028,
+ 1851
],
"deps": [
"annalist",
"evil"
],
- "commit": "6709c1ec4118c8721df43ea6708ae45ebbc01fd3",
- "sha256": "1wcjrqvirymwfn0f5sv8axw7ycfjff3h0x5f1cadakbpa96jrc9g"
+ "commit": "9e47d61bdfb63495503e62955ac5509b34c51de0",
+ "sha256": "06lwla41sr7m4bzlixbivn46c0ydc2hx0jfcqgi9lxk447v8ixcs"
},
"stable": {
"version": [
@@ -31353,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": [
@@ -32012,8 +32148,8 @@
"deps": [
"evil"
],
- "commit": "44f75e93c6db89de882a0eb1d8bcc7c4ebb8e94e",
- "sha256": "12r45djpmdhf4ygc9wdxj1jmxwcag300a8skfhkpiqimapnm8k5k"
+ "commit": "17c635f6e1f538bf4b2c3c276ddd9d4d165a52fb",
+ "sha256": "1yd7kmhk0v235h4nlynfs29ljx7ca6i7s7h8wj5krk5b8sv51x27"
},
"stable": {
"version": [
@@ -32167,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"
}
},
{
@@ -32204,15 +32351,15 @@
"repo": "meain/evil-textobj-tree-sitter",
"unstable": {
"version": [
- 20211008,
- 1630
+ 20211029,
+ 514
],
"deps": [
"evil",
"tree-sitter"
],
- "commit": "ebde473af5a484959cda97483453d855c7bab89b",
- "sha256": "1x30il32l57pmqiqj872z83w1v7g87scsaaspn05i4wd8x7y30qp"
+ "commit": "08823ff97277fe50540d8226c7d298e06fb14932",
+ "sha256": "0w0kj6nd2achp7s6h56vzjjb28c8m5i45laa11iph3g8avvyhf2c"
}
},
{
@@ -32700,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,
@@ -32858,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"
}
},
{
@@ -33454,14 +33601,14 @@
"repo": "condy0919/fanyi.el",
"unstable": {
"version": [
- 20211015,
- 1502
+ 20211030,
+ 1408
],
"deps": [
"s"
],
- "commit": "d6913c8a8dff0711d3e3dc42ba1b63fb0a39ece5",
- "sha256": "1pk7mfmfzxi1saaq2g76bgps9w4gcdbj1ck74hkhiv5a166w3fi8"
+ "commit": "2e37cc1d19f0f6f710932610639e4fd206884770",
+ "sha256": "0j0mqlx5xv1m1ik61q82lj6y030226k7isswd5plbq2v5z1d8b76"
}
},
{
@@ -33632,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",
@@ -33801,20 +33970,20 @@
"repo": "technomancy/fennel-mode",
"unstable": {
"version": [
- 20210926,
- 753
+ 20211101,
+ 1749
],
- "commit": "81a3be351ce35d57c648d7b1cf83fbf70600cfba",
- "sha256": "0hfid4zi7c9hjszv8awmapvac5g2z4cwyvr34iaa7kmjyqljlw8r"
+ "commit": "777c19b8cbf48f3247f8bd47f61858581ad02b50",
+ "sha256": "0v9a6psnlbh9cyibp95k2frix29ma6b69cgivmh8z4nrp0ycywc7"
},
"stable": {
"version": [
0,
- 3,
+ 4,
0
],
- "commit": "ea8564a2cc4f7e10b3fc13faf26a4f098b159f00",
- "sha256": "03z3f60qsn6k9wg1km49ad4xlwp82114r5pzibnxly2n0vmmdsyb"
+ "commit": "815f4c9433fa389bf10ddcf1da6f280e512912ff",
+ "sha256": "0v9a6psnlbh9cyibp95k2frix29ma6b69cgivmh8z4nrp0ycywc7"
}
},
{
@@ -33951,15 +34120,15 @@
"repo": "knpatel401/filetree",
"unstable": {
"version": [
- 20211008,
- 2353
+ 20211025,
+ 2000
],
"deps": [
"dash",
"helm"
],
- "commit": "1f0bcf009bf124c213d64dd2726061db6af981b5",
- "sha256": "1wsqddl48shi2815zmx609g39bpc9kn28hv26vpjljap8qxpxpzw"
+ "commit": "a7a71d875cb666bed34e2ec86ae7921d8af5c28a",
+ "sha256": "08lz5zksnc8728v8gxpmc587pi7i85iv7f35d46appffwc42hfra"
}
},
{
@@ -34895,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"
}
},
{
@@ -35066,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": [
@@ -35103,8 +35272,8 @@
"cl-lib",
"flx"
],
- "commit": "647cb2f92f9936c62e277d7a74ad54a80502d255",
- "sha256": "1mslib2zrj1ckl8hiyidc4hi4r83pcv3i1hincvqd2f7qj957lxv"
+ "commit": "e3b3f0533e44c5250ce73d728b59a7e96c692b5d",
+ "sha256": "0sgs83gn6ms90yk68ygvcib8k5k94ql6s23qzllas07qzmx0cn48"
},
"stable": {
"version": [
@@ -36144,16 +36313,16 @@
"repo": "emacs-grammarly/flycheck-grammarly",
"unstable": {
"version": [
- 20210814,
- 1627
+ 20211027,
+ 1357
],
"deps": [
"flycheck",
"grammarly",
"s"
],
- "commit": "509641db723adff48781cfaef391f87e19d043a4",
- "sha256": "1gqd21w8n2b4yfdi46qn0q01csglw5gr1f7l8maldxff10l11fyg"
+ "commit": "cb086c996db0837e774a5dc9edca9592e2e8f9a8",
+ "sha256": "08njaf2fxfiww5c967qrz18zq3sazdlwdvg66nbxkyzhyhgy6r3b"
},
"stable": {
"version": [
@@ -36531,8 +36700,8 @@
"flycheck",
"keg"
],
- "commit": "3436d0634080f6bcbcde68dc804e6128f632a4f8",
- "sha256": "1afa33hga4c00p086q15cahjmd2hhmnmiqa55qpadx3nvyy2rqhi"
+ "commit": "bf2457d128dca207b3fb00a2660eb662327f877b",
+ "sha256": "0yc24n8mvppxni3hbfwk1p5spxqswax90l2v0gwc9wf20djmkdfq"
}
},
{
@@ -36937,8 +37106,8 @@
"deps": [
"flycheck"
],
- "commit": "3aa3035c637eb0476f05bd0fbc66c058aa67ffb7",
- "sha256": "1jdlsqla1ydh631wzx0pr8dy0sad6411m4dz5iwjj6552bhzx4v3"
+ "commit": "3c5cfa5b790bb7f0a8da7f3caee8e4782b67f8ac",
+ "sha256": "0p95h0j9v3qq4yihynp9g62rcx77p54v0q1ddwhafzzkshqqcs7f"
}
},
{
@@ -37336,8 +37505,8 @@
"flycheck",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -38297,11 +38466,11 @@
"repo": "turbo-cafe/flymake-kondor",
"unstable": {
"version": [
- 20210814,
- 1303
+ 20211026,
+ 501
],
- "commit": "0058ef5167142a521825e824aced6229e4898ae9",
- "sha256": "09f2xn309gyn0nrsf9hcpwprjyliiqlli3ll406gibgs5nh88hds"
+ "commit": "784e57f36812a37e323409b90b935ef3c6920a22",
+ "sha256": "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"
},
"stable": {
"version": [
@@ -38873,8 +39042,8 @@
20210724,
1042
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38901,8 +39070,8 @@
"avy-menu",
"flyspell-correct"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38933,8 +39102,8 @@
"flyspell-correct",
"helm"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38965,8 +39134,8 @@
"flyspell-correct",
"ivy"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38997,8 +39166,8 @@
"flyspell-correct",
"popup"
],
- "commit": "00357953a736e21d0a1c8d76f5605820990544fe",
- "sha256": "1jf1jd0y6pn61czgsb9bccj3zxwjyglv0cgvyjjkadk1biaz0chj"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -39470,8 +39639,8 @@
"repo": "magit/forge",
"unstable": {
"version": [
- 20211014,
- 1707
+ 20211103,
+ 2319
],
"deps": [
"closql",
@@ -39484,8 +39653,8 @@
"transient",
"yaml"
],
- "commit": "cdf34e7586a2d4edde7a6da38752741080b68233",
- "sha256": "15zm5azgl8gyd91i40a00ih4s2iwg1r8007n2gcfnmi6m4b7s0ak"
+ "commit": "760affa8de6dd4ccb1607d343e36b54296473074",
+ "sha256": "0139z7h835669f6msflnp940106s3x29k7kagiga413ijjiv140h"
},
"stable": {
"version": [
@@ -39540,15 +39709,15 @@
"repo": "lassik/emacs-format-all-the-code",
"unstable": {
"version": [
- 20211011,
- 1029
+ 20211017,
+ 1857
],
"deps": [
"inheritenv",
"language-id"
],
- "commit": "88e095ab6f8eee9537ffad23f068ebbdee3cea31",
- "sha256": "1z1sar005454b8lnfwmnnncpsdli13g4b1f2hvwl8c5w4z30n4g9"
+ "commit": "4851bab1659d519b4eaf8a16bfb76a4242d4dde2",
+ "sha256": "02363agwy1mn30q0z4p2ilf2ahb4ry13jv1cfwy318w1d6wgg6b2"
},
"stable": {
"version": [
@@ -39685,14 +39854,14 @@
"repo": "rnkn/fountain-mode",
"unstable": {
"version": [
- 20211015,
- 607
+ 20211104,
+ 1141
],
"deps": [
"seq"
],
- "commit": "f370f8f2e57805b94ab61ea6997ad31e13f81f5c",
- "sha256": "0ghxg54n09syxfnngiiil3hf1m566ajxkwi051i0m3pwfqcg6nwa"
+ "commit": "bf1849456f6c7587e15a44a0e5c7e1f93810a6e2",
+ "sha256": "1hm2qw11kka2sfafqqhxvbc7ksrgsz5x7difmrbx03ljnib6fvcg"
},
"stable": {
"version": [
@@ -40235,14 +40404,14 @@
"repo": "fsharp/emacs-fsharp-mode",
"unstable": {
"version": [
- 20210807,
- 1417
+ 20211031,
+ 1617
],
"deps": [
"s"
],
- "commit": "882d70dde3c066947b0acc51c72ff2f3a903f100",
- "sha256": "08kpjxqvlpid48dhkl6d1nr76kj7l9f1a3sgrkc5ha52k26m5nkn"
+ "commit": "e92e270c6c987497041fac65cded82146cd41dde",
+ "sha256": "0jzxdim6mpj984cmhxzpafig6dcaav5x98y59f4ji3dxc95qs6r7"
},
"stable": {
"version": [
@@ -40308,8 +40477,8 @@
"deps": [
"cl-lib"
],
- "commit": "7b451bb813d242dbc0cd6c29d071e0b320f2200e",
- "sha256": "0wvbjc40f3bph7vhkixnrqa7k18f5jl81zdvdrr3fplkqnm3vxwj"
+ "commit": "8515fe960b5b0bfce158ad91e9141f07a2c5fcc4",
+ "sha256": "19ch4ndc0pcw6ggv49wpdkq42pw7m86g973g7qrv4mgf95aprbi0"
},
"stable": {
"version": [
@@ -40575,11 +40744,11 @@
"repo": "tarsius/fwb-cmds",
"unstable": {
"version": [
- 20180318,
- 2219
+ 20211011,
+ 1610
],
- "commit": "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f",
- "sha256": "1xwvv8wjgdaz96v1x1xc5w697bfvcanlcixd0n5qbx6ryakqrb72"
+ "commit": "9418ad51eaf7c6fd973d7f068ca67de66f3635ee",
+ "sha256": "1rsifl61qdrzmhd6r0d9if5a7a1pwjp3z7aq9rwrkrz6k37mnd0a"
},
"stable": {
"version": [
@@ -41073,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"
}
},
{
@@ -41242,15 +41411,15 @@
"url": "https://alexschroeder.ch/cgit/gemini-write",
"unstable": {
"version": [
- 20211009,
- 2110
+ 20211026,
+ 1639
],
"deps": [
"elpher",
"gemini-mode"
],
- "commit": "7e1fe7d4f2c65c0854eb571edc78e5a45d7078de",
- "sha256": "0p1ch44w7sn73p87a7k47drgdj4sam961arfr4k0ii4fny54cyip"
+ "commit": "169333a5c251c14a84286dea02a63d1a5e93cf54",
+ "sha256": "1mfg8yb03wr278x6whzqz0y68xsl2g5zdwak08j9a6yigib8pmcf"
}
},
{
@@ -41386,11 +41555,11 @@
"repo": "matsuyoshi30/germanium-el",
"unstable": {
"version": [
- 20210912,
- 1407
+ 20211101,
+ 1453
],
- "commit": "22e7aac319f45b45c884d504f060f27b2dae159f",
- "sha256": "010sn05dpscj8nikr8hgvyybqdya6597kvh9a0ck1a4papqncbvm"
+ "commit": "1f28da73dd767b1cf5afe2230a0fd81bfbb1bb6f",
+ "sha256": "1v1ig4pf5ydb4b1fnjv9awdr2kfwzv1vbgqgkqhbswasxzzz4vgm"
}
},
{
@@ -41410,8 +41579,8 @@
"magit",
"s"
],
- "commit": "ba1e4423ed08abc2f427afd60216dc586a931075",
- "sha256": "09bfjahnxhbablrjrwkc4mm1sfxxk1nkl4ws2dy8dz55dqhjyiic"
+ "commit": "3de210e2bcf9a7ce9a2a448cd910ffe477de8432",
+ "sha256": "1aaaff18crz86f1mpjkwc6vfjdayjnv4imqrl8qnqfccbmkb5z4w"
}
},
{
@@ -41494,11 +41663,11 @@
"repo": "leoliu/ggtags",
"unstable": {
"version": [
- 20211008,
- 528
+ 20211020,
+ 354
],
- "commit": "1442ab8c7f02d246f14150207534fba4a42201ba",
- "sha256": "0bibr36b9cxxx5qgi27srfj21mv272npy5w1krrgmn0521qd07w1"
+ "commit": "8e16861392d7499bf3a212db1f5e9e0ef2e4fba9",
+ "sha256": "01fhc6cc13i9nvyl3d692s0fsyymr6vjxqpj7ydxsh489nw7hj4a"
},
"stable": {
"version": [
@@ -42043,8 +42212,8 @@
"transient",
"with-editor"
],
- "commit": "348d9b98614c824be3e2f05eef5ab91d67f6695e",
- "sha256": "0rrrm202lxmdxld2nlp7ap89h2m1qkl1rpks8hzq2b9bzbniln95"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
@@ -42328,11 +42497,11 @@
"repo": "sshaw/git-link",
"unstable": {
"version": [
- 20210815,
- 55
+ 20211024,
+ 1538
],
- "commit": "c4cb0edc92013ae4e3660f94c0c0d4d13fca6ee6",
- "sha256": "03gh9rgw5j4m1clsv97jj02ibmfwz0s4dhr0567g1jhavqm7ibl3"
+ "commit": "b2d803ad8764b896f5dd7f7e139ceb4903f7d8b6",
+ "sha256": "0gsa2qqxmynj10mpb3mm7xgsbk8fx7f4scwaxwl8l7dw3cmk9rmv"
},
"stable": {
"version": [
@@ -42373,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",
@@ -42521,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",
@@ -42569,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",
@@ -42696,11 +42841,14 @@
"repo": "TxGVNN/github-explorer",
"unstable": {
"version": [
- 20210825,
- 1440
+ 20211031,
+ 120
+ ],
+ "deps": [
+ "graphql"
],
- "commit": "cd1186fb6ca7728c1cf2478ad3878a6401c65246",
- "sha256": "0zfnqsw3918rfcfapzgfalrd5w6rhy01ym6ykdswrlv38zd9kjk6"
+ "commit": "a40c122e6768578254641fc0f24a8437ee70fac9",
+ "sha256": "1n7h5sw6b6907w2ry9d1knmda86s8iy9bim75ggyy6qcy06w0jdh"
},
"stable": {
"version": [
@@ -42778,8 +42926,8 @@
"repo": "charignon/github-review",
"unstable": {
"version": [
- 20211011,
- 1933
+ 20211029,
+ 243
],
"deps": [
"a",
@@ -42788,8 +42936,8 @@
"ghub",
"s"
],
- "commit": "2a24e75dfc2d9f37789ff60b4c10deb7c96f3f88",
- "sha256": "1mahd3kg5rr6jf1x3ixjvhgkv9c8fq8mxvikrmpjciari05sd58y"
+ "commit": "725fbc7b385228f53a7ddc46a92c1276bab4aea8",
+ "sha256": "1261p65wlpl9s5xqq1jfnkj7hrn27a4bn85rxc3allqdl5hc63hd"
}
},
{
@@ -42857,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",
@@ -44321,11 +44445,11 @@
"repo": "lorniu/go-translate",
"unstable": {
"version": [
- 20211014,
- 1322
+ 20211025,
+ 443
],
- "commit": "ce730f126a63eae77bc9585f75fe1dce968d9a2f",
- "sha256": "1r4x1v5j67k7idsy6vidc367kn2iznwdmlhx6h6lpnqv0l36n6py"
+ "commit": "8de1c3b660602b6739444ceed3e48214c417fe38",
+ "sha256": "0b8jbcs848ck0zbl6rmyyac3mbhx58zq04l7wvi7paficg9lphj9"
},
"stable": {
"version": [
@@ -44407,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"
}
},
{
@@ -44544,11 +44676,11 @@
"repo": "io12/good-scroll.el",
"unstable": {
"version": [
- 20210820,
- 633
+ 20211101,
+ 942
],
- "commit": "bd369750d3aeb7e210c1c033569a53d0fda898c9",
- "sha256": "0dkqipsbl7sl6j6asqv7y0md2kxx91n1k4hms7d4jbj4shka7hnz"
+ "commit": "a7ffd5c0e5935cebd545a0570f64949077f71ee3",
+ "sha256": "0f1zs3fjz5yc25qjka5g60018554ssdbp4j7xj275pmzrc78915w"
},
"stable": {
"version": [
@@ -44586,8 +44718,8 @@
20180130,
1736
],
- "commit": "9a6a5d3db386f1ebc6ad4a47a719cc92d2f34464",
- "sha256": "103kz081y15jcajmkaqaxc57gx8v0aypa91ql8gjwjx5hapawhvx"
+ "commit": "9806df89a3bc110cb9cabc41287bf942710599a3",
+ "sha256": "10l80l8aq30c4pgf930wj9dgfbhxp9jx81f4jnl2gq8z9bd7qwp6"
}
},
{
@@ -44802,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": [
@@ -44946,14 +45078,14 @@
"magit-popup",
"s"
],
- "commit": "086bb561d0544da01690d1028e6fd23c7c943573",
- "sha256": "1ad9q4rv7c13ls1c9z5vdshcj8y6723phlkpzgq0aicw9fxvi36m"
+ "commit": "14d8083c9ca296ce3c3e6d4fe21e455119f56db5",
+ "sha256": "0k8k22vwd0148sr8lnxjsvrhsp4byfb8icaqhk9cshws3g5hpb7w"
},
"stable": {
"version": [
0,
27,
- 0
+ 1
],
"deps": [
"dash",
@@ -44961,8 +45093,8 @@
"magit-popup",
"s"
],
- "commit": "086bb561d0544da01690d1028e6fd23c7c943573",
- "sha256": "1ad9q4rv7c13ls1c9z5vdshcj8y6723phlkpzgq0aicw9fxvi36m"
+ "commit": "6209be5b5c0bd5d81078fdc82eb4001f202f90e7",
+ "sha256": "15w2jbpilhk88rhsanq1hw19qvs66bcrv21v8hkmzsd1579p2qhy"
}
},
{
@@ -45173,16 +45305,16 @@
"repo": "emacs-grammarly/grammarly",
"unstable": {
"version": [
- 20210219,
- 1713
+ 20211027,
+ 1359
],
"deps": [
"request",
"s",
"websocket"
],
- "commit": "e0ae37f23a34ff0b7959963314410f30d75dddb1",
- "sha256": "0pjvlamld25rbphpnwjyvfscmk7im6qvj9cgy8gd8d7hlzch49cv"
+ "commit": "38d5c0384e90d577c4c657110fe4ef2d76b6146a",
+ "sha256": "0dxds8w213ad4czw5mrrb8a2i41jwsvrphy797lln5j7h404gs07"
},
"stable": {
"version": [
@@ -45363,8 +45495,8 @@
20210912,
1544
],
- "commit": "1912bd08f558e4609f4dd30ba91181b6ce7f69d9",
- "sha256": "0938cb40i5gs8sqksn2k1zpjm1g9a989dm7fb80dzm71r32y596n"
+ "commit": "80e9ac8020f7a4a8a963136698eb97a9fca28f7d",
+ "sha256": "1m4glbijclbhhzq8apvfyslfv1lgn3hy3wcfiynrpkxnxszygnyx"
}
},
{
@@ -45728,11 +45860,11 @@
"repo": "ROCKTAKEY/grugru",
"unstable": {
"version": [
- 20211008,
- 1720
+ 20210617,
+ 1028
],
- "commit": "856d66a65a75fd9906c47a930a8ee584bdef4077",
- "sha256": "1w4qcvmkwqz0kmzrqidrlr6mga8fi6khwdq2w5nzr31g915n2cv0"
+ "commit": "7efb041b826f15b10aa9cfb67b971fdc41064980",
+ "sha256": "175gfhi1621pclwvhbz2a8rramfb47v353x5hxjys1b0p848yk1l"
},
"stable": {
"version": [
@@ -45784,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": [
@@ -46093,11 +46225,11 @@
"repo": "Overdr0ne/gumshoe",
"unstable": {
"version": [
- 20211015,
- 1752
+ 20211029,
+ 2148
],
- "commit": "e530afd2e42bc560b3236cebeabdeaef0e33faca",
- "sha256": "10x8k19sf4jgbwxl0akzm3s47z8h78r83yb7512l62s2an3wi2g7"
+ "commit": "397379a3e032f31e98a57f5eb2187a0607c6bd7a",
+ "sha256": "0qmknrb4h20cp4ldzkiwnvgggr3pg1qjbkql0wz9vg4h90bf3gfh"
}
},
{
@@ -46108,11 +46240,11 @@
"repo": "bbatsov/guru-mode",
"unstable": {
"version": [
- 20200708,
- 728
+ 20211025,
+ 1157
],
- "commit": "fcb13d46f85dda886249bfaa19bcb777fe9f8a6a",
- "sha256": "10iwpl57dbgn2icqn4g9n65x64r190j15qv27f100sd3n0a1x7xg"
+ "commit": "a3370e547eab260d24774cd50ccbe865373c8631",
+ "sha256": "0h7d41l7rybljpb49hvkh14kc7bnh56rfrqzldpdry1qk3mr9bhj"
},
"stable": {
"version": [
@@ -46757,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"
}
},
{
@@ -46840,8 +46980,8 @@
"deps": [
"request"
],
- "commit": "1a9d6dd6ce52938a5e5aa34d737ea5eab8f4c193",
- "sha256": "0hs7qfd6ns7lsvcnh12z8yq171yhj2l4qj32m3xq9qrmimzdc9g9"
+ "commit": "f7a24c34631aa09fb7bc5bd13e8e4037e256730a",
+ "sha256": "1qvmxjl2f9qlj27aqvrpw6w5qkrp35pzdlzj622n5pc5xfpb64x0"
},
"stable": {
"version": [
@@ -47044,16 +47184,16 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20211013,
- 727
+ 20211031,
+ 1714
],
"deps": [
"async",
"helm-core",
"popup"
],
- "commit": "a86bcc99dcd45cd898a497715b4333d118a3c6f2",
- "sha256": "0bf3cx7w11h7dwjys3gb62p8mfl586qnf86jlsrzhvsg0dm56b5f"
+ "commit": "349663e85eddb40ed6ae78329e6abc47513b17f1",
+ "sha256": "0as1wk8crs9yizn1h6pqj60z4df59f6m632kfcnwl08yvzhiva3n"
},
"stable": {
"version": [
@@ -47346,8 +47486,8 @@
"cl-lib",
"helm"
],
- "commit": "bb47f355b0da8518aa3fb516019120c14c8747c9",
- "sha256": "10y6k1jch43jykd8g8xi10k8wq98x2w2xap64smrhxvgp53y2765"
+ "commit": "aa775340ba691d2322948bfdc6a88158568a1399",
+ "sha256": "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"
},
"stable": {
"version": [
@@ -47952,14 +48092,14 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20211013,
- 445
+ 20211017,
+ 530
],
"deps": [
"async"
],
- "commit": "a86bcc99dcd45cd898a497715b4333d118a3c6f2",
- "sha256": "0bf3cx7w11h7dwjys3gb62p8mfl586qnf86jlsrzhvsg0dm56b5f"
+ "commit": "349663e85eddb40ed6ae78329e6abc47513b17f1",
+ "sha256": "0as1wk8crs9yizn1h6pqj60z4df59f6m632kfcnwl08yvzhiva3n"
},
"stable": {
"version": [
@@ -49303,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,
@@ -49322,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,
@@ -49582,14 +49722,14 @@
"repo": "emacs-helm/helm-ls-git",
"unstable": {
"version": [
- 20211013,
- 430
+ 20211016,
+ 1433
],
"deps": [
"helm"
],
- "commit": "ae2202fbbbe11873ad4b393a6959da50ac250c1e",
- "sha256": "01j41pidn8aipz1c0x17p88rzr15bg7ij5fr1q2kf8qhky07xfvx"
+ "commit": "3eadeb2bc5d609e68bdaa184c2a50407c974c2a8",
+ "sha256": "1qqxwzalsjnhb2rggi4zv7qmlq7l1xwhh9nd6i8bn8sxhnma5y18"
},
"stable": {
"version": [
@@ -50339,15 +50479,15 @@
"repo": "tumashu/helm-posframe",
"unstable": {
"version": [
- 20210412,
- 1147
+ 20211103,
+ 236
],
"deps": [
"helm",
"posframe"
],
- "commit": "2412e5b3c584c7683982a7e9cfa10a67427f2567",
- "sha256": "0k4lmgvrxm4lswafc3fb8aab3ax0gnkkq64vg3vmiry85kih2cqb"
+ "commit": "87461b52b6f3f378c63642a33f584d4a4ba28351",
+ "sha256": "1hmf1l6hmir0kvpl5h0wk4l17nmk0lfi659lvg89jc1sm18v2xv9"
}
},
{
@@ -50818,8 +50958,8 @@
"helm",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -51637,14 +51777,14 @@
"repo": "brotzeit/helm-xref",
"unstable": {
"version": [
- 20211013,
- 1538
+ 20211017,
+ 1334
],
"deps": [
"helm"
],
- "commit": "9764eabd50c40b009073c7ef64e3a71d0d066d0b",
- "sha256": "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"
+ "commit": "ea0e4ed8a9baf236e4085cbc7178241f109a53fa",
+ "sha256": "1xbz6idr1fnqkqh0fsn9bhwavng6b2s4idc2l302s2vziygcm42d"
},
"stable": {
"version": [
@@ -51777,8 +51917,8 @@
"repo": "Wilfred/helpful",
"unstable": {
"version": [
- 20210319,
- 802
+ 20211021,
+ 625
],
"deps": [
"dash",
@@ -51786,8 +51926,8 @@
"f",
"s"
],
- "commit": "7e4b1f0d5572a4e2b8ee7a9b084ef863d0315a73",
- "sha256": "0qrz3klqs94aj6bxh49qymf9fvpa73xpp6djkxwpypgb2wv8hk6n"
+ "commit": "8df39c15d290cd499ef261de868191d3fc84f75a",
+ "sha256": "0wnbzwlsbigxc9bncy8lf8i5kcjg7qrb6l93k0fsyj8y0qibaja3"
},
"stable": {
"version": [
@@ -52716,11 +52856,11 @@
"repo": "ideasman42/emacs-hl-block-mode",
"unstable": {
"version": [
- 20211007,
- 309
+ 20211029,
+ 602
],
- "commit": "2c6a47cc37b0dfcd8489e4fe36c379f0a47d451d",
- "sha256": "15jxlzbxkpyfd6mr7jhs6vfxizdwsr5bi2g6xplndndmwdqq8x49"
+ "commit": "0593a1a77db28503025d5c1850e6a99551c3bcbd",
+ "sha256": "1rkxm6ak1zaqzp6q6mqpng0k4qjnsshkwydfxfm63xfsgr4vwhwv"
}
},
{
@@ -52767,11 +52907,11 @@
"repo": "ideasman42/emacs-hl-prog-extra",
"unstable": {
"version": [
- 20211006,
- 1402
+ 20211025,
+ 2138
],
- "commit": "e8be12a44ee659d73cf934530adc58ab9a48e9dd",
- "sha256": "10bs34jjnza2lf8q32dki54wpyyy815k5a35n2r76xnimayrcy5p"
+ "commit": "121f24c12c6711f65157259d90cbe88a53c10336",
+ "sha256": "0mwhqhf84kf76wrqz6l9rp4majfl7dnxs1dg49qls32lv44ihs2x"
}
},
{
@@ -52904,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"
}
},
{
@@ -52931,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",
@@ -52984,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"
}
},
{
@@ -53683,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": [
@@ -54760,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": [
@@ -55627,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": [
@@ -56078,11 +56187,11 @@
"repo": "ideasman42/emacs-inkpot-theme",
"unstable": {
"version": [
- 20211007,
- 357
+ 20211101,
+ 558
],
- "commit": "d82680ab7a7531a1c9369e65f2714285e43c6688",
- "sha256": "0n1vh8rpn9zkwpnwm03rmz6xmcqicj9wzc0q6jbfg1ndc6yz29rw"
+ "commit": "1ca71416869e7515a9c2587b35f21a11921686f3",
+ "sha256": "0pl2hpcy9165np17gwa9qhqxb43kwm0z746pxcga7rfg6apy6krc"
}
},
{
@@ -56971,8 +57080,8 @@
"cl-lib",
"ivy"
],
- "commit": "bb47f355b0da8518aa3fb516019120c14c8747c9",
- "sha256": "10y6k1jch43jykd8g8xi10k8wq98x2w2xap64smrhxvgp53y2765"
+ "commit": "aa775340ba691d2322948bfdc6a88158568a1399",
+ "sha256": "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"
},
"stable": {
"version": [
@@ -57111,8 +57220,8 @@
"repo": "s-kostyaev/ivy-erlang-complete",
"unstable": {
"version": [
- 20211007,
- 645
+ 20211019,
+ 447
],
"deps": [
"async",
@@ -57120,8 +57229,8 @@
"erlang",
"ivy"
],
- "commit": "15100dc730a011433eb86155b1d8373d1e023033",
- "sha256": "1s75jgj7rqp1pjbkgyaf8wrpi1z5sb7w7xpjh03k419pja3fpxgm"
+ "commit": "6913f6ef7c942a5a2c42bc17635d09c91353e7ca",
+ "sha256": "0i06332ycky68ccnyay4c277nl227r0hvbrflswbj4g1rybfdd3q"
},
"stable": {
"version": [
@@ -57475,15 +57584,15 @@
"repo": "tumashu/ivy-posframe",
"unstable": {
"version": [
- 20210922,
- 24
+ 20211103,
+ 233
],
"deps": [
"ivy",
"posframe"
],
- "commit": "b4a522b7f81d49e7664f90a4f9ff1c2def08a3a9",
- "sha256": "05rd1kylq0114mnw0rfj2k15pir9shgy19n1ih86i85h718z2z80"
+ "commit": "5d9420252ca855d6d206f1f8ef5993a6be3c618f",
+ "sha256": "1yan9h12208dalzgpffqxnzv8b0hwzhzna01gnzb9wmkcfi3fpmh"
},
"stable": {
"version": [
@@ -57514,8 +57623,8 @@
"ivy",
"prescient"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -57606,8 +57715,8 @@
"ivy",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -57922,8 +58031,8 @@
20210908,
2121
],
- "commit": "111460b056838854e470a6383041a99f843b93ee",
- "sha256": "1v6j0658dch5v0ddkkgw99194jlh28p5cjvkcp6cabwjb7s4pvim"
+ "commit": "1ad7c51f3c6a6ae64550d9510c5e4e8470014375",
+ "sha256": "1n26jlvf0z7h5yq3w2pzznj43g5xknq1icg68pc0ysqdfm4nq51m"
},
"stable": {
"version": [
@@ -58655,11 +58764,11 @@
"repo": "Michael-Allan/Java_Mode_Tamed",
"unstable": {
"version": [
- 20210512,
- 2301
+ 20211027,
+ 1852
],
- "commit": "c5cc024a06684b91da9bb05fecf681426596af5e",
- "sha256": "1qkkqqq4r5j10s4q17r2r4ryim0gpknr5h512jj9yk52a77q1g7d"
+ "commit": "647cae28087529d18367f895d7ef689c7f64c6bd",
+ "sha256": "086h53mmdjx30093zazwylx3fg7jvbcjy63q4ph63ybizsbiy5lg"
}
},
{
@@ -59031,8 +59140,8 @@
"deps": [
"cl-lib"
],
- "commit": "e6a9059fc823a17496e1a5114652d92a9071a78f",
- "sha256": "16i0i0dz6yk24ny66irlfh9xjllp7a78ccx95mrlpqcxsjkcqv62"
+ "commit": "a059c4105b374ce037b4cc0c942f9aed96508021",
+ "sha256": "0cghwxk43jzajb5f5l4904bl2p95bdcld2qc25r08a5d34jidvl1"
},
"stable": {
"version": [
@@ -59473,11 +59582,11 @@
"repo": "JuliaEditorSupport/julia-emacs",
"unstable": {
"version": [
- 20210904,
- 908
+ 20211023,
+ 1434
],
- "commit": "06f6fdb94cdd88db7bb40b8f511a386605711408",
- "sha256": "0153zh3vl6qmaw40v0b2kf81x6wfyxwgmc9iwvz4rximra9xxmyg"
+ "commit": "47f43f7d839019cac3ba6559d93b29487ca118cb",
+ "sha256": "0gfm6xnijxxgc1fjqgbsvzf9m68pfcbdhrii6c7a29v5cw6khkaj"
},
"stable": {
"version": [
@@ -59544,8 +59653,8 @@
"repo": "gcv/julia-snail",
"unstable": {
"version": [
- 20210818,
- 310
+ 20211103,
+ 449
],
"deps": [
"dash",
@@ -59554,8 +59663,8 @@
"spinner",
"vterm"
],
- "commit": "5b95b278772de8339ac198fe6eaadb0427d680fb",
- "sha256": "11spibld7dyggr38hzkrd05lmdf847d57cc9qyk01mb3bli21vxd"
+ "commit": "74aa827032e34f1d4202831008bcfa3c29b9f0c8",
+ "sha256": "03rmj7pj91bhg1kzqha9l5glnxgrjqmbsmblamrka4k22r09pcn6"
},
"stable": {
"version": [
@@ -59744,8 +59853,8 @@
"websocket",
"zmq"
],
- "commit": "1f0612eb936d36abab0f27b09cca691e81fc6e74",
- "sha256": "1mpch20iahijlgwg8bjpjg7bm9hd2wyskqbknafw8jkwyj7dvng2"
+ "commit": "20e68a683632d4772780199216932223fa404aa7",
+ "sha256": "1ivq67cbkvb675sllrs1184a32agvh3c2i950vf017jjf1hab05k"
},
"stable": {
"version": [
@@ -60151,15 +60260,15 @@
"repo": "ogdenwebb/emacs-kaolin-themes",
"unstable": {
"version": [
- 20211014,
- 318
+ 20211023,
+ 1347
],
"deps": [
"autothemer",
"cl-lib"
],
- "commit": "fd6f154ac96309ff56220c595f80e9126ec566c6",
- "sha256": "1a8fy48xg4bbz3qf9dxvxh8xhvig5w8wkdvy9prn5fd456bn58hj"
+ "commit": "ea6394619219b6d54b843836e3a6b2e7d8aaecec",
+ "sha256": "1awgh70g7k7bjjga8kd6rfd8k3fqzkswgxyf4qgrsjci80is8jcn"
},
"stable": {
"version": [
@@ -60247,11 +60356,11 @@
"repo": "delaanthonio/kconfig-mode",
"unstable": {
"version": [
- 20210321,
- 1106
+ 20211018,
+ 2142
],
- "commit": "7d03fa239e6879854c3b26c8e750489eceb58503",
- "sha256": "0j07h1g8xcs6lq6gyi594zb353x9igi9k9iz8nci8gy79l3n7l3m"
+ "commit": "241436a507782d18f09dab7d1f373ddea60fad3d",
+ "sha256": "0ayizg9ih98yn9127737i0g9q8f484v0fc9qwda0al3r69iqxpxq"
}
},
{
@@ -60277,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"
}
},
{
@@ -60301,14 +60410,11 @@
"repo": "conao3/keg.el",
"unstable": {
"version": [
- 20211008,
- 1702
- ],
- "deps": [
- "cl-lib"
+ 20211104,
+ 617
],
- "commit": "3436d0634080f6bcbcde68dc804e6128f632a4f8",
- "sha256": "1afa33hga4c00p086q15cahjmd2hhmnmiqa55qpadx3nvyy2rqhi"
+ "commit": "bf2457d128dca207b3fb00a2660eb662327f877b",
+ "sha256": "0yc24n8mvppxni3hbfwk1p5spxqswax90l2v0gwc9wf20djmkdfq"
}
},
{
@@ -60322,8 +60428,8 @@
20200601,
333
],
- "commit": "3436d0634080f6bcbcde68dc804e6128f632a4f8",
- "sha256": "1afa33hga4c00p086q15cahjmd2hhmnmiqa55qpadx3nvyy2rqhi"
+ "commit": "bf2457d128dca207b3fb00a2660eb662327f877b",
+ "sha256": "0yc24n8mvppxni3hbfwk1p5spxqswax90l2v0gwc9wf20djmkdfq"
}
},
{
@@ -60590,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": [
@@ -60728,8 +60834,8 @@
20210523,
403
],
- "commit": "c49bb51287f953ccc62e4f1afc12ca9bfeaa416c",
- "sha256": "0xxgym0il50piqyyyywjma8ks328pzy0g743rnxkvsikinwzg6ly"
+ "commit": "584395339f85a95ffe3ade3f4e30898bad495ecd",
+ "sha256": "0vqi7cq8952idymp9hm89v0pin5icj7ng2wxdsysqsy2crfyd5zm"
},
"stable": {
"version": [
@@ -60984,8 +61090,8 @@
20210318,
2106
],
- "commit": "6430e1356248313f5cdd3a96c8861b17b12c0be7",
- "sha256": "01rzf8v9psihzpg0s5ar2svkxccmb32ypwsms3863c67ag9d9818"
+ "commit": "e8725996ac8cc8d533ba91f1e8325b74928d0b7d",
+ "sha256": "0px17zsy1dawgkm5zjbkg8j4zbsgiswkfcwrg1dxp0bf1b3my1j6"
},
"stable": {
"version": [
@@ -61350,8 +61456,8 @@
"repo": "kubernetes-el/kubernetes-el",
"unstable": {
"version": [
- 20210914,
- 1158
+ 20211031,
+ 133
],
"deps": [
"dash",
@@ -61360,8 +61466,8 @@
"transient",
"with-editor"
],
- "commit": "7cb6e4f2d571d45c49dba2427f7e65a9e0a994f2",
- "sha256": "1h9daqmskb9cv0s1w3rbv4p5sg5pmym0pkwz922hy72kvm593fyg"
+ "commit": "cfe2aff207d22af0be08835302a74bc52a30f69a",
+ "sha256": "1jfg73vam49rg4kw88mvh4arlf02w8vsgyxnqwr4f3112x3m1r76"
},
"stable": {
"version": [
@@ -61395,8 +61501,8 @@
"evil",
"kubernetes"
],
- "commit": "7cb6e4f2d571d45c49dba2427f7e65a9e0a994f2",
- "sha256": "1h9daqmskb9cv0s1w3rbv4p5sg5pmym0pkwz922hy72kvm593fyg"
+ "commit": "cfe2aff207d22af0be08835302a74bc52a30f69a",
+ "sha256": "1jfg73vam49rg4kw88mvh4arlf02w8vsgyxnqwr4f3112x3m1r76"
},
"stable": {
"version": [
@@ -61546,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": [
@@ -61671,16 +61777,16 @@
"repo": "Deducteam/lambdapi",
"unstable": {
"version": [
- 20211008,
- 1231
+ 20211029,
+ 1658
],
"deps": [
"eglot",
"highlight",
"math-symbol-lists"
],
- "commit": "933a1b37b86685bb1f2df2a2185741b0d21aaa78",
- "sha256": "0mxsqf78y4chm4yyxbfz69p56m3n35c5sv4agdwg6griaf0s5f59"
+ "commit": "6b453ab1f1fd0c48bb18ce077009e038c649cf04",
+ "sha256": "13bprd1vg4adr61hbcbih3p2yghlx4ygw5zi0vgcfr2r4lbpnn6k"
}
},
{
@@ -61865,8 +61971,8 @@
"repo": "mihaiolteanu/lastfm.el",
"unstable": {
"version": [
- 20201212,
- 836
+ 20211018,
+ 838
],
"deps": [
"anaphora",
@@ -61875,8 +61981,8 @@
"request",
"s"
],
- "commit": "276c30a16518e545c95b7d693bada3ec01ddd207",
- "sha256": "1n58f9g5xgicmm9j3bdik1cpqcfs0pjrxqwnb1sfrck9c00482fk"
+ "commit": "b4b19f0aadc5087febeeb3f59944a89c4cdcf325",
+ "sha256": "0yp6gzxs6hxfqhdwhp5vldjsxl1y6qvj4i3s5fdvcf0sjdjncvxw"
},
"stable": {
"version": [
@@ -62187,11 +62293,11 @@
"repo": "conao3/leaf.el",
"unstable": {
"version": [
- 20210611,
- 1550
+ 20211030,
+ 621
],
- "commit": "0ccc52bb85592d09499a09768a61ecfeccbfdf1e",
- "sha256": "0nwma6cvvlfyjxkrzi724brkx5s6k64n994nbwp7zaz6rqs1xmfd"
+ "commit": "61365188be30c34c0e8b6f2004488e60a83dfcd6",
+ "sha256": "1fps4pmwhciksk21b9w7y6y827panf8xr80rk14fjsf2j2bpv841"
},
"stable": {
"version": [
@@ -62775,8 +62881,8 @@
20210603,
1241
],
- "commit": "f39ec6a9b93f09e1a49ee84405d1e03e04adc7cf",
- "sha256": "0ri06q30z699amw7a94a14ccf83zx547przviqw0wla3l2xaw26j"
+ "commit": "3d2483d6a46552eaa832f8e6df5dc1162e58fc79",
+ "sha256": "1vpif0g45xh16sqqsjh9hin61kzc2la79pmrxl3rmw2jvpg6pzym"
},
"stable": {
"version": [
@@ -63041,17 +63147,17 @@
20211011,
954
],
- "commit": "972179180b6a09791737b1af75a6f653a7146047",
- "sha256": "180z2clv90zwg9dkzbzs2wmiydz5z4hwmry93qp9ywn9qg1iaqfk"
+ "commit": "faad1b26fd53121bd65e938ad4a4e78281712bde",
+ "sha256": "0bm2hxk2fhr11q2v45issa268snz0mxjhyc3ik2w8kg12faz936g"
},
"stable": {
"version": [
0,
- 27,
+ 28,
0
],
- "commit": "d5d3a30e724a4ba2d5a96b51180e1fd907e57d32",
- "sha256": "180z2clv90zwg9dkzbzs2wmiydz5z4hwmry93qp9ywn9qg1iaqfk"
+ "commit": "16fee65109043bc5d899c5f34dd10354bd087615",
+ "sha256": "0bm2hxk2fhr11q2v45issa268snz0mxjhyc3ik2w8kg12faz936g"
}
},
{
@@ -63062,16 +63168,16 @@
"repo": "emacs-vs/line-reminder",
"unstable": {
"version": [
- 20211015,
- 511
+ 20211025,
+ 1745
],
"deps": [
"fringe-helper",
"ht",
"indicators"
],
- "commit": "c78bbb33c1f120da517ccd11f0681321bca17647",
- "sha256": "114afr2b41yk60s4r1068nambkhj19k6pn6dn2v94i4gbq8p37bb"
+ "commit": "593bbe1277651e1281807f84e46a4e9a75ced784",
+ "sha256": "1r8dkbca9abjs5g949hqkn54ggd2wmgl60h10jx8y9s6c07g14hq"
},
"stable": {
"version": [
@@ -63431,8 +63537,8 @@
"repo": "abo-abo/lispy",
"unstable": {
"version": [
- 20211014,
- 1136
+ 20211020,
+ 907
],
"deps": [
"ace-window",
@@ -63441,8 +63547,8 @@
"iedit",
"zoutline"
],
- "commit": "8ddcf0c8f69e2a669f197c50a701dc6aea74d7c5",
- "sha256": "1z9z8225bb5ih9bf2d0nzwl6258wk327dky91z247jddv5mzj4m5"
+ "commit": "bf315768020f98f6139d5f722bd365f1ddd1fb52",
+ "sha256": "1sd3czlvvpsfq44ppk8jrv53d7irnk1c8nxvjjlyjbxpxj6zk5zh"
},
"stable": {
"version": [
@@ -63588,11 +63694,11 @@
"repo": "publicimageltd/lister",
"unstable": {
"version": [
- 20211003,
- 1433
+ 20211028,
+ 1659
],
- "commit": "40e2966389b42bf0d6af51eaa88ddbd3e80ca72b",
- "sha256": "05iv1jfdmlgbgyvggmnwfcj4b36fv13krjnghhlmqaicg950zdnc"
+ "commit": "22df7ad4a7cccd5e5861a37127263317ef6bea2a",
+ "sha256": "07im7gnrn8n8hsaf7zyfj7h1r5ig0bw7p0g26sicgwgbhfnz22y9"
},
"stable": {
"version": [
@@ -63732,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"
}
},
{
@@ -63876,11 +63982,11 @@
"repo": "donkirkby/live-py-plugin",
"unstable": {
"version": [
- 20210701,
- 1955
+ 20211102,
+ 152
],
- "commit": "a1a02199a73e0d4edf50f977203eb40a1797e366",
- "sha256": "0k2ya743k6ghkxnx0pyb3brsrbx8a31il62bj01ax4p17gq1w902"
+ "commit": "bd933c7351751eecc0f988166e983a9e478531be",
+ "sha256": "1apdjil570i9kjl4hm952cp5rjh68vhi23a1mq1d0vna4sc6pzl1"
},
"stable": {
"version": [
@@ -64175,11 +64281,11 @@
"repo": "aki2o/log4e",
"unstable": {
"version": [
- 20200420,
- 745
+ 20211019,
+ 948
],
- "commit": "7df0c1ff4656f8f993b87064b1567618eadb5546",
- "sha256": "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"
+ "commit": "737d275eac28dbdfb0b26d28e99da148bfce9d16",
+ "sha256": "1yagzwai4l9cf8am6a3fixv7n6yv81vx2yc4lcwdavclk81ghfrz"
},
"stable": {
"version": [
@@ -64510,15 +64616,15 @@
"repo": "okamsn/loopy",
"unstable": {
"version": [
- 20211002,
- 1826
+ 20211101,
+ 2351
],
"deps": [
"map",
"seq"
],
- "commit": "463079c46bafc81535b1d69016d38cb34a19f352",
- "sha256": "05km5xhrc1d35264ba2zpc8qsn3vp1vn4pp3jjwh1wcwd0h1zs3b"
+ "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
+ "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
},
"stable": {
"version": [
@@ -64542,15 +64648,15 @@
"repo": "okamsn/loopy",
"unstable": {
"version": [
- 20210906,
- 1539
+ 20211020,
+ 157
],
"deps": [
"dash",
"loopy"
],
- "commit": "463079c46bafc81535b1d69016d38cb34a19f352",
- "sha256": "05km5xhrc1d35264ba2zpc8qsn3vp1vn4pp3jjwh1wcwd0h1zs3b"
+ "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
+ "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
},
"stable": {
"version": [
@@ -64829,8 +64935,8 @@
"repo": "emacs-lsp/lsp-java",
"unstable": {
"version": [
- 20210928,
- 1353
+ 20211017,
+ 1826
],
"deps": [
"dap-mode",
@@ -64842,8 +64948,8 @@
"request",
"treemacs"
],
- "commit": "b3f2081158284c77665a0dd5e9f815535ff080b3",
- "sha256": "0p3sydid77zbrqmkm1l9igbhbzyp9q4229dqgly8dbsgkmyfrl3h"
+ "commit": "2b789750b272c85e838b9fc4e3d4f1d2eff34b5b",
+ "sha256": "1sqv15mbv9f6pw995jrmw3wqr16pkrkm83vgabc0wi7j3dkz1cx7"
},
"stable": {
"version": [
@@ -64984,16 +65090,16 @@
"repo": "emacs-languagetool/lsp-ltex",
"unstable": {
"version": [
- 20210924,
- 1003
+ 20211024,
+ 809
],
"deps": [
"f",
"lsp-mode",
"s"
],
- "commit": "16ba29ed600314e28b18eb1b3dd47d84035d5403",
- "sha256": "132bnkgwayx91v33ic7rw9j59l24i6ndg6s65f2fvhy27vm6qcmj"
+ "commit": "f600d5f1d65c6209fa73a7bb916f6de2b60e5fc5",
+ "sha256": "1ss0b2rk22i58sl430844vi119maz9rd0j1zv9wkcn81k6wmrdlq"
},
"stable": {
"version": [
@@ -65062,8 +65168,8 @@
"repo": "emacs-lsp/lsp-mode",
"unstable": {
"version": [
- 20211013,
- 1655
+ 20211103,
+ 1331
],
"deps": [
"dash",
@@ -65073,8 +65179,8 @@
"markdown-mode",
"spinner"
],
- "commit": "b5d9b3b2c8638e223ba1524c76c16d0f616d73ce",
- "sha256": "07ngkr86zgpi7xp1h9nx68gwpfvk5ffdk69m0mb4xn2zkjpd2d58"
+ "commit": "293a43819a96eb94b90bc14b6cb11ebfd090e8c8",
+ "sha256": "0rd3nh9wslp753cm5xypp9h8x2p7a5s7v6gkdqfs80fzdiy8ny3m"
},
"stable": {
"version": [
@@ -65124,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": [
@@ -65221,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"
}
},
{
@@ -65408,16 +65514,16 @@
"repo": "emacs-lsp/lsp-ui",
"unstable": {
"version": [
- 20211009,
- 1545
+ 20211101,
+ 131
],
"deps": [
"dash",
"lsp-mode",
"markdown-mode"
],
- "commit": "d08c5528ba0a63433a466c2fa1265ec3250fcef1",
- "sha256": "0p12arjl03y2ax8b6g36ppnb1qqkkc2pvv415wsgxydqias775mq"
+ "commit": "dd4c181a22d19a28236c442cf6c9cd4bbd6d85f8",
+ "sha256": "1awvnv29ca3whfg48icwqhgdfijrags61cmq9dn6mn0w849b6k4m"
},
"stable": {
"version": [
@@ -65928,8 +66034,8 @@
"repo": "magit/magit",
"unstable": {
"version": [
- 20211011,
- 1635
+ 20211101,
+ 1824
],
"deps": [
"dash",
@@ -65938,8 +66044,8 @@
"transient",
"with-editor"
],
- "commit": "348d9b98614c824be3e2f05eef5ab91d67f6695e",
- "sha256": "0rrrm202lxmdxld2nlp7ap89h2m1qkl1rpks8hzq2b9bzbniln95"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
@@ -66010,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",
@@ -66286,8 +66410,8 @@
"libgit",
"magit"
],
- "commit": "348d9b98614c824be3e2f05eef5ab91d67f6695e",
- "sha256": "0rrrm202lxmdxld2nlp7ap89h2m1qkl1rpks8hzq2b9bzbniln95"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
@@ -66448,14 +66572,14 @@
"repo": "magit/magit",
"unstable": {
"version": [
- 20211012,
- 1845
+ 20211019,
+ 2114
],
"deps": [
"dash"
],
- "commit": "348d9b98614c824be3e2f05eef5ab91d67f6695e",
- "sha256": "0rrrm202lxmdxld2nlp7ap89h2m1qkl1rpks8hzq2b9bzbniln95"
+ "commit": "2bd1d823ddebb0cfef31a3338916aaef9ae01660",
+ "sha256": "1d3hhsb7r7ch3q6azchvpjf885mfnqx6xg5wl3iqbyhhr0i8q7vj"
},
"stable": {
"version": [
@@ -66707,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"
}
},
{
@@ -67250,11 +67374,11 @@
"repo": "minad/marginalia",
"unstable": {
"version": [
- 20211012,
- 1606
+ 20211028,
+ 1244
],
- "commit": "9cd762b6c3f2714375f47993e9a6384d3bc16ebf",
- "sha256": "05w8c4rlbdbiwpwirkpnkixifjki6rfgcz8myh0i4kyb1ayfrq2c"
+ "commit": "09d8ab38a5a4aa55a83968dc3e454d11fee05255",
+ "sha256": "140hbxyb7z09vp0f0h5fad4jiyfz4s34nnhgrw3vpm1whspq7ng8"
},
"stable": {
"version": [
@@ -67370,11 +67494,11 @@
"repo": "jrblevin/markdown-mode",
"unstable": {
"version": [
- 20210904,
- 733
+ 20211022,
+ 55
],
- "commit": "862ae8addd29bf6affca1a35fd0176cb0c1392da",
- "sha256": "0dd0p04ip5wac7vcimlsm33l5nwswyf6riq2wzp3j5ppkr57x1s4"
+ "commit": "c3c2f0d473a3f8ca8c4ffb2ecc094d5c3541769f",
+ "sha256": "1pmkpddvs589v9b6sgpfq5mzsli4ifczwvw4396qimx1dh86sb1c"
},
"stable": {
"version": [
@@ -67733,10 +67857,10 @@
"unstable": {
"version": [
20200131,
- 2333
+ 2338
],
- "commit": "1cf7e2885f3352f55852ee9eba26c7cb5a7cd74b",
- "sha256": "0c2fs87vsxx00svzx09x90p8sc1zm4mj24ab0bvqf7ghpl5qgwa8"
+ "commit": "590d9f09f8ad9aab747b97f077396a2035dcf50f",
+ "sha256": "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"
},
"stable": {
"version": [
@@ -67885,20 +68009,20 @@
"repo": "dochang/mb-url",
"unstable": {
"version": [
- 20211013,
- 611
+ 20211029,
+ 2220
],
- "commit": "f6b608db585231eee231d5473edcf4183bb678fe",
- "sha256": "1rrg7skg1ifh6bnplxdcp1wryqgwf3aspcvdrrh8k6wd1z7zgdai"
+ "commit": "670d31edc0938c49c77d80543c6b2a955edadf85",
+ "sha256": "0sdiwgkhqnxq3pva9cyvcjyc69qvpxc91785p1z3rgvb9z3bshjj"
},
"stable": {
"version": [
0,
- 7,
+ 8,
0
],
- "commit": "f6b608db585231eee231d5473edcf4183bb678fe",
- "sha256": "1rrg7skg1ifh6bnplxdcp1wryqgwf3aspcvdrrh8k6wd1z7zgdai"
+ "commit": "670d31edc0938c49c77d80543c6b2a955edadf85",
+ "sha256": "0sdiwgkhqnxq3pva9cyvcjyc69qvpxc91785p1z3rgvb9z3bshjj"
}
},
{
@@ -68031,10 +68155,11 @@
"repo": "ahungry/md4rd",
"unstable": {
"version": [
- 20201203,
- 545
+ 20211015,
+ 2123
],
"deps": [
+ "cl-extra",
"cl-lib",
"dash",
"hierarchy",
@@ -68042,8 +68167,8 @@
"s",
"tree-mode"
],
- "commit": "8ed075874425c4aa1081608dd66f46e5dfa333c0",
- "sha256": "0p7qadaa856fskbn7j6w0wqbr2ay4sz0y7i7x8wqn4rpjqk0nzyg"
+ "commit": "fc5fbf6c966dcee1075ef359638eb23003417f30",
+ "sha256": "19ay7n5ds8622qs799icdcmkyhfcqfxd2myffzswsrhvkm9afr8r"
},
"stable": {
"version": [
@@ -68129,11 +68254,11 @@
"repo": "techquila/melancholy-theme",
"unstable": {
"version": [
- 20201129,
- 2137
+ 20211018,
+ 1911
],
- "commit": "8756bb394bcaceb813fc1d315271338224e88295",
- "sha256": "1pn50h2rzkvd7vqh2hzws3772nagj9hrynm6b4q35rzyiq4vb889"
+ "commit": "0401c849203f8f497c8a93c1700451de7ff0675a",
+ "sha256": "0l4xdnhw630klg2yhz7zrh8qscna8fa8cahayyykc7m257blvpiz"
}
},
{
@@ -68249,8 +68374,8 @@
"repo": "skangas/mentor",
"unstable": {
"version": [
- 20201121,
- 1649
+ 20211023,
+ 431
],
"deps": [
"async",
@@ -68258,8 +68383,8 @@
"seq",
"xml-rpc"
],
- "commit": "aa1eb8a8e7d8c5e5564b08f82130eed0943826bb",
- "sha256": "122y2c2dwyz9az0a46dx2dgk70arz6sz1545iv61bs3ibk08szf2"
+ "commit": "b68c47b3d898a441da2278e2e0636197397d755e",
+ "sha256": "0yrfnzj1havjzvlr6s6mamrr875fniafb2wwck76yggfyhdvmxxv"
},
"stable": {
"version": [
@@ -68279,22 +68404,22 @@
},
{
"ename": "meow",
- "commit": "b5515ad6f1b8e8296fba5bd91d7adf5e1fc229b4",
- "sha256": "1s9wqmxg1g8crhsvwn4fh3hkn7pyfj5x71fal9yl0fk6gx59n1p0",
+ "commit": "b8889177ceea64f983841674e4e1486613ad726a",
+ "sha256": "1svhjqx745r9h1di89cvjikhyvf4ipcgfi2k08pchs8ywi84ldq0",
"fetcher": "github",
- "repo": "DogLooksGood/meow",
+ "repo": "meow-edit/meow",
"unstable": {
"version": [
- 20210908,
- 1532
+ 20211104,
+ 807
],
"deps": [
"cl-lib",
"dash",
"s"
],
- "commit": "3e58697695327d1ecf2a210af645e8f2db845c32",
- "sha256": "0fl9fc7sibivna92ddnh6vv271qykkn9bw97nak1cnn9isi5hvn6"
+ "commit": "95a9df3e469355cb867724d1dd1139ec4e21540d",
+ "sha256": "0s231294mgf951y5swqr3hrh1q48ip5p8w4vvj3kqjsq15n0lw3s"
}
},
{
@@ -68308,8 +68433,8 @@
20210720,
950
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68338,8 +68463,8 @@
"auto-complete",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68372,8 +68497,8 @@
"company",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68435,8 +68560,8 @@
"iedit",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "27600243558e2596a6bbdc52540389c298488adb",
+ "sha256": "0fn66n8ln0xc4l25l48yshzrmyy7sf7ik9nqpfhhpzslcf249h39"
},
"stable": {
"version": [
@@ -68688,14 +68813,14 @@
"repo": "ianxm/emacs-tracker",
"unstable": {
"version": [
- 20210207,
- 1100
+ 20211026,
+ 1347
],
"deps": [
"seq"
],
- "commit": "e0ddd7a17da899fa85b1d49f1260042f8caa0612",
- "sha256": "0k9lk2z8rnc2pa4wb2afj9byfryqlnw5hg1vs3bx6f0hs8rwa8yh"
+ "commit": "115f6de4a01b9e10936b7e6d1fdadd3770bae391",
+ "sha256": "11jdk260j9axi4f852vzgzqfb0kpl3hry02wfbhba3qp5bff2j7m"
}
},
{
@@ -68759,8 +68884,8 @@
"repo": "danielsz/meyvn-el",
"unstable": {
"version": [
- 20210927,
- 2356
+ 20211025,
+ 106
],
"deps": [
"cider",
@@ -68770,8 +68895,8 @@
"projectile",
"s"
],
- "commit": "8573bd3d2a755cf1ac055036ecf5553f9bdb7444",
- "sha256": "19bi5fplp8vg6c81dk2fhw345qh4ydw8gjjqcbhli18a29q2yrbm"
+ "commit": "80ece19a6ce6fd3dac374911edb9734286978450",
+ "sha256": "0qqr88r1g3lwzl4m9qjiwba23ylp44g5hspawwfzchlbs9js6yj7"
},
"stable": {
"version": [
@@ -68793,8 +68918,8 @@
20210131,
2152
],
- "commit": "e9791ff92c27bc7df18f238a29f05fc164da2f51",
- "sha256": "1j7ni3qjcy0fikzhhm4xwwwskdm6qnb1c1kshh8xrd9c06kmfrv7"
+ "commit": "5927a54208996cbb7b435fe89bb65ac8beb61bb6",
+ "sha256": "1dhz1yfy3gbmpf4nrys11166wzylv5vl1sg1sncwgq67r8zf729x"
},
"stable": {
"version": [
@@ -68820,8 +68945,8 @@
"deps": [
"calfw"
],
- "commit": "1cd9cbc7f8cfe40833d1af726644ae45a3d07dc0",
- "sha256": "1cm7y1nfbl8625rpk5i9zcmp9p6rzqdzxy9wcjs8yrdfsc0biq3q"
+ "commit": "67f9596dcd43b7ece3ab6e7a6ce8dc18a4851fe8",
+ "sha256": "01is2x9yfijxz0w7h7nrygkk0dkxnz0a3p3w38kvariqis8vbhl0"
},
"stable": {
"version": [
@@ -69196,11 +69321,11 @@
"repo": "tarsius/minions",
"unstable": {
"version": [
- 20210615,
- 1510
+ 20211022,
+ 2311
],
- "commit": "1be68e8571336672d6cbec86246d1bf7844976be",
- "sha256": "0lg704kwc851spp69745np8hsk0h6rl2hvfpid0j412278ds1qi8"
+ "commit": "3cc45f82cb50a4c895fe5df2ed69e07481ea131b",
+ "sha256": "0pl0lyzwb2ngqbh6kkx4kr6im19kqmnkpybss353947vl2njlbd6"
},
"stable": {
"version": [
@@ -69799,15 +69924,15 @@
"repo": "damon-kwok/modern-sh",
"unstable": {
"version": [
- 20211015,
- 335
+ 20211101,
+ 1001
],
"deps": [
"eval-in-repl",
"hydra"
],
- "commit": "e88d83958ab43e17b9763b3220e0dde862b49a83",
- "sha256": "0x2j9i3kns5w9b6bklvmf077dbc5mdim3f4l68nbl0l6kcmlb68k"
+ "commit": "8ebebe77304aa8170f7af809e7564c79d3bd45da",
+ "sha256": "00ixkd1586xv7707a1gpshml221wmnv92d3dyk1fzzxvws39zvdg"
}
},
{
@@ -69857,11 +69982,11 @@
"repo": "protesilaos/modus-themes",
"unstable": {
"version": [
- 20211015,
- 456
+ 20211104,
+ 736
],
- "commit": "5ea090b223e8a83f7f3800a96bd4ed3ac9d62230",
- "sha256": "1dw6v1sz3b8xf28ly17vsf9j5r9ylwd1p1hz26c05zf9dygiwp45"
+ "commit": "ef234d41fd2d45f32e7c40e6f334231916c9dad9",
+ "sha256": "068im2wq70rfac8l1a6542ishjay3apgx4hqga22x5bvb4kq6351"
},
"stable": {
"version": [
@@ -70204,11 +70329,11 @@
"repo": "tarsius/moody",
"unstable": {
"version": [
- 20210729,
- 1215
+ 20211031,
+ 1815
],
- "commit": "9b679400ca885b8ff51bcfd75b87f79d66c0ee26",
- "sha256": "14x3hd0z0nh0dyfi434vqywi7aawfxhlqj6sp7m17np56zq32yhi"
+ "commit": "5ce7cc070ff5a295b1cc4b15b94698447f9596ae",
+ "sha256": "0yrxdxd3iv6vmym8fwp1d1r3bliid5my3a9720pdbhd887i6m4bx"
},
"stable": {
"version": [
@@ -70492,8 +70617,8 @@
20210306,
1053
],
- "commit": "aa48b23dcf92ea1d85d8e8dbca8c0a0c37e159f8",
- "sha256": "181l8l2bihvsg3y652qhfjza5vp0irwdc6q6h1bl8zj0by66p859"
+ "commit": "5e7fdb7551b1928d09eaf2114f19601458bc6c31",
+ "sha256": "1jab8w5mbh4x0kc8sfidd29609d2m9m06mv03fh4q6wip4rfkl24"
},
"stable": {
"version": [
@@ -70966,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"
}
},
{
@@ -71052,11 +71177,11 @@
"repo": "wavexx/mu4e-query-fragments.el",
"unstable": {
"version": [
- 20200913,
- 1558
+ 20211030,
+ 2307
],
- "commit": "6a81d43fcbdc51c2fc47d88f4fd8f25d8f906b79",
- "sha256": "0sdjkxb7f31bsi1vj6vn2aw1lwq026sz782ys92zprncjp2mkizp"
+ "commit": "8d93ede3772353e2dbc307de03e06e37ea6a0b6c",
+ "sha256": "0pl9hiwl5snpw9cfga0v9ypw83mz4nw6754whd4f37fs9xc6df31"
}
},
{
@@ -71173,14 +71298,14 @@
"repo": "ReanGD/emacs-multi-compile",
"unstable": {
"version": [
- 20210923,
- 233
+ 20211027,
+ 1954
],
"deps": [
"dash"
],
- "commit": "03ae81739e44b70903dcdaae86a5ccaecc73eb9b",
- "sha256": "1qvlf7f1wjlai25a09fnir3gsida3zpnr8vfvv687lxvngf7r53r"
+ "commit": "3f936abeb3e910cd6221f99ced30004b41bd9ffa",
+ "sha256": "0hk0mxwza04vqxmr4c8z5l1mbwy3kmffkn7mw75k005fl9apj56x"
}
},
{
@@ -71414,14 +71539,14 @@
"repo": "zevlg/multitran.el",
"unstable": {
"version": [
- 20211008,
- 826
+ 20211027,
+ 1833
],
"deps": [
"cl-lib"
],
- "commit": "3a3f3561dba816f580cc21526d4f7a231a30bb51",
- "sha256": "1s3iavcbbbb4rf70qay4maf7fvfm8i69smyxl2771vb7dj5fjk48"
+ "commit": "910f4c929e1d9c1844ddc467f72eef2e03aa3f97",
+ "sha256": "13lmhp2vm953s4phqdd119kp7s3p0kb3kqz4z6g3ga6m6py3gq3i"
},
"stable": {
"version": [
@@ -72468,14 +72593,14 @@
"repo": "SpringHan/netease-cloud-music.el",
"unstable": {
"version": [
- 20211002,
- 1453
+ 20211030,
+ 1339
],
"deps": [
"request"
],
- "commit": "58962d7e04a8cc62f0792b15050fdc5a0c3d20c7",
- "sha256": "0kc26kvsyv2f65pjl33lc0cmjvcnnjyf6vvfpbjxy771c0a44ism"
+ "commit": "d821e0359883ae5ccc12a1cb0f684909cbde98a3",
+ "sha256": "0p595lfwzzmjzxx4mdzp47bab07ypxkk3jk3yzvd1dcf2lgd0h9k"
},
"stable": {
"version": [
@@ -72831,8 +72956,8 @@
"repo": "nim-lang/nim-mode",
"unstable": {
"version": [
- 20191219,
- 847
+ 20211102,
+ 917
],
"deps": [
"commenter",
@@ -72840,8 +72965,8 @@
"flycheck-nimsuggest",
"let-alist"
],
- "commit": "d832d6b1fb5e69fedcdddf442d62251dd0f1f489",
- "sha256": "0m0khxcnq6whhxvblqyxrz21xfnpfjg4c8dn4x4i080dhmnmbzka"
+ "commit": "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8",
+ "sha256": "0jjrjsks3q8qpipxcqdkm8pi3pjnkcxcydspbf0rkvy3x6i5mwkv"
},
"stable": {
"version": [
@@ -72984,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": [
@@ -73187,16 +73312,16 @@
"repo": "dickmao/nnhackernews",
"unstable": {
"version": [
- 20210921,
- 1131
+ 20211031,
+ 1221
],
"deps": [
"anaphora",
"dash",
"request"
],
- "commit": "4e584d4da81c400de145dbb7a58e63819cbaf340",
- "sha256": "0z5bww7cmlri2hn3fz3yad0scbsnhhddi21f50cmhdghgn1iaw41"
+ "commit": "34d82e2c2e4c190b85e751dd3f295daa264baa55",
+ "sha256": "1ivmybr94rwrdgxp5d761yy8hnhcdwmiqkhxnyk1bbbyd0a1kxj4"
}
},
{
@@ -73280,14 +73405,14 @@
"repo": "emacscollective/no-littering",
"unstable": {
"version": [
- 20210825,
- 356
+ 20211103,
+ 1646
],
"deps": [
"cl-lib"
],
- "commit": "dcc96cbf5f018a91d406926d3b69715847ef665a",
- "sha256": "1c6nq2sykbsjy30zakfpny503644bbwgb4pxhfsd4wywj5yyzw66"
+ "commit": "3a30eb7aa7db56072652c43b1b27595ff8c52a32",
+ "sha256": "0xgz2hsiy1z0vv69xkls2mbqw6361sqb8vp9ljbyrx42616ziq28"
},
"stable": {
"version": [
@@ -73600,21 +73725,20 @@
"url": "https://git.notmuchmail.org/git/notmuch",
"unstable": {
"version": [
- 20210920,
- 2339
+ 20211030,
+ 1819
],
- "commit": "0f196b5659c8a66af4357fee3d4b3a169044472d",
- "sha256": "0h068mfry2gllr8gy836a7i8zpkd6bqljnwfcm7yssfv3flrw3z3"
+ "commit": "78416a3e97fd19df5c89cdaf564c76be0edea740",
+ "sha256": "1m8x5q9q1q5lzfjjxvyqvm36wh7s0csr38hb3qidy75jg707p0py"
},
"stable": {
"version": [
0,
34,
- -1,
- 0
+ 1
],
- "commit": "0f196b5659c8a66af4357fee3d4b3a169044472d",
- "sha256": "0h068mfry2gllr8gy836a7i8zpkd6bqljnwfcm7yssfv3flrw3z3"
+ "commit": "6858c365956ba26b42721093707e5a57ca8a6b93",
+ "sha256": "1bzcnly2xhyfw35k277i8qmw2gdy35jvkriwcyv9y3g7aicbqcc7"
}
},
{
@@ -73956,8 +74080,8 @@
"org",
"org-roam"
],
- "commit": "a5508d9958c2148c04ec32d7b3a9f72423e4b0aa",
- "sha256": "1d1snvxbdv0mh48jmi6dx0yr4hmblcq1aajxb1z56714702ycdgj"
+ "commit": "9a76f16d3fdd49a1733e5f2777036f1f83068a40",
+ "sha256": "1lf56iq7iy545q8pcq4scvk8ialkw8nxc7gn97jyihpkxfhq7fi3"
},
"stable": {
"version": [
@@ -75481,8 +75605,8 @@
20210923,
1348
],
- "commit": "aa673e27f6d7cbc882ab6109cfbcca2ba0864507",
- "sha256": "0xv9hmj7girdb4c1xqlk5nj4snhvl34yaz7k28jny50frkszvfca"
+ "commit": "54f41596355394cd0ce08435c21c3cc3d1f7eda3",
+ "sha256": "15f3ix73jjw41jcvnz70lgyrm0bh3287i1rcnl5x95wk0czkmhnj"
},
"stable": {
"version": [
@@ -75592,11 +75716,11 @@
"repo": "OCamlPro/ocp-indent",
"unstable": {
"version": [
- 20190726,
- 1452
+ 20211019,
+ 907
],
- "commit": "9e26c0a2699b7076cebc04ece59fb354eb84c11c",
- "sha256": "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"
+ "commit": "7c4d434132cebc15a8213c8be9e7323692eb0a2b",
+ "sha256": "036qvsjvs1div39w4rkkivg3yicmxcjdjsmdpp64asdzk7531bqq"
},
"stable": {
"version": [
@@ -75675,26 +75799,26 @@
"repo": "oer/oer-reveal",
"unstable": {
"version": [
- 20211015,
- 1032
+ 20211029,
+ 611
],
"deps": [
"org-re-reveal"
],
- "commit": "12a795417f9ec0d06245a71de595b7aaba86c3df",
- "sha256": "1g3sjign97svlf2y0x6bnd4sv7rnqf9ak4gagk58ih7m2ipq174b"
+ "commit": "44eb766df39b722a26cabebec44bb359bcca1e49",
+ "sha256": "12mdp7pxb4nga1pp17d3kawb55kjdnjc1fg8lavyq4ydznyzn225"
},
"stable": {
"version": [
- 3,
- 25,
+ 4,
+ 0,
0
],
"deps": [
"org-re-reveal"
],
- "commit": "12a795417f9ec0d06245a71de595b7aaba86c3df",
- "sha256": "1g3sjign97svlf2y0x6bnd4sv7rnqf9ak4gagk58ih7m2ipq174b"
+ "commit": "c26ddb39288b60ba96f970fa20ef810aa4d0f418",
+ "sha256": "12mdp7pxb4nga1pp17d3kawb55kjdnjc1fg8lavyq4ydznyzn225"
}
},
{
@@ -75831,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"
}
},
{
@@ -77061,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",
@@ -77734,8 +77873,8 @@
"org-agenda-property",
"org-edna"
],
- "commit": "13f04f46ed027cd119f21377b050288a96b344cf",
- "sha256": "15my09gz094z0ihrakxa1x0zcb073s85azwmp891iv62qjhgl5x6"
+ "commit": "42e75bad36b8a9cadf7ba3cee94c66801e195120",
+ "sha256": "1j2phw903bg7wpymqyrz6yv262s5yjn9dpw6bs9yvy6d9cd3ip64"
},
"stable": {
"version": [
@@ -77817,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": [
@@ -78053,14 +78192,14 @@
"repo": "stardiviner/org-link-beautify",
"unstable": {
"version": [
- 20210913,
- 1134
+ 20211022,
+ 114
],
"deps": [
"all-the-icons"
],
- "commit": "cea63752b23c55b3a37ae56cf9938a166b056a3c",
- "sha256": "0jwf5fd7zfmg726yxvd0028ljlk8hzg5zz54lg1ycrizkvg89w09"
+ "commit": "7a9a5910cf7037c044af9b3be1b8c2f42488b1c1",
+ "sha256": "0db4p9kjz6fh0ignprkb25bshwa349ns4xzc98v21b9zcbs46wz5"
}
},
{
@@ -78308,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"
}
},
{
@@ -79026,28 +79165,62 @@
"repo": "oer/org-re-reveal",
"unstable": {
"version": [
- 20211008,
- 1310
+ 20211025,
+ 1153
],
"deps": [
"htmlize",
"org"
],
- "commit": "33d226ff707a31804ff3e6ba22416c3f0b463ad7",
- "sha256": "0hi8lq9rj6i2m14dh75dzq7lq41i4f6qj4xbp2b8krqw6mk9xg7z"
+ "commit": "ee0417aac3969ec2d776eba1ddc6434d4c61a10d",
+ "sha256": "0j7394zcbzqfk33g2xdyb3fmw3brxy8v66vvf1j9nqlskfddh7bn"
},
"stable": {
"version": [
3,
12,
- 1
+ 4
],
"deps": [
"htmlize",
"org"
],
- "commit": "33d226ff707a31804ff3e6ba22416c3f0b463ad7",
- "sha256": "0hi8lq9rj6i2m14dh75dzq7lq41i4f6qj4xbp2b8krqw6mk9xg7z"
+ "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"
}
},
{
@@ -79058,15 +79231,15 @@
"repo": "oer/org-re-reveal-ref",
"unstable": {
"version": [
- 20210104,
- 1650
+ 20211029,
+ 551
],
"deps": [
"org-re-reveal",
"org-ref"
],
- "commit": "f406e5fc1ae2b1e6f5f85b43932e71381f214e6b",
- "sha256": "08j3a503fipx45735zp94q8d41xl890ba2bf5fm4pzvrpf5k4pwy"
+ "commit": "ea9661864d5fbef87b12b78f516c13a40c683f24",
+ "sha256": "1vaszb0n5p48mrf5hzci2yyh51b32ws1fk6r4q0gky41ixz243v8"
},
"stable": {
"version": [
@@ -79168,24 +79341,22 @@
"repo": "jkitchin/org-ref",
"unstable": {
"version": [
- 20211008,
- 1334
+ 20211103,
+ 1318
],
"deps": [
+ "avy",
"bibtex-completion",
+ "citeproc",
"dash",
"f",
- "helm",
- "helm-bibtex",
"htmlize",
"hydra",
- "ivy",
- "key-chord",
- "pdf-tools",
+ "parsebib",
"s"
],
- "commit": "9556a6c9639f6b32124ec2b8059975b0538625c2",
- "sha256": "0g7ldyxy1p5r2xrw51h0h4r3kcxncvfb5c0dfaw174r0g2vw4j5d"
+ "commit": "4a465be9f8a4093a4afa22abc77a2012624f5e90",
+ "sha256": "16pnx1j1zg90yawsw29nxqq97sjigc9vmaxgc3aw18rnhardv0s3"
},
"stable": {
"version": [
@@ -79332,8 +79503,8 @@
"repo": "org-roam/org-roam",
"unstable": {
"version": [
- 20211013,
- 1624
+ 20211101,
+ 639
],
"deps": [
"dash",
@@ -79343,8 +79514,8 @@
"magit-section",
"org"
],
- "commit": "e9299297f9cc1aafda62deb8af7957dc8d56dc04",
- "sha256": "0cg8kywg8qwr3079k2863gmlpjns6s61r38pc0p4iys1ry02bgxm"
+ "commit": "3e47f198c7b6c3254944d98357e41840e5e1b102",
+ "sha256": "1bfrpljx95bqk2gwabsf80igp206nlb6d7b4dr0mlsj8rlzwv96s"
},
"stable": {
"version": [
@@ -81062,14 +81233,14 @@
"repo": "vyorkin/ormolu.el",
"unstable": {
"version": [
- 20200930,
- 1406
+ 20211020,
+ 2229
],
"deps": [
"reformatter"
],
- "commit": "c40264fb34affeedd260f5da2f7737baee90a780",
- "sha256": "1w5xia4f539agf62mlhj8c6hh2zadmncr1dby6m6j2qm3ndqfyvk"
+ "commit": "1941a8ce48027b5670d226bacc2fa10b00774b3a",
+ "sha256": "1bs6c6059g585dwsd4ldl49v38l6jlr54z9rj9qhc1a1gg6pzb3b"
}
},
{
@@ -81887,14 +82058,14 @@
"repo": "kaushalmodi/ox-hugo",
"unstable": {
"version": [
- 20210916,
- 1332
+ 20211024,
+ 1851
],
"deps": [
"org"
],
- "commit": "f0357fa7449cc8baecee588dab7dcf9ea243f3b4",
- "sha256": "0rxkdwcl75yn79sxxxprlj2594h2d8cclikqsz8m9pljmqx0wjnk"
+ "commit": "9438efc34f3837ed18da5a97bb705e945b234bff",
+ "sha256": "01zgyawwqsq4w29w8da3kff0r8qyzh5zmmpm63b6zrb71dxx5yzg"
},
"stable": {
"version": [
@@ -82247,14 +82418,14 @@
"repo": "yjwen/org-reveal",
"unstable": {
"version": [
- 20211010,
- 357
+ 20211030,
+ 838
],
"deps": [
"org"
],
- "commit": "d99311fc5be0a7f0acf2ce9ae2d012a651e1c31d",
- "sha256": "1ayqi6s4ympskn7iklk2kplnciryfr32yq3r6zm6x091vlayck69"
+ "commit": "c06c88812bb2db267366c2bb95123235e20aa5bc",
+ "sha256": "0lsxrgbpgac9hclcnrk49nhllyvjfqs0fxik9mxsf22bl1vdds1z"
}
},
{
@@ -82863,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"
}
},
{
@@ -82949,8 +83120,8 @@
20210104,
2224
],
- "commit": "3b8549cd414d4d7ee0168ab9917124133566d3db",
- "sha256": "1jdr9rl90vs78pjdnxcl2igc1ll97ryxxgbyqxzkhbivixi4v87n"
+ "commit": "28783cd6b86b3cd41e51e6b2486173e2485a76cc",
+ "sha256": "0c9971l4xz2qm6pskad9fga6rcz72lyr2jfzwjxwhqx1v7ss46bc"
},
"stable": {
"version": [
@@ -84709,14 +84880,14 @@
"repo": "nex3/perspective-el",
"unstable": {
"version": [
- 20210920,
- 345
+ 20211103,
+ 522
],
"deps": [
"cl-lib"
],
- "commit": "acad4fb2cfe27feb0ecbe07e51c364bfa5ea4f47",
- "sha256": "05mv85fn6vil8j8xizq0myd9hgy7h94cz89m6i0ia4qs2yf9c29g"
+ "commit": "54dc30840c8019f387ccdb84bbab06ca2cf8f296",
+ "sha256": "1d2jmxfb6a93d9h4m7w482f3dbhhn2s6wiynzwxjl8af1l19f5aa"
},
"stable": {
"version": [
@@ -85926,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,
@@ -86572,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": [
@@ -87206,8 +87377,8 @@
20211011,
435
],
- "commit": "6a2ddcb35432afb56f32e11518c2b6ae7795e8c0",
- "sha256": "0sv8bi34fbg0awi8maah5fs13s0wmzbvalq13z2zx9ybb8ivrsfi"
+ "commit": "1ffc269afa46a9e7a5c1e5511752e49cfcb3aad4",
+ "sha256": "1hpx2qi4ybh1fxjzkfkddj350r3rqrbjazjwas3nvqxwrs9ksqbr"
},
"stable": {
"version": [
@@ -87471,11 +87642,11 @@
"repo": "tumashu/posframe",
"unstable": {
"version": [
- 20210617,
- 42
+ 20211104,
+ 512
],
- "commit": "f97c4aff2c2c376ca62276d5597aa108546633a9",
- "sha256": "18w06fdz63w2arwgbgbl9wghb9fin4cqpxnyajppyqk5lpnsn7iq"
+ "commit": "c153c288a462e10fc468d7474f0082e6c8f5c527",
+ "sha256": "1wg1w7h0nzi2gbwyvhi93mnnzz71b415j7amnpv8migd81p6g3sa"
},
"stable": {
"version": [
@@ -87566,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": [
@@ -87754,11 +87925,11 @@
"repo": "raxod502/prescient.el",
"unstable": {
"version": [
- 20210724,
- 1756
+ 20211031,
+ 1908
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -87822,15 +87993,15 @@
"repo": "jscheid/prettier.el",
"unstable": {
"version": [
- 20210920,
- 1251
+ 20211018,
+ 955
],
"deps": [
"iter2",
"nvm"
],
- "commit": "da32141e78ae59023477d15d56b7a4fca632e5f5",
- "sha256": "01q0kj6dkqbhy8khjl04a857mb6mpw5dwrhaf81d7jj4vjbldccy"
+ "commit": "485417c0677255249e944b1174225547e4c61c00",
+ "sha256": "17jh6xccqs4z2slj6c3hhdk29nv300d4lmvrgz9cn8cxrk157vcy"
},
"stable": {
"version": [
@@ -87876,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",
@@ -88394,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",
@@ -88402,11 +88608,11 @@
"repo": "bbatsov/projectile",
"unstable": {
"version": [
- 20210930,
- 1757
+ 20211103,
+ 2050
],
- "commit": "7f64570d3e6829d767d340c8584f3e4f3472ee81",
- "sha256": "1a5a2xmnic27swm85rz44iymvym7jagwis25a3mzn9d5spsqaagy"
+ "commit": "584ff420b2c5637b05be5c4808754d6e947ab6c1",
+ "sha256": "1vw392iv4nsdifhq8bf6bsw9mc15pvz05b6wg316j0rrjibmci6p"
},
"stable": {
"version": [
@@ -88916,17 +89122,17 @@
20211013,
1726
],
- "commit": "c01cd6ec794fd91b316cb236663c81eefa1efa4e",
- "sha256": "1rqsg37dxglxddipfpph5xv6mlsh73hgy66vlirrvcs0ijiyjj8g"
+ "commit": "7ccf4d8f67878a6ceb2184df279478cb3314372b",
+ "sha256": "1fqf7vvha45dzgqcban2zd3kvf5w5nz69jlcw7ad7qg6kf97150l"
},
"stable": {
"version": [
3,
- 18,
+ 19,
1
],
- "commit": "0dab03ba7bc438d7ba3eac2b2c1eb39ed520f928",
- "sha256": "0r6bzdlyqz2qgpfk3wcvxqmchwca4x4cnizqbxhyy3ivx6xb9wp4"
+ "commit": "7c40b2df1fdf6f414c1c18c789715a9c948a0725",
+ "sha256": "1swpq2lkkgz5pwq6q3jn6xgkbaiq9dy20rvmrlghdp0fkfg2a011"
}
},
{
@@ -89786,8 +89992,8 @@
"repo": "dwcoates/pygn-mode",
"unstable": {
"version": [
- 20210922,
- 1338
+ 20211021,
+ 2325
],
"deps": [
"ivy",
@@ -89796,8 +90002,8 @@
"tree-sitter-langs",
"uci-mode"
],
- "commit": "fed7b84350aab3aba27b0fca2ee53e4094307f7b",
- "sha256": "1spkxz5ryq4gjqi37d2ci099ww2y1jzk8qv5vl1rzqnhb663hxkr"
+ "commit": "eb1da7e3eb5f5754b60d404b0e341206eebe19ca",
+ "sha256": "1nf5ihyppviwys3qay07v25f96jj5a2yr4qh1iygv2423y63q7gp"
},
"stable": {
"version": [
@@ -89822,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": [
@@ -89981,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",
@@ -89992,8 +90213,8 @@
20210411,
1931
],
- "commit": "ab775f6f4507a1f0cd9dab0fd027c2f08be06928",
- "sha256": "0js9addqxk2dchgrjnz2wdxxp7sszq95zvga8j1igihx7w83xp7f"
+ "commit": "65b552a7ce6734dc7bfe53a14342853750cc92a1",
+ "sha256": "1pshp0q3iv8jzmpyfiwb1myb1xw82hga1wnqm7x5vzdcrdmzc3ip"
},
"stable": {
"version": [
@@ -90489,11 +90710,11 @@
"repo": "ruediger/qrencode-el",
"unstable": {
"version": [
- 20211002,
- 1215
+ 20211010,
+ 1334
],
- "commit": "eb2d5bad076b17a8c431200be7357460a7d3c088",
- "sha256": "1y7xd2lr88z47s70xaxkd9zl3aqna2d87ad2ism3ywncb1sqmd24"
+ "commit": "a2c51cd1d54d507ec1902bc5c7bc888fe5a23c8d",
+ "sha256": "0zikg9gbcdzjlm6kdg71i28zxic4k22iijfvf7x4dvx5pc8pw8f6"
},
"stable": {
"version": [
@@ -90917,11 +91138,31 @@
"repo": "greghendershott/racket-mode",
"unstable": {
"version": [
- 20211015,
- 1650
+ 20211103,
+ 112
],
- "commit": "46bb0bf29f6b2fb571374e1aaf4252bf5f54281f",
- "sha256": "0hkshj2kf23pqnmwc6d1glcg7my402qqngcn4iliy89rp56xdgqs"
+ "commit": "d78c7381bd47bae8e5f9ae14681935f08206240a",
+ "sha256": "0g80y1hg7jk5291nf0yw6708lf17lwi8ka15a5y2lgrnahq8pd0g"
+ }
+ },
+ {
+ "ename": "rails-i18n",
+ "commit": "4be03fa1fece3bd2a77c1aed929ae3475ab602dd",
+ "sha256": "0jzj1l63yavwn0jxvm92hfxk1m2kyb6sf7kbn2k9v5lkq0iqpl3f",
+ "fetcher": "github",
+ "repo": "otavioschwanck/rails-i18n.el",
+ "unstable": {
+ "version": [
+ 20211026,
+ 1404
+ ],
+ "deps": [
+ "dash",
+ "projectile",
+ "yaml"
+ ],
+ "commit": "86be9e70f6fe90484f88d6c68c2f337f6ecd5651",
+ "sha256": "0z6icgg3hkn141yg7asnpdlir8nlmr4kcrddy2drclgn431pdl5l"
}
},
{
@@ -91337,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"
}
},
{
@@ -92073,11 +92314,11 @@
"repo": "ideasman42/emacs-recomplete",
"unstable": {
"version": [
- 20211006,
- 1406
+ 20211104,
+ 51
],
- "commit": "8b794d194799468443252d9a54489b5beb01eb76",
- "sha256": "0712jasmpmphdr8xxdw03dz8p99js9wdc8lrcda3n5hq3g6i1yyp"
+ "commit": "7288211d9dd5bae411cc697f7782dc3e01ac0b04",
+ "sha256": "038wzg76spaqd6a766l9vr1lx1plkhbai7srbdasr0r7a464c746"
}
},
{
@@ -92164,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"
}
},
{
@@ -92826,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",
@@ -92841,8 +93090,8 @@
"log4e",
"use-package"
],
- "commit": "0c0ac7451149dac6bfda2adfe959d1df1c273de6",
- "sha256": "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84"
+ "commit": "a77da72931914ac5f3f64dc61fe9dc3522b2817e",
+ "sha256": "1z27s6f66922jm2nwl3kqwbhdq398d2y6s1sqm2l4f8xmijv2jyq"
},
"stable": {
"version": [
@@ -93984,8 +94233,8 @@
20210313,
1541
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -94010,8 +94259,8 @@
"deps": [
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -94497,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"
}
},
{
@@ -94544,8 +94793,8 @@
"repo": "brotzeit/rustic",
"unstable": {
"version": [
- 20211014,
- 2241
+ 20211103,
+ 1558
],
"deps": [
"dash",
@@ -94553,13 +94802,34 @@
"let-alist",
"markdown-mode",
"project",
+ "rust-mode",
"s",
"seq",
"spinner",
"xterm-color"
],
- "commit": "4f25042b12a782c0acd87fc436de2a1a9140322e",
- "sha256": "1aq79dijx62y1h8g5kgdbi5xh4w6wdq47m6g5w64c0rr2igziixg"
+ "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"
}
},
{
@@ -95048,8 +95318,8 @@
20200830,
301
],
- "commit": "dd7f6c0256ccfbd1e6efa6c06b9a12ef3565c29c",
- "sha256": "0b5rkj75yxhcdbl7zy008g1n7lwivpnaz78434wb1ljn3l0s56yi"
+ "commit": "caadce26d0e6ed7039e7ba76ad05397aaa5a17f4",
+ "sha256": "02pwqgl0k7xq08rnz74xgha4w226qsds576z1kr106d3gz7mhscv"
}
},
{
@@ -95175,11 +95445,11 @@
"repo": "emacs-pe/scihub.el",
"unstable": {
"version": [
- 20201009,
+ 20211020,
420
],
- "commit": "4f8852dc675fcf3d20ae6e945f4579890ed81de5",
- "sha256": "1hgial1zp4i3m2bahy3hz5f8fkj87m1nc3xccavzgcpxrkkbksx6"
+ "commit": "d96c462e7f340f142ce3c5ffd31fa267223fd854",
+ "sha256": "0w8xlnpawkq580gc6cvxzln29x9v5g05ab7i8wwg1r5jhw9bjvgs"
}
},
{
@@ -95432,11 +95702,11 @@
"repo": "ideasman42/emacs-scroll-on-drag",
"unstable": {
"version": [
- 20211006,
- 1410
+ 20211104,
+ 259
],
- "commit": "6d62a239a9a6295c9c519827019cde8c6c3658fa",
- "sha256": "1q2hxnsd3an7v2411f86hsgl31m89aybzd7cb6d0x2s32zaqa9ql"
+ "commit": "8962f5f8a79c9178a577732ddfbb333a101bc7fc",
+ "sha256": "157affz6jsar9gnj5nj8ks8zl3dyrwzq4j1g0njvcs4vpz5zf4p9"
}
},
{
@@ -95447,11 +95717,11 @@
"repo": "ideasman42/emacs-scroll-on-jump",
"unstable": {
"version": [
- 20211006,
- 1416
+ 20211104,
+ 51
],
- "commit": "a2d6996a36ee2d3d4d4426d1bea60b6717ded10d",
- "sha256": "0ixjwi3m0dmsivdqfm1bcs7rbp1cw0fhw4hgj4ym49p1acjhha5f"
+ "commit": "0cf26a15bb6278c4273ee53f6a8d7d790792fc29",
+ "sha256": "0ns1mxbfw5s7mimzqwxbi2sbbs6w60gi7z3l5hmxiv1qwdl0a8p7"
}
},
{
@@ -95906,8 +96176,8 @@
"prescient",
"selectrum"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -96811,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",
@@ -96857,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",
@@ -96936,11 +97245,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20210924,
- 445
+ 20211029,
+ 150
],
- "commit": "c088fe627f12597726dfc2062454e2e7bd99798a",
- "sha256": "0bhvhhqs55nh1qb212zmmxw76l22xd830pvw0n9wihv02yrg7kim"
+ "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
+ "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
}
},
{
@@ -97753,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"
}
},
{
@@ -97809,11 +98118,11 @@
"repo": "dawranliou/sketch-themes",
"unstable": {
"version": [
- 20210826,
- 1816
+ 20211022,
+ 1915
],
- "commit": "50fd9fe9caf24f42dc481560e1f41addc3a06dbb",
- "sha256": "0j26a9q271cd8b6vcxs6iyn3a3xz210lgyszxb39715x8lvwhvvy"
+ "commit": "8083d2b3e7834c7e4531a6a7882ffa4058aee4c3",
+ "sha256": "0axdrscidpxr4zj88xj53zjfhd5jxbmsg4la4kwsk4krkywp6fm1"
},
"stable": {
"version": [
@@ -98028,15 +98337,15 @@
"repo": "slime/slime",
"unstable": {
"version": [
- 20211006,
- 1733
+ 20211021,
+ 807
],
"deps": [
"cl-lib",
"macrostep"
],
- "commit": "0470fc048fbd7987a25413be37f4e0efd93c204f",
- "sha256": "1m46kkqhmgrfydjnh53a3xfk498829m39c60kkafv2qbz4p7mik8"
+ "commit": "1378aa718781ec6d359845f0116e12865261b2ca",
+ "sha256": "0h0bqmvwnddqj0b18kcmn990mmngpnq118h28w28lzr65aa33m2r"
},
"stable": {
"version": [
@@ -98194,11 +98503,11 @@
"repo": "Fuco1/slovak-holidays",
"unstable": {
"version": [
- 20200919,
- 1345
+ 20211018,
+ 1754
],
- "commit": "4c6f635a2153ecb8f76d566d40ccb9d7b1d5fdc7",
- "sha256": "05gjpmqxbbppxl2yag1c7shdld22grxqax4kinjs6ydkbd5mv5ai"
+ "commit": "bedd26dd45ca497c0028a11e94a905560fcdb2f1",
+ "sha256": "1g7g0kc36017scyi598x20p45qrj5zjczz2ma2gmlgkj33h3bygl"
}
},
{
@@ -98508,11 +98817,11 @@
"repo": "hrehfeld/emacs-smart-hungry-delete",
"unstable": {
"version": [
- 20170412,
- 1343
+ 20211020,
+ 1822
],
- "commit": "7c1d56a92481594e14d40b5fdf6c48657a0108a0",
- "sha256": "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"
+ "commit": "78acd1f16fb99b66a6c9bd605a988c3c74280577",
+ "sha256": "0c4yrnngq1m5nwis5y26qf0mfp12qnargh7s4hd3wm5xl4n5369x"
}
},
{
@@ -98684,8 +98993,8 @@
20200909,
1412
],
- "commit": "dd52a3e1a7b043fb88f799827c7b3e39f60a14f1",
- "sha256": "109iygijidw2wljc9i151zh4r0n6ivrakb2p4zdy9cml7dwk3lzk"
+ "commit": "2c140accd576062f69dbe7db1d43ba038b347b9b",
+ "sha256": "135vpzcazb16l99bdw2wnkjq0ysbdyws83w59ksapq5sq7gl9ll7"
},
"stable": {
"version": [
@@ -98776,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": [
@@ -99391,26 +99700,26 @@
"repo": "md-arif-shaikh/soccer",
"unstable": {
"version": [
- 20211015,
- 934
+ 20211023,
+ 827
],
"deps": [
"dash"
],
- "commit": "8547a36789be66ac32caf4c80a330e7bdf9bb5dd",
- "sha256": "0kddpbha5mlih9rmygkxqm8gs9719ics749p18p2np02pvka3x06"
+ "commit": "d59b7196a62edb0e72eef52772eec42cab8baa45",
+ "sha256": "1hdp7lcr7pdary7qssf2na6a3n0ycijbx3z0ggk37gxzvz59jiv4"
},
"stable": {
"version": [
1,
- 1,
+ 2,
0
],
"deps": [
"dash"
],
- "commit": "c486cad32f07db9bd55af08c6b4a6bb0cd481d67",
- "sha256": "0gsd4mi1nddxn4z9jayi0fhn3bvk9rpj6615ssb5426k0zfhwjsz"
+ "commit": "d59b7196a62edb0e72eef52772eec42cab8baa45",
+ "sha256": "1hdp7lcr7pdary7qssf2na6a3n0ycijbx3z0ggk37gxzvz59jiv4"
}
},
{
@@ -99715,11 +100024,11 @@
"repo": "mssola/soria",
"unstable": {
"version": [
- 20210813,
- 912
+ 20211025,
+ 1535
],
- "commit": "cc225f51ea724d8767f97249d8c6b3fc5182d331",
- "sha256": "0k73skf3wmfzbiv6lfb7dlyb6icsk36q0sfz4zwq2fpr4s3qzp73"
+ "commit": "a111e7169405778d95f7a1e61a7d197ca1217edf",
+ "sha256": "130sz27mq3w0svv114qnwqjdbvrnljprab7v0acp5zwj9gqgwkk5"
},
"stable": {
"version": [
@@ -100123,11 +100432,11 @@
"repo": "alvinfrancis/spark",
"unstable": {
"version": [
- 20160415,
- 201
+ 20211021,
+ 1832
],
- "commit": "0bf148c3ede3b31d56fd75f347cdd0b0eae60025",
- "sha256": "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"
+ "commit": "c9af24a169b1f1aeba175f1f8d51abda113639af",
+ "sha256": "0ap9xq77i7a3cbrz6xiydkzj5k0866jinfnpfa2551r93x06rdh1"
}
},
{
@@ -100344,11 +100653,11 @@
"repo": "ideasman42/emacs-spell-fu",
"unstable": {
"version": [
- 20211008,
- 106
+ 20211103,
+ 328
],
- "commit": "f38bebefea9d23c2bd4293ecf7100211c1410cd4",
- "sha256": "0wvg4c1z5y62icagfwl2vb329jprf6si804726mqka92zj4nnn77"
+ "commit": "1159eeec13acbba5ecfc24aa8f6aa620c1274d17",
+ "sha256": "1fm40dkh0albrw2cv6wkkgssp4aka2gamxczkgnvwa4ifkf7p3i0"
}
},
{
@@ -100407,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"
}
},
{
@@ -100444,10 +100757,10 @@
},
{
"ename": "spiral",
- "commit": "35763febad20f29320d459394f810668db6c3353",
- "sha256": "074ymaksb3dgrsrdsi6xdlvigki5l2v66r8204xv50yc88z7l8qr",
+ "commit": "f454d98d219785c98dc9b17cf062ef22fece480d",
+ "sha256": "01jvrgc8wd308r3hwwn08dpyrank17353ybmabvzc90vzc1n0kcd",
"fetcher": "github",
- "repo": "Unrepl/spiral",
+ "repo": "volrath/spiral",
"unstable": {
"version": [
20180223,
@@ -101360,16 +101673,16 @@
20200606,
1308
],
- "commit": "ef629fd74c5d963f5b68507179896169a34a078e",
- "sha256": "1wnx8s8cabg8zja0w0cvk6jfsqbkgbszdx624v1bl6g5iiv2im1j"
+ "commit": "16a65055f92497b035d866fa4b39d1786c4f4b8c",
+ "sha256": "0dkg4ddj0bjn8drvx49ffb4y6q84r27cbh8dxrwi9ikcwqb61b6w"
},
"stable": {
"version": [
1,
- 3
+ 4
],
- "commit": "05900351a9ec7b774931a2a59c15c9f0b6d443f6",
- "sha256": "18gb1f9ndi64f5zyxrgy9wfjgbn0s12wv6b3817xnj61crhvqwd0"
+ "commit": "262b2fc5b533f6f609c43a6f543c9d0d185b8f55",
+ "sha256": "0g0jnry8y858dl3z5w4zd02s0lq9qvha848xb8i1xpsx8xh8plf9"
}
},
{
@@ -101651,11 +101964,11 @@
"repo": "stepnem/stripes-el",
"unstable": {
"version": [
- 20200330,
- 2022
+ 20211022,
+ 2144
],
- "commit": "7b1d501f44b697a0514ef6759fd126d65867f18d",
- "sha256": "0mx7l751jiijrjnbn3y6awasjy2c7k4ndgjq5c455vzxrlcbwr25"
+ "commit": "5e7adbd6e19a2d362ba818fdb44ad7744d757df2",
+ "sha256": "0ikhgqwwfbx1zmbx2scvi9cx7wlzwq91pwjydj2vxsg7c03iadd8"
},
"stable": {
"version": [
@@ -101730,11 +102043,11 @@
"repo": "brianc/jade-mode",
"unstable": {
"version": [
- 20210908,
- 2121
+ 20211019,
+ 2113
],
- "commit": "111460b056838854e470a6383041a99f843b93ee",
- "sha256": "1v6j0658dch5v0ddkkgw99194jlh28p5cjvkcp6cabwjb7s4pvim"
+ "commit": "1ad7c51f3c6a6ae64550d9510c5e4e8470014375",
+ "sha256": "1n26jlvf0z7h5yq3w2pzznj43g5xknq1icg68pc0ysqdfm4nq51m"
},
"stable": {
"version": [
@@ -101871,14 +102184,14 @@
"url": "https://git.sr.ht/~amk/subsonic.el",
"unstable": {
"version": [
- 20211008,
- 1439
+ 20211016,
+ 940
],
"deps": [
"transient"
],
- "commit": "de3d4539dd8dd33c9b9d1a982cfc47c452c612de",
- "sha256": "0xhggrjq3f9wq5aq69ib2bny36295aw678avgdib2vp1bf9xd73n"
+ "commit": "a070cff3f802796dd0dbab4b2ebfbb9f05c36b0b",
+ "sha256": "12j0czk3hgpkm7sxpabwii67q2gfj97f51akhnysdzrm82yb4p60"
},
"stable": {
"version": [
@@ -102181,11 +102494,11 @@
"repo": "leafOfTree/svelte-mode",
"unstable": {
"version": [
- 20211011,
- 607
+ 20211016,
+ 652
],
- "commit": "282acf8c01c37899955afe3dc32d9cbfb18065e2",
- "sha256": "1kjnc7nl5kshy8wjppvjzavv94h4ynwas610g1xqbzfbpirsnz2p"
+ "commit": "6a1d4274af7f4c0f271f77bd96678c3dd1fa68e1",
+ "sha256": "058mxzcrxqzsax21bs50vysr4ia3jcig83xbns0vhziqpj220yl1"
}
},
{
@@ -102434,26 +102747,26 @@
"repo": "swift-emacs/swift-mode",
"unstable": {
"version": [
- 20211009,
- 635
+ 20211031,
+ 543
],
"deps": [
"seq"
],
- "commit": "babe36ca93e72c34b2a3856d8fac7e3fc9884f21",
- "sha256": "133r7isdnz7r7y7pbf239928kjmk9ps2i8zqnxnma9zcmncw88ld"
+ "commit": "4777c409ba0cd0d02b9a8397ba810e449b5ac213",
+ "sha256": "0dmrshlkhavzlfxhm2fi37x7rf1h203iiamdqvqb7dqq0axah5r7"
},
"stable": {
"version": [
8,
4,
- 1
+ 2
],
"deps": [
"seq"
],
- "commit": "babe36ca93e72c34b2a3856d8fac7e3fc9884f21",
- "sha256": "133r7isdnz7r7y7pbf239928kjmk9ps2i8zqnxnma9zcmncw88ld"
+ "commit": "e24626440ce350596f4c1676f6644437a0500bbd",
+ "sha256": "09pr8v78nz8nza9l4g87i0xfnp84rmjm2kq1ff6g4a6nisdxyfxm"
}
},
{
@@ -102679,8 +102992,8 @@
20210908,
2121
],
- "commit": "111460b056838854e470a6383041a99f843b93ee",
- "sha256": "1v6j0658dch5v0ddkkgw99194jlh28p5cjvkcp6cabwjb7s4pvim"
+ "commit": "1ad7c51f3c6a6ae64550d9510c5e4e8470014375",
+ "sha256": "1n26jlvf0z7h5yq3w2pzznj43g5xknq1icg68pc0ysqdfm4nq51m"
},
"stable": {
"version": [
@@ -102773,8 +103086,8 @@
"hydra",
"multiple-cursors"
],
- "commit": "b3b1257e676514d93cd2d71a10a485bf00b5375f",
- "sha256": "0ic6i589y8g41mpi9vzsd76rzcskxaxicfwwpw8d9g44p8zfghfz"
+ "commit": "5675976cad4cbeee30f43e6c4b28c2e5904575a5",
+ "sha256": "06cl7njizn68vml21lsl3p66wpcdcw6ah49jqjvwzjkzivrds3m5"
}
},
{
@@ -102855,8 +103168,8 @@
"repo": "countvajhula/symex.el",
"unstable": {
"version": [
- 20211006,
- 427
+ 20211016,
+ 51
],
"deps": [
"evil",
@@ -102868,8 +103181,8 @@
"seq",
"undo-tree"
],
- "commit": "71b9ecd2802521f3d48808892ea3f6b5354f8151",
- "sha256": "0hikl7i4p1g86awdr67pjxfwskifcvcz5b36ahrap7f2fhr10s6q"
+ "commit": "6dab41cf72fb5f25e0de30fde64fee960944a604",
+ "sha256": "1p8x7q1hf3bbblm43b4w3kns8ns6zjsz008x7pgvinqwi78a6nfs"
},
"stable": {
"version": [
@@ -103517,11 +103830,11 @@
"repo": "11111000000/tao-theme-emacs",
"unstable": {
"version": [
- 20210726,
- 1827
+ 20211027,
+ 1900
],
- "commit": "f35b97823f27e8d0f378bbd18b79a61f9e34cc55",
- "sha256": "097zvklc90dy90p62fbk5khnysijzmb6knvzyi8m6wba2g32v4mh"
+ "commit": "2d271a2733463f3be711c31da036236b53f6224e",
+ "sha256": "0n4n3ln5n3ygkb2pa9ag8pwqqs7a9lkzzb0j04b0rphjhmsn5hbr"
},
"stable": {
"version": [
@@ -103732,15 +104045,15 @@
"repo": "zevlg/telega.el",
"unstable": {
"version": [
- 20211014,
- 927
+ 20211102,
+ 1327
],
"deps": [
"rainbow-identifiers",
"visual-fill-column"
],
- "commit": "744d3698dd27a58822b2edcd4fe9689a701d0c37",
- "sha256": "1hciz2anrjjrm1nw1j657zgglg4ggf9pkzby96a41s7l6d1qi10a"
+ "commit": "7829e605467a3177e143f5c6ff9e55ac00803c8f",
+ "sha256": "0v7pmj2y7d8pidlais20kk7qi5kksq6pc7pn2fsb5q90p2mdlw9q"
},
"stable": {
"version": [
@@ -103820,11 +104133,11 @@
"repo": "lassik/emacs-teletext",
"unstable": {
"version": [
- 20210312,
- 1951
+ 20211016,
+ 2156
],
- "commit": "7ec1118b9e4a8663fe9ec933e9e13f7c2d57e986",
- "sha256": "1ffnxb088kvr3g0kjjwr6hdxd20pmlbi52bhpla3phmyzl8vz38k"
+ "commit": "e6e4ad4231f916d69f34a389f0b4cede6e04c951",
+ "sha256": "06iv3y6ij484n2gx46yby0whb8q99h7gb40rwialravgbpfj4xw9"
}
},
{
@@ -104524,11 +104837,11 @@
"repo": "Dspil/text-categories",
"unstable": {
"version": [
- 20211001,
- 830
+ 20211031,
+ 947
],
- "commit": "f73b0e63072463c91a75a292fa21d39a9f06b81c",
- "sha256": "08m24ap72y461zpackcdprh48vivvd75jz85pw0ad51ysvxq0z08"
+ "commit": "d400c2692373c14d7cf773e7ae587cbe9c7d1e13",
+ "sha256": "1wbx74pc0lzb51gs43zhs66jid4kyaavcgckx37m5m05k17kdv97"
}
},
{
@@ -104838,18 +105151,18 @@
20200212,
1903
],
- "commit": "9e70d608bf5f80e8ec0132953b91b7fa3d30ca26",
- "sha256": "0x7hsy9v2py8b5i7pn8v5xymgjg8rixkmsxaxvvsbmr771blpkqm"
+ "commit": "0d838c46aeb771ec5c1e3108faeb82cd3da935aa",
+ "sha256": "02drmjh4ay8krimf7bm32f72n5d6929ylc2znpnp70vihn40ybjr"
},
"stable": {
"version": [
2021,
- 10,
11,
+ 1,
0
],
- "commit": "77016aea52af2156be7c8ebde55b821fe46b7849",
- "sha256": "1lmh733m0anfny0izi2lc5njqaqdvr2z96lqfkyzsf0ln73ipb9b"
+ "commit": "bea461a963aae123322e893bc3a03ba1ad0657d5",
+ "sha256": "0y9jsq8lmz1xj0r3ybs4qbqwfvc3jbawpd3h4516zw1k5nwgf7d4"
}
},
{
@@ -104905,8 +105218,8 @@
"deps": [
"haskell-mode"
],
- "commit": "5bc0b35756ab14af950aafa5f3d76bae568d3095",
- "sha256": "13pryqrqk1y9qb5h2pg45hi62w17xnzrlrg471b6ga9r4zwn8vfz"
+ "commit": "cff017c60a92d446f1c7f0eaf65b9b63a0224800",
+ "sha256": "0xfm3hniijpd3wky62khg57il1gfxza0byr64v1aa6drsw9ygc4i"
},
"stable": {
"version": [
@@ -105154,19 +105467,19 @@
"repo": "aimebertrand/timu-spacegrey-theme",
"unstable": {
"version": [
- 20210930,
- 1521
+ 20211101,
+ 1649
],
- "commit": "e7655e95ad48418a3784de4e8a7dc45ed69540ed",
- "sha256": "05bdavm4a1d0p176b8cnipv6byxlchbbp1fcma67ly5px4wxn0ld"
+ "commit": "3da96d529c09dc1000de425f937380895ab9efa6",
+ "sha256": "0k2l15lkk3b5y7qfzhjid8l1clam5j9nhm635a1qmhjgcdln18x3"
},
"stable": {
"version": [
1,
- 6
+ 8
],
- "commit": "acb033ab8e3f4ab7899daa7a7fc0d67187b0554e",
- "sha256": "1mnhymvwcb3dqzpbsa2z70w90zdqrmlwczgf1ql41c2fxw7wzaqa"
+ "commit": "3da96d529c09dc1000de425f937380895ab9efa6",
+ "sha256": "0k2l15lkk3b5y7qfzhjid8l1clam5j9nhm635a1qmhjgcdln18x3"
}
},
{
@@ -105673,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",
@@ -105917,26 +106245,26 @@
},
{
"ename": "transient",
- "commit": "ee7bfefdf4423d63706a6dcf128886ca6b514e6b",
+ "commit": "cdd8115e3ab3df5f74a21dbf63d89ee11b4f1c17",
"sha256": "04xkdspn475dlch5fcw21phhdhshxlbyznjbi0l7qk8snm130qpv",
"fetcher": "github",
"repo": "magit/transient",
"unstable": {
"version": [
- 20211013,
- 2148
+ 20211104,
+ 143
],
- "commit": "45975c24e1ab08bb32e9bdc06f5c5efe7c256e16",
- "sha256": "0prx06z35fdvwbn1k18khw74phvfsa64pfsh4kpyihldj2k5f69j"
+ "commit": "202271f755497bacb50a1f2b3c93566e816f447e",
+ "sha256": "1y0rir7w12h85jagjdnww9wgwi1aazmm22ry7gz9wiax6mm1pcdn"
},
"stable": {
"version": [
0,
3,
- 6
+ 7
],
- "commit": "51e833e5152e9fdcdc1dbbf34ad2d4905bde1f69",
- "sha256": "10k9dzs8y6i0rfckclxm5n3maylmh95993n5dvrs8rbmlcpmihvy"
+ "commit": "74cba5a418ff1b1661494fc2970c330ecdbb4b22",
+ "sha256": "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"
}
},
{
@@ -106307,8 +106635,8 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20211015,
- 1613
+ 20211101,
+ 1223
],
"deps": [
"ace-window",
@@ -106320,14 +106648,14 @@
"pfuture",
"s"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"ace-window",
@@ -106339,8 +106667,8 @@
"pfuture",
"s"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106351,28 +106679,28 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20211006,
- 1837
+ 20211102,
+ 2155
],
"deps": [
"all-the-icons",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"all-the-icons",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106383,28 +106711,28 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20211007,
- 1608
+ 20211019,
+ 1654
],
"deps": [
"evil",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"evil",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106421,20 +106749,20 @@
"deps": [
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106453,22 +106781,22 @@
"pfuture",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"magit",
"pfuture",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106487,22 +106815,22 @@
"persp-mode",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"dash",
"persp-mode",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106521,22 +106849,22 @@
"perspective",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"dash",
"perspective",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106554,21 +106882,21 @@
"projectile",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "e4b15841c9671f9b26f370a8cbaa61632b459db4",
+ "sha256": "030k0pbzsnjwm2q0na7f5rfp2avrabf7rmanp3a4cxgf8dvdgm5c"
},
"stable": {
"version": [
2,
9,
- 3
+ 5
],
"deps": [
"projectile",
"treemacs"
],
- "commit": "6b71604773f852158f00596776a68a82fb2633bd",
- "sha256": "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -107157,11 +107485,11 @@
"repo": "emacs-typescript/typescript.el",
"unstable": {
"version": [
- 20210921,
- 1849
+ 20211022,
+ 1051
],
- "commit": "c9b22f5f338c4efa138a79d551c4cc4a9e9e7826",
- "sha256": "0gvh52ms1kg8bjdgnq94fhnvg0h75vp5b97h9g2gcc6kys0r3qbj"
+ "commit": "13e6da6c5746187842d8ebb5323bf2d88d5759c2",
+ "sha256": "1vqx8nzjnjj4980yzlcn2bpph7rjmk0b7nblfspn8xp83iw3cd2m"
},
"stable": {
"version": [
@@ -107626,11 +107954,11 @@
"repo": "ideasman42/emacs-undo-fu",
"unstable": {
"version": [
- 20211007,
- 306
+ 20211030,
+ 612
],
- "commit": "71c474e29f6ad726386604a5058761892951782e",
- "sha256": "1rwcr0d1nrkvssiyf2s7zicp3did8y4x5p0vmvg8n0d3vqsh3d3v"
+ "commit": "ab8bc10e424bccc847800c31ab41888db789d55d",
+ "sha256": "1vdaysc328gwqi57fp4cfbl96g76m8wc2qr53wgb3l89m9kx5sgg"
}
},
{
@@ -108373,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": [
@@ -108878,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"
}
},
{
@@ -109241,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"
}
},
{
@@ -109321,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"
}
},
{
@@ -109638,11 +109966,11 @@
"repo": "thanhvg/emacs-virtual-comment",
"unstable": {
"version": [
- 20210928,
- 758
+ 20211103,
+ 209
],
- "commit": "24271e081be3bb9ebcb41e27e1dad9623a837205",
- "sha256": "1np4mbw1fry8ja74vy3hjs9fx301c7k8zq3h4a9i7jbnkvzh9iyi"
+ "commit": "4effa95c7d6243fc5696597f488653f9d2a5d4a6",
+ "sha256": "164yiiqqxk2fpjk65y72fr71j05b1330zmvbaxh0w3ww2axkjz68"
}
},
{
@@ -110209,16 +110537,16 @@
"repo": "d12frosted/vulpea",
"unstable": {
"version": [
- 20210930,
- 527
+ 20211028,
+ 704
],
"deps": [
"org",
"org-roam",
"s"
],
- "commit": "b5cbe33c1891e8e1756da52ff911750c0da00f79",
- "sha256": "1djc3gmy3xa1vj2g56la67lfvqzzwh86c4cd6qjvfw7xyizzk7a1"
+ "commit": "a1cdaf43649e133e1d571b597195e2d17c7c5928",
+ "sha256": "0qqz7xy6yfscjac05klckf81pcmfwgl4jhd5i4g873xmrclmfzwi"
},
"stable": {
"version": [
@@ -110304,11 +110632,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20211009,
- 252
+ 20211025,
+ 2324
],
- "commit": "c088fe627f12597726dfc2062454e2e7bd99798a",
- "sha256": "0bhvhhqs55nh1qb212zmmxw76l22xd830pvw0n9wihv02yrg7kim"
+ "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
+ "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
}
},
{
@@ -110438,8 +110766,8 @@
"org",
"transient"
],
- "commit": "00b4fd5cae7fe27085995dbb178828fb765c7edc",
- "sha256": "1ya91159i58x4mccpnx429kq2k0xc04alikbly549qm8yw1y1hxg"
+ "commit": "0cb9c2fef6e611b4389f7df7fcccc17744053e9b",
+ "sha256": "1fv4bn6c04kv39jv25r09pvxc5hz5gwwbj16fhxs5930rf77ikqb"
},
"stable": {
"version": [
@@ -110529,16 +110857,16 @@
"repo": "wanderlust/wanderlust",
"unstable": {
"version": [
- 20211008,
- 1118
+ 20211028,
+ 1330
],
"deps": [
"apel",
"flim",
"semi"
],
- "commit": "92ded1534ce7143f379b92a4029db275f3e22ee8",
- "sha256": "0ai48j19dpyny1mmf81wjwmr5i5i5rnaj4d5n0hfchs4dcng0xrq"
+ "commit": "475514f22c0869d7b84cdf0b957f9ae75a45605b",
+ "sha256": "050dglv2l5z7pgrkzpmplzjm5mx3b4yg4zaqp2ghd9ddd19kn3y8"
}
},
{
@@ -111471,11 +111799,11 @@
"repo": "lassik/emacs-whois",
"unstable": {
"version": [
- 20210429,
- 805
+ 20211104,
+ 812
],
- "commit": "6ce65ec5c992b1e1cb538610f1c3708e9d467c39",
- "sha256": "0cz5c0zy4lz0534nfr2xf7p0d09ppcfdmry4335gx19vz47fj60n"
+ "commit": "f22244202fdac5064d5eff95c6f35ae887b01142",
+ "sha256": "0zv80aarrqlgnp7icvmm9yxlpc9qpdzn73lfrvrpry1rmv301wfp"
},
"stable": {
"version": [
@@ -111554,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",
@@ -112065,11 +112372,11 @@
"repo": "magit/with-editor",
"unstable": {
"version": [
- 20211015,
- 1917
+ 20211028,
+ 2105
],
- "commit": "8d52f933e50624c7bca3880f57297ac17ba4ac2d",
- "sha256": "0k0k7mbsizsbgyjb92qj9hp5f2jbwbkzmfbxjhbmniw87q1flmmp"
+ "commit": "521f75e3f37c7fe204bddb8a29ce862cae8f59bd",
+ "sha256": "0my9zbrzgn4h6wxl172iw6mn2dvcn3r85bdcl3pyv0hc5n7lkzxz"
},
"stable": {
"version": [
@@ -112806,168 +113113,6 @@
"sha256": "16y13bwsfx4mm8p1n09f4443kh03hl7jvfvkbwdrm6dlbywiqq8m"
}
},
- {
- "ename": "xah-css-mode",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1kkwfyf94v3ni3d4szy28v49p6f3hy8ww9mlris2vvgc726wy6hr",
- "fetcher": "github",
- "repo": "xahlee/xah-css-mode",
- "unstable": {
- "version": [
- 20211008,
- 707
- ],
- "commit": "eab9b2c6d7b06c23dcef23b0c1127d76ea7b09ba",
- "error": [
- "exited abnormally with code 1\n",
- "",
- "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://github.com/xahlee/xah-css-mode/archive/eab9b2c6d7b06c23dcef23b0c1127d76ea7b09ba.tar.gz': Couldn't resolve host name (6); retrying in 269 ms\nerror: unable to download 'https://github.com/xahlee/xah-css-mode/archive/eab9b2c6d7b06c23dcef23b0c1127d76ea7b09ba.tar.gz': HTTP error 404\n"
- ]
- }
- },
- {
- "ename": "xah-elisp-mode",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0cl07hw1hd3hj7wrzkh20m8vcs7mqsajxjmnlbnk2yg927yyijij",
- "fetcher": "github",
- "repo": "xahlee/xah-elisp-mode",
- "unstable": {
- "version": [
- 20211008,
- 717
- ],
- "commit": "de43714d9d4993b744afc4829d2f29ad1e806342",
- "error": [
- "exited abnormally with code 1\n",
- "",
- "warning: unknown setting 'experimental-features'\nerror: unable to download 'https://github.com/xahlee/xah-elisp-mode/archive/de43714d9d4993b744afc4829d2f29ad1e806342.tar.gz': HTTP error 404\n"
- ]
- }
- },
- {
- "ename": "xah-find",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "1d3x9yhm7my3yhvgqnjxr2v28g5w1h4ri40sy6dqcx09bjf3jhyq",
- "fetcher": "github",
- "repo": "xahlee/xah-find",
- "unstable": {
- "version": [
- 20210925,
- 1648
- ],
- "commit": "4ac27d806b17d646cb46167da30b8163d31d5073",
- "sha256": "1zww1ycn14jajav9cx71yxn4sdc1hbba9wis8f449ij03cvpbl7y"
- }
- },
- {
- "ename": "xah-fly-keys",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0bzfz8q7yd1jai0pgngxwjp82nsfx5ivn24cb20vc5r8hhzj17cs",
- "fetcher": "github",
- "repo": "xahlee/xah-fly-keys",
- "unstable": {
- "version": [
- 20211009,
- 1810
- ],
- "commit": "de43f45e5adc5342937a9bb66f5d00b2c02c16a7",
- "sha256": "01wj3ii4lacns3ly8f0812sc53spvkqkwf9g7nqyda1laxqsgnic"
- }
- },
- {
- "ename": "xah-get-thing",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0m61bmfgqy19h4ivw655mqj547ga8hrpaswcp48hx00hx8mqzcvg",
- "fetcher": "github",
- "repo": "xahlee/xah-get-thing-or-selection",
- "unstable": {
- "version": [
- 20210909,
- 1528
- ],
- "commit": "9610142c9edbeb312f3c510af9e3ccfa85fb0014",
- "sha256": "036gk93hkllhwl76y284c8nk39r6m1yfsjaj8wbmhgmqz4yidyqi"
- }
- },
- {
- "ename": "xah-lookup",
- "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
- "sha256": "0z0h1myw6wmybyd0z2lw4l59vgm6q6kh492q77kf3s0fssc0facc",
- "fetcher": "github",
- "repo": "xahlee/lookup-word-on-internet",
- "unstable": {
- "version": [
- 20211008,
- 659
- ],
- "commit": "f9c3fda86930bebf718da6e39649500be5628cc5",
- "error": [
- "exited abnormally with code 1\n",
- "",
- "warning: unknown setting 'experimental-features'\nerror: unable to download 'https://github.com/xahlee/lookup-word-on-internet/archive/f9c3fda86930bebf718da6e39649500be5628cc5.tar.gz': HTTP error 404\n"
- ]
- }
- },
- {
- "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",
@@ -113067,8 +113212,8 @@
"repo": "dandavison/xenops",
"unstable": {
"version": [
- 20210630,
- 740
+ 20211102,
+ 1607
],
"deps": [
"aio",
@@ -113078,8 +113223,8 @@
"f",
"s"
],
- "commit": "95b0b37cf5bb6474f054056b0dad9402c700c5b7",
- "sha256": "09xiabicada3ziyinlc9fczcdy2nr01fn3fqlq1vpjzb5882k63l"
+ "commit": "61f4fe7b5cc2549ea7363635307279becac53ea7",
+ "sha256": "188p1lk7d6gbnshikb7qf646ljpcrsdssr0k9jd1vgga8iz22k0d"
}
},
{
@@ -113777,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",
@@ -114310,11 +114440,11 @@
"repo": "ryuslash/yoshi-theme",
"unstable": {
"version": [
- 20210713,
- 455
+ 20211031,
+ 456
],
- "commit": "06a6bcfc58d1f1cd8815c674c9fcbbf193bba0a9",
- "sha256": "0mp68h924hfj86rya0kvk16w82lvllmiryz8ry70ngcfmwdh930v"
+ "commit": "787bb0a13c6e1b28e904e1b7f18564d5e97c9c93",
+ "sha256": "1yf6nnvzx7pv7qfx1wln9ksanapnf5b0chyrdhzy9wyjfx00hclz"
},
"stable": {
"version": [
@@ -114411,10 +114541,10 @@
},
{
"ename": "ytel",
- "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
- "sha256": "0xafyxqps4dp44b4jmm69fa5d24df3fkyim7wa9ddgxkcqfl3mpx",
+ "commit": "447dac94507a1fd6791d08e0f8225c261d1fae2b",
+ "sha256": "0adxiw83rah9hln3k8gm6s7ks3xpqfknypjb9j51lxcabc7c1677",
"fetcher": "github",
- "repo": "gRastello/ytel",
+ "repo": "grastello/ytel",
"unstable": {
"version": [
20200725,
@@ -114582,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,
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
index 1e1fffe9adb..eaa7d8b5779 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
@@ -6,13 +6,13 @@
trivialBuild rec {
pname = "sunrise-commander";
- version = "0.pre+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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/featherpad/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/featherpad/default.nix
index 84dc16c76d1..8fbcfbb4c10 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/featherpad/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/jetbrains/common.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/jetbrains/common.nix
index 3992fc5c2ec..4d8835c29c5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/jetbrains/common.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/default.nix
index 2562a821b82..1e7d38086b7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with lib;
stdenv.mkDerivation rec {
pname = "kakoune-unwrapped";
- version = "2021.08.28";
+ version = "2021.10.28";
src = fetchFromGitHub {
repo = "kakoune";
owner = "mawww";
rev = "v${version}";
- sha256 = "13kc68vkrzg89khir6ayyxgbnmz16dhippcnw09hhzxivf5ayzpy";
+ sha256 = "sha256-ph0063EHyFa7arXvCVD+tGhs8ShyCDYkFVd1w6MZ5Z8=";
};
makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/plugins/aliases.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/plugins/aliases.nix
index 5ff2a03441d..cf9a65c43f2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/kakoune/plugins/aliases.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/mindforger/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/mindforger/default.nix
index 6b93153ec04..2f75fb34cd1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/mindforger/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/neovim/neovide/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/neovim/neovide/default.nix
index a40ff76eea3..c2a696cd425 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/neovim/neovide/default.nix
@@ -17,6 +17,8 @@
, makeFontsConf
, libglvnd
, libxkbcommon
+, stdenv
+, enableWayland ? stdenv.isLinux
, wayland
, xorg
}:
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/common.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/common.nix
new file mode 100644
index 00000000000..e049c3ae641
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/default.nix
new file mode 100644
index 00000000000..6721cf24d96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch
new file mode 100644
index 00000000000..50a1802816c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/extensions.lock b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/extensions.lock
new file mode 100644
index 00000000000..2e757cdf946
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/extensions.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/extensions.nix
new file mode 100644
index 00000000000..08c8f207f4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/node.lock b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/node.lock
new file mode 100644
index 00000000000..59f8e0ae5e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/node.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/oni2/node.nix
new file mode 100644
index 00000000000..2cf69bb7327
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/rstudio/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/rstudio/default.nix
index 3ccdd70c455..62c3a93f76b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/rstudio/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/rstudio/default.nix
@@ -168,8 +168,8 @@ mkDerivation rec {
'';
postInstall = ''
- mkdir -p $out/share/icons $out/bin
- ln $out/lib/rstudio/rstudio.png $out/share/icons
+ 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
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/sublime/4/packages.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/sublime/4/packages.nix
index bbef0d8a405..3c098be5899 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/sublime/4/packages.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/texstudio/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/texstudio/default.nix
index 853593557dc..6b1b34e11cf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/texstudio/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "texstudio";
- version = "4.0.0";
+ version = "4.0.2";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
- sha256 = "0fapgc6dvzn47gmhxkqymwi3818rdiag33ml57j2mfmsi5pjxi0f";
+ sha256 = "sha256-SCrWoIZan8mFwQoXaXvM0Ujdhcic3FbmfgKZSFXFBGE=";
};
nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/thiefmd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/thiefmd/default.nix
new file mode 100644
index 00000000000..81222ff82f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/thonny/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/thonny/default.nix
index fb5cb4b8e4c..20d25bb616f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/thonny/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/vscode/generic.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/vscode/generic.nix
index 7a3f34828ee..8924b669c4a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/vscode/generic.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
'';
@@ -162,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/your-editor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/your-editor/default.nix
new file mode 100644
index 00000000000..a191943c3fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/editors/your-editor/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "your-editor";
+ version = "1203";
+
+ src = fetchFromGitHub {
+ owner = "kammerdienerb";
+ repo = "yed";
+ rev = "608418f2037dc4ef5647e69fcef45302c50f138c";
+ sha256 = "KqK2lcDTn91aCFJIDg+h+QsTrl7745So5aiKCxPkeh4=";
+ };
+
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/finance/odoo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/finance/odoo/default.nix
new file mode 100644
index 00000000000..69acb43af86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/gis/openorienteering-mapper/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/gis/openorienteering-mapper/default.nix
index 21b4cfa94b1..d186d36efcf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/6.x.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/6.x.nix
index 7cb4018f38f..4c06eb7962b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/6.x.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/7.0.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/7.0.nix
index 64fdf50a0d1..a07cf38c0eb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -18,13 +18,13 @@ in
stdenv.mkDerivation rec {
pname = "imagemagick";
- version = "7.1.0-9";
+ version = "7.1.0-13";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
- sha256 = "sha256-9eeOY6TvNykWA3yyQH1UR3ahdhOja87I9rsie9fMbso=";
+ sha256 = "sha256-W/XqgYOlSailHQdNBYsvf2P9go9sblWayDLrQQlekro=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/akira/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/akira/default.nix
index 430c582dd79..efa153df155 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/akira/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ciano/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ciano/default.nix
new file mode 100644
index 00000000000..dcaabed6b19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/cloudcompare/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/cloudcompare/default.nix
index 9fbe390f5d8..cd3f026dfa0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/cloudcompare/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fbida/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fbida/default.nix
index f2d2e267595..279f49e6a49 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fbida/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fbida/default.nix
@@ -10,6 +10,15 @@ stdenv.mkDerivation rec {
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
@@ -19,7 +28,7 @@ stdenv.mkDerivation rec {
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fondo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fondo/default.nix
index abcb77f9f8b..c8d6fc6030d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/fondo/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/gimp/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/gimp/default.nix
index 08d3f122aab..86550b87371 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/gimp/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/graphicsmagick/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/graphicsmagick/default.nix
index 13752bfc05d..268e59d910b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/hydrus/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/hydrus/default.nix
index 36dad897668..f8333dce6dd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/hydrus/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
- version = "458";
+ version = "460";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "v${version}";
- sha256 = "sha256-oVNgXelFMVT5V41SRlnN+pnYzOWbdDKQQcvRWFZqEro=";
+ sha256 = "sha256-cIvidbvMAWVs/XnS7I5ZQkuya9lfuRPNCRSTbFnKhSw=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ideogram/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ideogram/default.nix
index f9b123ddb40..bc608c6735f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/ideogram/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/imgbrd-grabber/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/imgbrd-grabber/default.nix
index c0115d95ac8..e9f415f722d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/inkscape/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/inkscape/default.nix
index c65dfa1b6c0..33873166119 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/inkscape/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/krita/beta.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/krita/beta.nix
index 167a96050fd..7733c1248fc 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/krita/beta.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/krita/beta.nix
@@ -1,7 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // {
- version = "5.0.0-beta1";
+ version = "5.0.0-beta2";
kde-channel = "unstable";
- sha256 = "1p5l2vpsgcp4wajgn5rgjcyb8l5ickm1nkmfx8zzr4rnwjnyxdbm";
+ sha256 = "0hwh6k40f4kmwg14dy0vvm0m8cx8n0q67lrrc620da9mign3hjs7";
})
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/monado/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/monado/default.nix
index fe5f99de121..219613ad0ce 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/monado/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/openscad/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/openscad/default.nix
index c7be99469b0..be079b6bdb2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/openscad/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/qimgv/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/qimgv/default.nix
index d3a46482be5..deed3d3b888 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/qimgv/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/qimgv/default.nix
@@ -16,13 +16,13 @@
mkDerivation rec {
pname = "qimgv";
- version = "1.0.1";
+ version = "1.0.2";
src = fetchFromGitHub {
owner = "easymodo";
repo = pname;
rev = "v${version}";
- sha256 = "1wybpmqvj7vj7cl6r4gif7mkrcdr6zpb939mmz46xsil5vb4pirh";
+ sha256 = "sha256-YlV/ysm7bdPverpKpanrL+jPVvMtP1paoAm0PREMaww=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/sane/backends/airscan/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/sane/backends/airscan/default.nix
index 8d0e32e2b4e..d88c7352d57 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -2,7 +2,7 @@
, libxml2, gnutls, sane-backends }:
stdenv.mkDerivation rec {
pname = "sane-airscan";
- version = "0.99.26";
+ version = "0.99.27";
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ avahi gnutls libjpeg libpng libxml2 sane-backends ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
owner = "alexpevzner";
repo = pname;
rev = version;
- sha256 = "08snfg5zx9924ryww0kxf1kgl085yw7fg6l4f1kzlhcmqf1958w5";
+ sha256 = "sha256-29IPoLF4rmq8sGTi5RmpT1Fq8RJJlaepTt+2GWDU3es=";
};
meta = with lib; {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shotwell/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shotwell/default.nix
index 7b74dd745f7..56d41d3dd50 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shotwell/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shotwell/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
- versionPolicy = "none";
+ versionPolicy = "odd-unstable";
};
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shutter/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shutter/default.nix
index c7e55be9f04..a6430f4889b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/shutter/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/weylus/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/weylus/default.nix
index 54b86c09341..f2cdfa2990e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/weylus/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/weylus/default.nix
@@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "weylus";
- version = "0.11.2";
+ version = "0.11.4";
src = fetchzip {
url = "https://github.com/H-M-H/Weylus/releases/download/v${version}/linux.zip";
- sha256 = "sha256-coA8qUpUgRjVBF/0LZgimx61fTTpdck/AO6e+r2uNu0=";
+ sha256 = "sha256-EW3TdI4F4d4X/BeSqI05QtS77ym1U5jdswFfNtSFyFk=";
stripRoot = false;
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/fetch.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/fetch.sh
index 1d10789bcca..5742a9b85c4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/fetch.sh
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.1/src -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.2/src -A '*.tar.xz' )
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/marble.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/marble.nix
index 637ae3bc977..7fe3aa529fa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/marble.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/marble.nix
@@ -2,7 +2,7 @@
, extra-cmake-modules, kdoctools
, qtscript, qtsvg, qtquickcontrols, qtwebengine
, krunner, shared-mime-info, kparts, knewstuff
-, gpsd, perl, fetchpatch
+, gpsd, perl
}:
mkDerivation {
@@ -18,15 +18,6 @@ mkDerivation {
qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
knewstuff gpsd
];
- patches = [
- (fetchpatch {
- # Backport fix to allow compilation with gpsd 3.23.1
- # Remove when marble compiles without the patch.
- # See: https://invent.kde.org/education/marble/-/merge_requests/57
- url = "https://invent.kde.org/education/marble/-/commit/8aadc3eb8f9484a65d497d442cd8c61fe1462bef.diff";
- sha256 = "sha256-ZkPXyunVItSRctv6SLGIonvyZwLDhCz+wfJrIXeHcDo=";
- })
- ];
preConfigure = ''
cmakeFlags+=" -DINCLUDE_INSTALL_DIR=''${!outputDev}/include"
'';
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/srcs.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/srcs.nix
index 4f4ab4464a3..43fc81b3c24 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/srcs.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/kde/srcs.nix
@@ -4,1811 +4,1811 @@
{
akonadi = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-21.08.1.tar.xz";
- sha256 = "02abs3mxwna30rgidlndj4jq0swy3id236ckw726vp3r8m9qimd6";
- name = "akonadi-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-21.08.2.tar.xz";
+ sha256 = "0jwhjdqha82hbyg2wmzjl5qi2rgmyd2sghdw85s77y63bxm9f0s2";
+ name = "akonadi-21.08.2.tar.xz";
};
};
akonadi-calendar = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-calendar-21.08.1.tar.xz";
- sha256 = "1p8myayr6kfgp805wdpy39f9bjxw1fafv6kn35h1zsl1fgyc4812";
- name = "akonadi-calendar-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-calendar-21.08.2.tar.xz";
+ sha256 = "0k4cbcr6cw9rcrzidlbjbpshmsfh0p2m8bd9inkgzxi08drwizsa";
+ name = "akonadi-calendar-21.08.2.tar.xz";
};
};
akonadi-calendar-tools = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-calendar-tools-21.08.1.tar.xz";
- sha256 = "0j8cc0x2bx64crgvprksnmng4yi7fk71s5pfyjrnw8d9xnj7vvvg";
- name = "akonadi-calendar-tools-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-calendar-tools-21.08.2.tar.xz";
+ sha256 = "1hxah75grydlaz6hzd3ng91dsap860111alph7vnrqcakhcfm0yc";
+ name = "akonadi-calendar-tools-21.08.2.tar.xz";
};
};
akonadi-contacts = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-contacts-21.08.1.tar.xz";
- sha256 = "13sjy2jg4bbg7dm182apppmcpkhmiwhkpnkjhh13dhz8v7488vnc";
- name = "akonadi-contacts-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-contacts-21.08.2.tar.xz";
+ sha256 = "1ap2c16c0z4m7f3zsp5w5wqwcdr3fn1n2kvb6d647c3knszgibvg";
+ name = "akonadi-contacts-21.08.2.tar.xz";
};
};
akonadi-import-wizard = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-import-wizard-21.08.1.tar.xz";
- sha256 = "1v0nzaijy6nahjx4j1wsvi8s6s3zk79b8h01n3r6gwilbxklqnqs";
- name = "akonadi-import-wizard-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-import-wizard-21.08.2.tar.xz";
+ sha256 = "0hgbjdkl4nva9dy9ljn8f5g4v9bw1rl84x2m0x94msf6bih20nr3";
+ name = "akonadi-import-wizard-21.08.2.tar.xz";
};
};
akonadi-mime = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-mime-21.08.1.tar.xz";
- sha256 = "15lm1248diqhnv1qldcyyfi1v7w8h13jvwhp80py93hijq07iwz5";
- name = "akonadi-mime-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-mime-21.08.2.tar.xz";
+ sha256 = "0fkv26zl92xijkibpxvbqcmip24qrq58lan3w9s642gqh972a6x3";
+ name = "akonadi-mime-21.08.2.tar.xz";
};
};
akonadi-notes = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-notes-21.08.1.tar.xz";
- sha256 = "1r43pvxpk3f183qaiydxg83xc1y5zss7xgxq5p1vnwgqyifibh3h";
- name = "akonadi-notes-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-notes-21.08.2.tar.xz";
+ sha256 = "0r19g9a0asqlw1qsh9vidbwpgbslfwqc8g577hdkhahfvg7hplmq";
+ name = "akonadi-notes-21.08.2.tar.xz";
};
};
akonadi-search = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadi-search-21.08.1.tar.xz";
- sha256 = "1w5vps398kadl6p2jhsj18jqfn4lyysx09jzj6q9cvkvzmq4im6i";
- name = "akonadi-search-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadi-search-21.08.2.tar.xz";
+ sha256 = "1a1pf9q93z0cv7v2fxksiw3vn5dylg0lgniv98z9p6zv0wijxhn5";
+ name = "akonadi-search-21.08.2.tar.xz";
};
};
akonadiconsole = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akonadiconsole-21.08.1.tar.xz";
- sha256 = "1dplpb6z3glps82bzlqhnx29k13m6b7q2wvdlcw9hfqrp2xgzyfk";
- name = "akonadiconsole-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akonadiconsole-21.08.2.tar.xz";
+ sha256 = "07vr4nwjzz6y1babwnhhidpv8pldx7vk2mq98midqji87xxh7r10";
+ name = "akonadiconsole-21.08.2.tar.xz";
};
};
akregator = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/akregator-21.08.1.tar.xz";
- sha256 = "03rv9m3f7vrn80jfdmnbzxsl226s82liyfam1cysxl2skkmvpimm";
- name = "akregator-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/akregator-21.08.2.tar.xz";
+ sha256 = "15qkkfrxiwcd1gz5skqj8sb8fkr1mkc51wc2chqr4jv6aa0lbf5r";
+ name = "akregator-21.08.2.tar.xz";
};
};
analitza = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/analitza-21.08.1.tar.xz";
- sha256 = "0aagcj2dvm5aq24m6r5z79qsq2ra8xwzj7b1f64kcq8sabw7dbn4";
- name = "analitza-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/analitza-21.08.2.tar.xz";
+ sha256 = "1y4amcl3sjpxhlqzyjmnpycgv3jfdn4458zch9qzakvjxamq6m9c";
+ name = "analitza-21.08.2.tar.xz";
};
};
ark = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ark-21.08.1.tar.xz";
- sha256 = "1ss33qizhg325k4hhf8339xg52iv4s32qjm048zhi2jaz54pdnv0";
- name = "ark-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ark-21.08.2.tar.xz";
+ sha256 = "0hxzd0qr07wyz5v76nj4qj4db4lav53xapknmakif1fkghj1r51g";
+ name = "ark-21.08.2.tar.xz";
};
};
artikulate = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/artikulate-21.08.1.tar.xz";
- sha256 = "0x71m715iw1hv6xy36sd2gzd0cnsbn09wipp02nx2dc161lavnxk";
- name = "artikulate-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/artikulate-21.08.2.tar.xz";
+ sha256 = "0b4fvxwrynnwr8mm87h60mhk293invaq8vw4y9dk6hv36l1z5fbf";
+ name = "artikulate-21.08.2.tar.xz";
};
};
audiocd-kio = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/audiocd-kio-21.08.1.tar.xz";
- sha256 = "1aqzgmpypzska5lgjwjpnbl6q2cbyiirph6h8ph5wnnb992lx8li";
- name = "audiocd-kio-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/audiocd-kio-21.08.2.tar.xz";
+ sha256 = "1l0wym8gisgwv2mg2jsvpj8hb2yvmzd7dcximg540ljphv3hp1p2";
+ name = "audiocd-kio-21.08.2.tar.xz";
};
};
baloo-widgets = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/baloo-widgets-21.08.1.tar.xz";
- sha256 = "01f0hpgvlwxn3yms6yyi0ykryb78c9plp0q2z0ywk1p4lx4iywhd";
- name = "baloo-widgets-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/baloo-widgets-21.08.2.tar.xz";
+ sha256 = "1fk8qvqh1xx6139wvyfk607vkb7w3d79gc3v3c8s96pkp5b228ax";
+ name = "baloo-widgets-21.08.2.tar.xz";
};
};
blinken = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/blinken-21.08.1.tar.xz";
- sha256 = "1bfkiwg2cwn4dizwcjb0ynzvvdxndf5172a8z0ch9b2wxlaljh87";
- name = "blinken-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/blinken-21.08.2.tar.xz";
+ sha256 = "1ciq6fk9430p8sihc1q40djjw4994w1lghps9kr3415ryv08bfci";
+ name = "blinken-21.08.2.tar.xz";
};
};
bomber = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/bomber-21.08.1.tar.xz";
- sha256 = "1ppsnnbwsf1y9pavnpxr64k845gx1yn5p1mqswpcqgp9zd58f338";
- name = "bomber-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/bomber-21.08.2.tar.xz";
+ sha256 = "0wk6j89m8lbp83yfz2xwy78x99cvph9p36jzscpp4i894j6fad61";
+ name = "bomber-21.08.2.tar.xz";
};
};
bovo = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/bovo-21.08.1.tar.xz";
- sha256 = "0qs96ds0clbvf7q487h9bq7l4haymdcyxzq8rlfd74qpki9cb9aa";
- name = "bovo-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/bovo-21.08.2.tar.xz";
+ sha256 = "1k5ncxxx64yj2b71jlpz7ll935mrilhrhphwz1h8n8pdr6dn91mf";
+ name = "bovo-21.08.2.tar.xz";
};
};
calendarsupport = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/calendarsupport-21.08.1.tar.xz";
- sha256 = "0n9mbwdgyc4530g1rn9b393qq8pgpcclcpip9p72q8qc630jsvbw";
- name = "calendarsupport-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/calendarsupport-21.08.2.tar.xz";
+ sha256 = "01plq4qzp94lxcc2gp04afnlvmni8993c8mf6kl256158z0y24ik";
+ name = "calendarsupport-21.08.2.tar.xz";
};
};
cantor = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/cantor-21.08.1.tar.xz";
- sha256 = "18gl6bw8mnn9sp4jws5b57k9w9scqg53ynw6yrabx2796k0hwfiw";
- name = "cantor-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/cantor-21.08.2.tar.xz";
+ sha256 = "07xxwm3aa00v6cax7nyv326glapll01qh4libszhhn8pwpiyl00w";
+ name = "cantor-21.08.2.tar.xz";
};
};
cervisia = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/cervisia-21.08.1.tar.xz";
- sha256 = "0dah0lgzpdzxyvccqk2k2qbl5x4dl53qp23d0rxb5cg1ba5h7n2l";
- name = "cervisia-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/cervisia-21.08.2.tar.xz";
+ sha256 = "0x4hisqfkizjxzl34s0yc6dn5r5fyh7f5yaadq5g47fdcah5cmmf";
+ name = "cervisia-21.08.2.tar.xz";
};
};
dolphin = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/dolphin-21.08.1.tar.xz";
- sha256 = "1vmk9iaylw427x203ccdjhlbah3dr5fz7l3lc113nczq54kcwpbf";
- name = "dolphin-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/dolphin-21.08.2.tar.xz";
+ sha256 = "18aiqpf8qsig64gpcn6b1f0fs5mvzbdg8ncbhcjq0gy8gh3xamj2";
+ name = "dolphin-21.08.2.tar.xz";
};
};
dolphin-plugins = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/dolphin-plugins-21.08.1.tar.xz";
- sha256 = "0gnmr73ly0djngp3imdi4zm72icj3gilqcshb4ks3rq3lwk408rr";
- name = "dolphin-plugins-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/dolphin-plugins-21.08.2.tar.xz";
+ sha256 = "0278pmakd4xqc8ckyxkzvf1xj1jp7jdq3a86i0n0k691zfljnan7";
+ name = "dolphin-plugins-21.08.2.tar.xz";
};
};
dragon = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/dragon-21.08.1.tar.xz";
- sha256 = "050jrizyip362fanrbx3fwp4n69sr7d4y2w6n70aqv8hhi90xqjy";
- name = "dragon-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/dragon-21.08.2.tar.xz";
+ sha256 = "0ddijz96z58582w298jp11vns9fx3rmzqd3x1qplxvp4sl0hp9l7";
+ name = "dragon-21.08.2.tar.xz";
};
};
elisa = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/elisa-21.08.1.tar.xz";
- sha256 = "12kr5aixw5gdmy2vj6id0wmznkwg6p1ysxcqayk8bwvv2qz2pygr";
- name = "elisa-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/elisa-21.08.2.tar.xz";
+ sha256 = "14wi7dva0bfagxw49bs80qszqcv6k16s0569mh1c4m97gzlzgv35";
+ name = "elisa-21.08.2.tar.xz";
};
};
eventviews = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/eventviews-21.08.1.tar.xz";
- sha256 = "04z5cb4vhxcwxp8dwv7w4400zmj090gr7dm4d4h4x39312d25rhh";
- name = "eventviews-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/eventviews-21.08.2.tar.xz";
+ sha256 = "0d1ahknazkjav9641i1wggj9f67cr3s3y176v1j6ljhr4dl3m3xj";
+ name = "eventviews-21.08.2.tar.xz";
};
};
ffmpegthumbs = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ffmpegthumbs-21.08.1.tar.xz";
- sha256 = "13v5y99fvj0p9f9hqafw652qzb7z267fjfsqykv7wb3pv274f11w";
- name = "ffmpegthumbs-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ffmpegthumbs-21.08.2.tar.xz";
+ sha256 = "1gsxcm86aq3r485ivk532a949z5l4129kildbd752c2qy0hdy5z1";
+ name = "ffmpegthumbs-21.08.2.tar.xz";
};
};
filelight = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/filelight-21.08.1.tar.xz";
- sha256 = "0smvvh7g9p0vh4s3xd0pk6whszk8vmqv9ww1jp0y3dy6ai2cwixi";
- name = "filelight-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/filelight-21.08.2.tar.xz";
+ sha256 = "0phisyrnxc6i19253fdayx8cn51y6vxd66gfdy08hi4r31ih57jd";
+ name = "filelight-21.08.2.tar.xz";
};
};
granatier = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/granatier-21.08.1.tar.xz";
- sha256 = "1n7bvkh118530hi0aka9wwz7kycljwawb5d0wxzjb74kqp5rp0lv";
- name = "granatier-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/granatier-21.08.2.tar.xz";
+ sha256 = "1bly3jlmn9d2im05srr3v28mw8wmr3hnw180wi8lpfzianh589v7";
+ name = "granatier-21.08.2.tar.xz";
};
};
grantlee-editor = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/grantlee-editor-21.08.1.tar.xz";
- sha256 = "1nfqylrnkvhjiygah527i9q16987n99ry69nwd1000xvf7r1k2yd";
- name = "grantlee-editor-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/grantlee-editor-21.08.2.tar.xz";
+ sha256 = "1sm35c4r5sawcrclv1sc6ij4gsll87zwmissahgf30km32vz0rbv";
+ name = "grantlee-editor-21.08.2.tar.xz";
};
};
grantleetheme = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/grantleetheme-21.08.1.tar.xz";
- sha256 = "0zscb0wb85g1r0zcqb50ylg1r0640mjk985ifffnjzxlx4ayqglm";
- name = "grantleetheme-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/grantleetheme-21.08.2.tar.xz";
+ sha256 = "0xm19a21y8b4cqiqg6mhxip1xxk7hrz88z1sijhhgc8d14i7mkdk";
+ name = "grantleetheme-21.08.2.tar.xz";
};
};
gwenview = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/gwenview-21.08.1.tar.xz";
- sha256 = "187br8271z00v02vllpxqwk8x6y38gg43xixczd8x4j0p6rgv8a0";
- name = "gwenview-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/gwenview-21.08.2.tar.xz";
+ sha256 = "0yignay0g4vz3zj9xpziinsqd8pwywd1cq43f0n5hmzxrrv0abcf";
+ name = "gwenview-21.08.2.tar.xz";
};
};
incidenceeditor = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/incidenceeditor-21.08.1.tar.xz";
- sha256 = "1xyb106ck64qq4z083g0qx9n3rax5ma41jsfwl8am8w5q4szxw31";
- name = "incidenceeditor-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/incidenceeditor-21.08.2.tar.xz";
+ sha256 = "0xrz3kzf4mc37zgfbjgc23l7wxry9m6d5igvyf1qm33yxwr4w78q";
+ name = "incidenceeditor-21.08.2.tar.xz";
};
};
itinerary = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/itinerary-21.08.1.tar.xz";
- sha256 = "018871y48yd2z2qsrnjhymb72nn4by2l8lrz38gcd9fq2dwlh5fs";
- name = "itinerary-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/itinerary-21.08.2.tar.xz";
+ sha256 = "059n7xy3gjbqxl9cn7nxng9y4662ggi2lh2zj3yv0knwy78ccwjk";
+ name = "itinerary-21.08.2.tar.xz";
};
};
juk = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/juk-21.08.1.tar.xz";
- sha256 = "0q2q31r72d28hhabrnwglhcz6h3ay70i4fg7gyn658njvx8gl26b";
- name = "juk-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/juk-21.08.2.tar.xz";
+ sha256 = "0c74s9ylx1xh1y581ygm6zyafwv3l5d7297wfg50f64nyr5npxm2";
+ name = "juk-21.08.2.tar.xz";
};
};
k3b = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/k3b-21.08.1.tar.xz";
- sha256 = "1gs4api78ngyb03sgknhc1cil6rx7rd1y66674lmi3sssyhi6bkz";
- name = "k3b-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/k3b-21.08.2.tar.xz";
+ sha256 = "1g9xgzklsyard3ghcmr9irixcilga6kcj46jav884y8w7zxb4mrd";
+ name = "k3b-21.08.2.tar.xz";
};
};
kaccounts-integration = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kaccounts-integration-21.08.1.tar.xz";
- sha256 = "1860njydckpdz34y7g94pa4xz0229j1szj8ihvql05kgysdm11qp";
- name = "kaccounts-integration-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kaccounts-integration-21.08.2.tar.xz";
+ sha256 = "1ckwm2kwb83kl89491wrmpd748zhkwd1vyaffwiyaqkp4rkrjph0";
+ name = "kaccounts-integration-21.08.2.tar.xz";
};
};
kaccounts-providers = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kaccounts-providers-21.08.1.tar.xz";
- sha256 = "1w5k7y8xakp1lf4ca3wip7af3f9avd04i6zixv7kq9w3fh1mndp0";
- name = "kaccounts-providers-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kaccounts-providers-21.08.2.tar.xz";
+ sha256 = "15q1ibhxwxcvsjn6b2whyynhipq5b571d98bz20dn25fff88xllg";
+ name = "kaccounts-providers-21.08.2.tar.xz";
};
};
kaddressbook = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kaddressbook-21.08.1.tar.xz";
- sha256 = "05lrxban904szlqhri71qqfykyygsxwgsx9w406s213vwkakirxb";
- name = "kaddressbook-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kaddressbook-21.08.2.tar.xz";
+ sha256 = "1pvd31zpam13jv0mhxzaagdlvnav60znd68l24y1dw5i98wk7n72";
+ name = "kaddressbook-21.08.2.tar.xz";
};
};
kajongg = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kajongg-21.08.1.tar.xz";
- sha256 = "1izm0n2nsvxh9zvws53q4hkpzjihjwwccspas7k10ryasgp4nwsb";
- name = "kajongg-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kajongg-21.08.2.tar.xz";
+ sha256 = "0c8kxh6kbk7ml16df4gmr142rjllc7v0v7m3kw4ksngk93f7vz2s";
+ name = "kajongg-21.08.2.tar.xz";
};
};
kalarm = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kalarm-21.08.1.tar.xz";
- sha256 = "088461j6piwas0g4chpj579r3bhyncmyajsfh2hz4679ir5lf6yh";
- name = "kalarm-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kalarm-21.08.2.tar.xz";
+ sha256 = "06cww023m4ng4g3v344lci0rvapk4zyzf1vi5jlajfs5d8bfkgf5";
+ name = "kalarm-21.08.2.tar.xz";
};
};
kalarmcal = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kalarmcal-21.08.1.tar.xz";
- sha256 = "1s0yrh0y54rjp4d6y8vcixxrlsdra1xr8j3lxswl2h866p87v7fa";
- name = "kalarmcal-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kalarmcal-21.08.2.tar.xz";
+ sha256 = "0xdcazbbkm2z0r2g1avwh9bvdkvv0fy6qhhddlmfzj4cwh4c9vih";
+ name = "kalarmcal-21.08.2.tar.xz";
};
};
kalgebra = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kalgebra-21.08.1.tar.xz";
- sha256 = "0a8hmzdslr92v9a8pjf7rnmpf040l9cizzlx8xrxqk2bdb7qls5w";
- name = "kalgebra-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kalgebra-21.08.2.tar.xz";
+ sha256 = "07fw8ab8gy9mam5dij6i9nl1zv4fp13vari6nzdk337klhsdbsjr";
+ name = "kalgebra-21.08.2.tar.xz";
};
};
kalzium = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kalzium-21.08.1.tar.xz";
- sha256 = "0ijxyzryry1j9gfdmk56dlzyb4iz0v4vmjzjnqkv6sq2lm47lhyp";
- name = "kalzium-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kalzium-21.08.2.tar.xz";
+ sha256 = "0hjkpgclm67nyninywdmcpi7vn3jmf7ikbd4afg4bhj5mcz2a4vg";
+ name = "kalzium-21.08.2.tar.xz";
};
};
kamera = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kamera-21.08.1.tar.xz";
- sha256 = "0cmppa8bc9iqbdk0pbnzrj1qqryqmrdgs7hliay3hsl7gjlz9zgy";
- name = "kamera-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kamera-21.08.2.tar.xz";
+ sha256 = "1arb93sa730ha8bgbcvp6bng8s4fp9yvcv0qvkhk2nl4db4m5rng";
+ name = "kamera-21.08.2.tar.xz";
};
};
kamoso = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kamoso-21.08.1.tar.xz";
- sha256 = "15nqy97m913f0sdjs15bjivs7hvxghlhlw5579fsnfahg5iz5qp6";
- name = "kamoso-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kamoso-21.08.2.tar.xz";
+ sha256 = "0rkd9mk7rgha40j19rwpyqmn8lchqahakn4p3sbab7h3p3cq2b7p";
+ name = "kamoso-21.08.2.tar.xz";
};
};
kanagram = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kanagram-21.08.1.tar.xz";
- sha256 = "1jqrmgyd2ijqb1sq17r7mijvcix6syys02kyasyilwgibbnlzjz1";
- name = "kanagram-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kanagram-21.08.2.tar.xz";
+ sha256 = "12iq58jc36rp664c92s7442gnxq6k1fi4017a4hwqq67b9ismgzl";
+ name = "kanagram-21.08.2.tar.xz";
};
};
kapman = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kapman-21.08.1.tar.xz";
- sha256 = "072376xqm4a8fwvslf9grsklvzb50d9f098z4qba1lh3y3ivp7wm";
- name = "kapman-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kapman-21.08.2.tar.xz";
+ sha256 = "04yv6j2bjlgclp916k2gibhhv5d64sxk181cqw7sh5j4aq555a3r";
+ name = "kapman-21.08.2.tar.xz";
};
};
kapptemplate = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kapptemplate-21.08.1.tar.xz";
- sha256 = "1crll3dr299qpigh2w9psvpi0r4jmb8y0b0facfcfcs6j9ldfbw5";
- name = "kapptemplate-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kapptemplate-21.08.2.tar.xz";
+ sha256 = "0vgfz4pz9yjns4dpks8mrp8zzipka4chw257l1db25khibksgh48";
+ name = "kapptemplate-21.08.2.tar.xz";
};
};
kate = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kate-21.08.1.tar.xz";
- sha256 = "0k9kf8x5gbj5vbnr6lfhizi8122p76xixw480a3zsqi57i4bxk0z";
- name = "kate-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kate-21.08.2.tar.xz";
+ sha256 = "1cm6iq3cqmp0kvsxhv0vlqy1dyzmis9fb0a6298q0lyjkmsri26n";
+ name = "kate-21.08.2.tar.xz";
};
};
katomic = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/katomic-21.08.1.tar.xz";
- sha256 = "1595swszpw2ia9dh5c6wgrz04qlcvw84l474imkms4gv1cz583pb";
- name = "katomic-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/katomic-21.08.2.tar.xz";
+ sha256 = "0lng3fpc1b255n8hayla3lpb77rmgvx8bkzi1s152kq7bf2mnxj7";
+ name = "katomic-21.08.2.tar.xz";
};
};
kbackup = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kbackup-21.08.1.tar.xz";
- sha256 = "04795m0r4icfpv6166ingb82mfai0g6q48f9qvcqn029z0f347ya";
- name = "kbackup-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kbackup-21.08.2.tar.xz";
+ sha256 = "06xvw94m6zr7zj0i54if9vanbflnj88b0c16751br6ibp2m9zvlp";
+ name = "kbackup-21.08.2.tar.xz";
};
};
kblackbox = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kblackbox-21.08.1.tar.xz";
- sha256 = "019nd86wmm1m8yz0lsayx37mqyzhx1pa5kbddajf5032dscncymd";
- name = "kblackbox-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kblackbox-21.08.2.tar.xz";
+ sha256 = "093k42259lwbhmq6pm5hv1iqm4maqd63qic80p748wmh88bsh8yg";
+ name = "kblackbox-21.08.2.tar.xz";
};
};
kblocks = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kblocks-21.08.1.tar.xz";
- sha256 = "1grgkikl7zcs58y86kaw6slq7wvqa51g85kvwrysniv6l3yzhvxj";
- name = "kblocks-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kblocks-21.08.2.tar.xz";
+ sha256 = "0p4k3wr8756qfxr09daqp7z3461ljnd3yv34h893j5dini1lfy3d";
+ name = "kblocks-21.08.2.tar.xz";
};
};
kbounce = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kbounce-21.08.1.tar.xz";
- sha256 = "18sd3yzz0mj9j666pnkm49ngfzh7aw125a5zyf1k947z6ayv5zix";
- name = "kbounce-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kbounce-21.08.2.tar.xz";
+ sha256 = "06zd4p8glpzp7q4a8qcmnj1lszgfdircfkgc8ay5abmfx2rr9hcw";
+ name = "kbounce-21.08.2.tar.xz";
};
};
kbreakout = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kbreakout-21.08.1.tar.xz";
- sha256 = "0264w926ldfhdx22z1iqk41w5a9gnycff4vdjf0i6rzyws2qsb0g";
- name = "kbreakout-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kbreakout-21.08.2.tar.xz";
+ sha256 = "1gj37ryhak1czv95ksigssmbmicdpirzi1l5zsv1w7jdh4nqcz54";
+ name = "kbreakout-21.08.2.tar.xz";
};
};
kbruch = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kbruch-21.08.1.tar.xz";
- sha256 = "1rbkwzca3m93p3z294cwkiyycg0w87r6j37v0zyiq802pwkkpm34";
- name = "kbruch-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kbruch-21.08.2.tar.xz";
+ sha256 = "1syy188f3sg3r22f7dklzman0h8fz6r1n4r5z986240q0r316rbn";
+ name = "kbruch-21.08.2.tar.xz";
};
};
kcachegrind = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kcachegrind-21.08.1.tar.xz";
- sha256 = "09zgilcya7asj2si747snli6h0s7wzgjzkns9f53rwvq06xbp2zv";
- name = "kcachegrind-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kcachegrind-21.08.2.tar.xz";
+ sha256 = "126qa061bwz2d4s721vbv2099mz07vw3i1yw7vm0b3ih43h95149";
+ name = "kcachegrind-21.08.2.tar.xz";
};
};
kcalc = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kcalc-21.08.1.tar.xz";
- sha256 = "0si3mp1xbk6gps5fhc9fv1vskx37pgwx72i2x1kcm7azif26nzsk";
- name = "kcalc-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kcalc-21.08.2.tar.xz";
+ sha256 = "01923w7zav2iia5pffs33vhblzh26lr1zpf2274cgplsbb5lcc9p";
+ name = "kcalc-21.08.2.tar.xz";
};
};
kcalutils = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kcalutils-21.08.1.tar.xz";
- sha256 = "1xrggb8vv8lrjyhdb9yf2fzs36q766if78hlymgfndj1z37s0m6m";
- name = "kcalutils-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kcalutils-21.08.2.tar.xz";
+ sha256 = "0kvfpsz6zxdbgl4qvk3q55fjgjql1chx844cys26anhza0ld9afz";
+ name = "kcalutils-21.08.2.tar.xz";
};
};
kcharselect = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kcharselect-21.08.1.tar.xz";
- sha256 = "0qbhmyczc13kmbls06732i91s8n6w396dfj1z50z28wrkyqls8zr";
- name = "kcharselect-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kcharselect-21.08.2.tar.xz";
+ sha256 = "08x060xmnyzqyadimwdqz767q29rmd48m8aqr3dsrzvb969ijnha";
+ name = "kcharselect-21.08.2.tar.xz";
};
};
kcolorchooser = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kcolorchooser-21.08.1.tar.xz";
- sha256 = "13zdyksijxflvjb3zaszl6q7wzwz0pxsq8hyi5pb2gb7gryz65h7";
- name = "kcolorchooser-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kcolorchooser-21.08.2.tar.xz";
+ sha256 = "00vn2001crd0in3zd016xkhm38qgl7m03k1n90fiashjlnfd0928";
+ name = "kcolorchooser-21.08.2.tar.xz";
};
};
kcron = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kcron-21.08.1.tar.xz";
- sha256 = "0c9d3rlml2adk11bp541l1zpbgp3q6mfhb7bpq4alrwlrbd4fxan";
- name = "kcron-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kcron-21.08.2.tar.xz";
+ sha256 = "1ryfa084cfp7v11lbr58j4rx3n4m70ynpzbyavin31x1zzbw7bh8";
+ name = "kcron-21.08.2.tar.xz";
};
};
kde-dev-scripts = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kde-dev-scripts-21.08.1.tar.xz";
- sha256 = "1pv0qj7xpvxqgcrjbr9989cax0aan64cbipia4kmlg7kriz5wz6c";
- name = "kde-dev-scripts-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kde-dev-scripts-21.08.2.tar.xz";
+ sha256 = "093i4k4qqmjlffjyz7wqfv4lpsq6x9rc4svldbq5iszk8a7ldal5";
+ name = "kde-dev-scripts-21.08.2.tar.xz";
};
};
kde-dev-utils = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kde-dev-utils-21.08.1.tar.xz";
- sha256 = "02ksa35xh8vw08pqik7q8v3wax1fcvx2inicm1b2z2c4gq5k766l";
- name = "kde-dev-utils-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kde-dev-utils-21.08.2.tar.xz";
+ sha256 = "1gidcxnixymzvdqjyzwdc9bfphvrbq7xx1miabn221gjc42bkggs";
+ name = "kde-dev-utils-21.08.2.tar.xz";
};
};
kdebugsettings = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdebugsettings-21.08.1.tar.xz";
- sha256 = "1fmnmvyzlhczbsxdpnm3bi50pdh2659raizaqbal2yjxcp6rlb90";
- name = "kdebugsettings-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdebugsettings-21.08.2.tar.xz";
+ sha256 = "1wpj1hldrpbi538fd69i36zr3q3dg04i5bcmy41i1brzbddxl6sv";
+ name = "kdebugsettings-21.08.2.tar.xz";
};
};
kdeconnect-kde = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdeconnect-kde-21.08.1.tar.xz";
- sha256 = "01nwzsryxg7kkxb6g4h0lwn6g5zx4k64vizqk4gsvkif8d5zfc33";
- name = "kdeconnect-kde-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdeconnect-kde-21.08.2.tar.xz";
+ sha256 = "09dv3l5g0wjilpga11mkxbyy3d8xk46pb2i35yvjbgi9yzp0xzfv";
+ name = "kdeconnect-kde-21.08.2.tar.xz";
};
};
kdeedu-data = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdeedu-data-21.08.1.tar.xz";
- sha256 = "19hc9mykw8q0krcxmrjq4mhn5dljfrv9pzv38dm80w3yfflj8y65";
- name = "kdeedu-data-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdeedu-data-21.08.2.tar.xz";
+ sha256 = "0zm7gl4nz1b6m9m8hw5zklf5nbfh6qms7qbrrdxzcn6kj50zx6m2";
+ name = "kdeedu-data-21.08.2.tar.xz";
};
};
kdegraphics-mobipocket = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdegraphics-mobipocket-21.08.1.tar.xz";
- sha256 = "06zpm5d58q10dalm2lm7v7lcjmainn3lmagra6a1f007yshm3i32";
- name = "kdegraphics-mobipocket-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdegraphics-mobipocket-21.08.2.tar.xz";
+ sha256 = "15wd7sfwfz3n1a0m0l2ymyhsdxjajw3kkl4piv9956amcg1bxlcp";
+ name = "kdegraphics-mobipocket-21.08.2.tar.xz";
};
};
kdegraphics-thumbnailers = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdegraphics-thumbnailers-21.08.1.tar.xz";
- sha256 = "0hqdxsnv6xgvy2knnhq733hbfgzhr6f4fi63l80saysqvpjyrxly";
- name = "kdegraphics-thumbnailers-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdegraphics-thumbnailers-21.08.2.tar.xz";
+ sha256 = "1261kn4fa2lrissqc9cb5s7rd94pzfzq79kjw3gagbhrjfs91872";
+ name = "kdegraphics-thumbnailers-21.08.2.tar.xz";
};
};
kdenetwork-filesharing = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdenetwork-filesharing-21.08.1.tar.xz";
- sha256 = "1q5wisy6gz94lbf3dnmxp3rq0c5b1laajph8lnlm9dhfxxmrkacf";
- name = "kdenetwork-filesharing-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdenetwork-filesharing-21.08.2.tar.xz";
+ sha256 = "0xyph51w7ba0jrp9dds0v97k7av2h5a3098h7wpwd0sclj2hbnwc";
+ name = "kdenetwork-filesharing-21.08.2.tar.xz";
};
};
kdenlive = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdenlive-21.08.1.tar.xz";
- sha256 = "0gjv1fm07f1qckpmlvia58myg9si9z46nwxiz1lcca5mx5k7rpcz";
- name = "kdenlive-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdenlive-21.08.2.tar.xz";
+ sha256 = "10x160sdj7dk27aa7iyvfmpgfidc8pisfmx6a50z0b23y54kg77m";
+ name = "kdenlive-21.08.2.tar.xz";
};
};
kdepim-addons = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdepim-addons-21.08.1.tar.xz";
- sha256 = "08vpjcqnjh99bbmwp3h64anp53zafifblqy2f7bqkvwifmlrqvz8";
- name = "kdepim-addons-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdepim-addons-21.08.2.tar.xz";
+ sha256 = "050kbxh89drd0yd9gzjjipmz1cvxkk5riivr5fcccqayyvskvyh2";
+ name = "kdepim-addons-21.08.2.tar.xz";
};
};
kdepim-runtime = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdepim-runtime-21.08.1.tar.xz";
- sha256 = "0ai6v5sysh5pzwpvbhjzi1fvfp608abpndh9nhnm7b87hca73vm9";
- name = "kdepim-runtime-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdepim-runtime-21.08.2.tar.xz";
+ sha256 = "0vzly768f2g0zhprl1970k16kza128izhrby2mm1wdskrmdrvflq";
+ name = "kdepim-runtime-21.08.2.tar.xz";
};
};
kdesdk-kioslaves = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdesdk-kioslaves-21.08.1.tar.xz";
- sha256 = "0cz2cmcgksfkgl2nh0nnyz38q3rp1dfwhnajgcif5q0ka528v33w";
- name = "kdesdk-kioslaves-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdesdk-kioslaves-21.08.2.tar.xz";
+ sha256 = "1g4i7sc30m7sjmmgjf12b83yhcwpdnvb7gzdjs1da5np5nq96j4y";
+ name = "kdesdk-kioslaves-21.08.2.tar.xz";
};
};
kdesdk-thumbnailers = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdesdk-thumbnailers-21.08.1.tar.xz";
- sha256 = "1cvh2p3vfzbqbr9cfa1bchgflmp9mi12qx1j6j1jdaqqwhz43kj6";
- name = "kdesdk-thumbnailers-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdesdk-thumbnailers-21.08.2.tar.xz";
+ sha256 = "1bdwdpvdqx19j714fnxfhi3b647ynm1cgrkny7i27pkqlyw72hjg";
+ name = "kdesdk-thumbnailers-21.08.2.tar.xz";
};
};
kdf = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdf-21.08.1.tar.xz";
- sha256 = "1xmn7dhbnj9bhaw545ry0qwayxh3jhpgx9xa2fjcc0dhn8yx1spv";
- name = "kdf-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdf-21.08.2.tar.xz";
+ sha256 = "1z2m9a4rzjsjxv9pkassn3j7pxkqrpq04hw0j6q913q69a999rwg";
+ name = "kdf-21.08.2.tar.xz";
};
};
kdialog = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdialog-21.08.1.tar.xz";
- sha256 = "1mxmj5cm5h1dhqkblcqdc7ba9x04sqj6gp0b12gii7jsz3g0pa94";
- name = "kdialog-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdialog-21.08.2.tar.xz";
+ sha256 = "08klapfcxwp3mf7jv7swsia4719fq6aqdv7lnxr16j8sd6h3z0yx";
+ name = "kdialog-21.08.2.tar.xz";
};
};
kdiamond = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kdiamond-21.08.1.tar.xz";
- sha256 = "0l8z71k0a300yp03mkpabi3a9xydky6x19sk7xhq727canrb3nwz";
- name = "kdiamond-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kdiamond-21.08.2.tar.xz";
+ sha256 = "1k458rs0x82jf4sjzcry4xzazwfn9drg41736749nc5d26k6csz1";
+ name = "kdiamond-21.08.2.tar.xz";
};
};
keditbookmarks = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/keditbookmarks-21.08.1.tar.xz";
- sha256 = "0j9m5l3llb969ras4bvsswahqqpwrv1zscjpdscchk72vxi2ky4w";
- name = "keditbookmarks-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/keditbookmarks-21.08.2.tar.xz";
+ sha256 = "07yscqr3zzjvb1snl1k0ilmpgv8wrxvjrjdcr1410llfwd80fpvi";
+ name = "keditbookmarks-21.08.2.tar.xz";
};
};
kfind = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kfind-21.08.1.tar.xz";
- sha256 = "0d3milbrznwls197a5bjrdwarpdly4pyask7j97ia7nx0z91k35f";
- name = "kfind-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kfind-21.08.2.tar.xz";
+ sha256 = "1rqn77m8i3fvknkq4gdl4fyihxkc34537010d6i992pxcx9yxv4d";
+ name = "kfind-21.08.2.tar.xz";
};
};
kfloppy = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kfloppy-21.08.1.tar.xz";
- sha256 = "1nxkjaarvr7fq494hb4pk6nf9731f74zsxhfia3lzb2qf3rnxhvg";
- name = "kfloppy-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kfloppy-21.08.2.tar.xz";
+ sha256 = "0g54qwrmqkd3jxi6nwprzd0jckzdq3iawibfsfblkchnd8hnlxiw";
+ name = "kfloppy-21.08.2.tar.xz";
};
};
kfourinline = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kfourinline-21.08.1.tar.xz";
- sha256 = "0niwvc1fxvxk5xi90n753y7gjhljrnm3jjzxgjxs9ca5y1c7jcac";
- name = "kfourinline-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kfourinline-21.08.2.tar.xz";
+ sha256 = "0z28lzx9jqp2krgwf6cpwv4hhyl8q8azgw3ni24c8hjl81sxidvb";
+ name = "kfourinline-21.08.2.tar.xz";
};
};
kgeography = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kgeography-21.08.1.tar.xz";
- sha256 = "0wqblfs4h8pr0c3m9qv5xpz1sq1zxxbbgv42d0m12fhlbmhx0l64";
- name = "kgeography-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kgeography-21.08.2.tar.xz";
+ sha256 = "16rqlh2n4xz5rcs0p9ppzsk7wh060zf1i5yfx4cjrswfn2wk5brv";
+ name = "kgeography-21.08.2.tar.xz";
};
};
kget = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kget-21.08.1.tar.xz";
- sha256 = "06lng1sr1l5a7qcbld7xn97vlaxnq4f98sai2llmjkyna3awzi6r";
- name = "kget-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kget-21.08.2.tar.xz";
+ sha256 = "11h073nkk5axr263wz5wjq8pdad2wk3nmhixx12ilkqqinb0pi6h";
+ name = "kget-21.08.2.tar.xz";
};
};
kgoldrunner = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kgoldrunner-21.08.1.tar.xz";
- sha256 = "1dggs4fbfqc7q97j8fpi2v6q52165yikaps15mracn319c8mbx85";
- name = "kgoldrunner-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kgoldrunner-21.08.2.tar.xz";
+ sha256 = "13y8a1zxfy16sbdf2c94wdx15ghmb436pzx7kvvsfv8d5yizlzdz";
+ name = "kgoldrunner-21.08.2.tar.xz";
};
};
kgpg = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kgpg-21.08.1.tar.xz";
- sha256 = "0q4k7ahh1qr4fnkw4na5kyp4kq922a45hjgz9qzh7whn6zqrhsxs";
- name = "kgpg-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kgpg-21.08.2.tar.xz";
+ sha256 = "051z9h12zqmhgvr8pk17vsfzld25mpklk1z6nknlf3hydjnq6ns1";
+ name = "kgpg-21.08.2.tar.xz";
};
};
khangman = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/khangman-21.08.1.tar.xz";
- sha256 = "1jv7vbk4za17l73b10xx1ckv56qhsvlf2irlys917bk39jhxmwpp";
- name = "khangman-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/khangman-21.08.2.tar.xz";
+ sha256 = "0xrwsg5pv1y5lh6d2na1gx8aiimpbl8y2i9a4qj3qg5l4nf0inal";
+ name = "khangman-21.08.2.tar.xz";
};
};
khelpcenter = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/khelpcenter-21.08.1.tar.xz";
- sha256 = "09ayg8kb4b4v30xjm8ca5csw1axipn1336mq2sfqra5qwkj8d93y";
- name = "khelpcenter-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/khelpcenter-21.08.2.tar.xz";
+ sha256 = "0ivm1z7c6yy6dm9sb88ggiww9c2k526lhpipkgiwm6kslzallxsn";
+ name = "khelpcenter-21.08.2.tar.xz";
};
};
kidentitymanagement = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kidentitymanagement-21.08.1.tar.xz";
- sha256 = "0xhkz33w0z9jlxlqb06w5fiyj1qz2mjssrbba2kdm55q67lj1b76";
- name = "kidentitymanagement-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kidentitymanagement-21.08.2.tar.xz";
+ sha256 = "0kaws0w21sm0mb0fd5av7gid8gvyz0zxxjrbx0kf3c52dwkrmw5c";
+ name = "kidentitymanagement-21.08.2.tar.xz";
};
};
kig = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kig-21.08.1.tar.xz";
- sha256 = "0gvp07mnkpfamdq78bv2r1m84l4xp23qh2i6iscdhjdh05dzyl6s";
- name = "kig-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kig-21.08.2.tar.xz";
+ sha256 = "1i5lszzj200mda7vbc8c6bzdlx8ycf2d8kk28pl2n17ajra33iim";
+ name = "kig-21.08.2.tar.xz";
};
};
kigo = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kigo-21.08.1.tar.xz";
- sha256 = "1y7fh9acng4a135bz7skg7hgmyisaxgwli4ddv7y5h3r1rlhfd47";
- name = "kigo-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kigo-21.08.2.tar.xz";
+ sha256 = "0ss15k2qpmrf4xvsjpqpvf9pvw8wijmk4zqqhvsjrbd5xrk53bkf";
+ name = "kigo-21.08.2.tar.xz";
};
};
killbots = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/killbots-21.08.1.tar.xz";
- sha256 = "02rh60ww43r3zqv3v7zs42j7nl8b5373mykbql80amxnbj5965mn";
- name = "killbots-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/killbots-21.08.2.tar.xz";
+ sha256 = "11cgkx5wpzgzx62frn90h35ga2scrvyxv7sasfsxldf3yiv15m30";
+ name = "killbots-21.08.2.tar.xz";
};
};
kimagemapeditor = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kimagemapeditor-21.08.1.tar.xz";
- sha256 = "1mrf0k923gwy4cfh7g5yv0nnm4kx0j0yk9sz051sbvvbm4hbxqjg";
- name = "kimagemapeditor-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kimagemapeditor-21.08.2.tar.xz";
+ sha256 = "0k1jl5d9qxdg9lrz19vzjbsnpnf236hmckvwy9c620sik0rzpj12";
+ name = "kimagemapeditor-21.08.2.tar.xz";
};
};
kimap = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kimap-21.08.1.tar.xz";
- sha256 = "19b8awcbrn61dwqli10v883i8s18sjz8w335c2sxlhzqgdijgxhl";
- name = "kimap-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kimap-21.08.2.tar.xz";
+ sha256 = "0qdl94zqk0qvy5mcnbhskh7dskcx8g1bkv4qv8zjjj9rz1r2rm2x";
+ name = "kimap-21.08.2.tar.xz";
};
};
kio-extras = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kio-extras-21.08.1.tar.xz";
- sha256 = "0wlgd0cc56gzicgi16nx4592i6f6594d1mvz7d0266xrwmm8n688";
- name = "kio-extras-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kio-extras-21.08.2.tar.xz";
+ sha256 = "0735c9n50qflkcl8j032m84wvb6alv8rr9yfhyzflzv56k8r4034";
+ name = "kio-extras-21.08.2.tar.xz";
};
};
kio-gdrive = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kio-gdrive-21.08.1.tar.xz";
- sha256 = "1vqm8b819hg1yfjlz1x3yis9qkbclahp7l00cpqbxnra0ph9b1vw";
- name = "kio-gdrive-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kio-gdrive-21.08.2.tar.xz";
+ sha256 = "0mbh5ccw3iyfnhqkidds9kq8bm7dwpx5zrnbqi93fach7zmpidk2";
+ name = "kio-gdrive-21.08.2.tar.xz";
};
};
kipi-plugins = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kipi-plugins-21.08.1.tar.xz";
- sha256 = "1w6sw3wn0nj15jv6qp0yg7psg1m87b3izgn303z74vzkhqw04pid";
- name = "kipi-plugins-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kipi-plugins-21.08.2.tar.xz";
+ sha256 = "0ygji1dm6bzyn6f455l1avbw12kl5vdhx1g8lwvgfc51vflv3vxp";
+ name = "kipi-plugins-21.08.2.tar.xz";
};
};
kirigami-gallery = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kirigami-gallery-21.08.1.tar.xz";
- sha256 = "0db1a5czq0xg0dhhmphds5vrz2lq771zwmps7gq6ahpfj01vyavd";
- name = "kirigami-gallery-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kirigami-gallery-21.08.2.tar.xz";
+ sha256 = "1i5aly7pwc39avarqmi8wwzv6bbza5pxaz5v8jm6b57d5mampkn8";
+ name = "kirigami-gallery-21.08.2.tar.xz";
};
};
kiriki = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kiriki-21.08.1.tar.xz";
- sha256 = "0x7iq3y2jc4wykgcyrgm8gmrkvlhs8gsxdl0495n1x1invsnmj00";
- name = "kiriki-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kiriki-21.08.2.tar.xz";
+ sha256 = "1l3sc3fi4b8hc9dyrsi66src52wygckngiwqq8hf4mj2h0hf9s55";
+ name = "kiriki-21.08.2.tar.xz";
};
};
kiten = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kiten-21.08.1.tar.xz";
- sha256 = "1skyfw5bshy6z8xvhs5q9f3c8nwqbm4mc74jcs6yhzc3i4mp82n3";
- name = "kiten-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kiten-21.08.2.tar.xz";
+ sha256 = "12jmsg26y4ldkh5qyz2bzyd14wk401p7kl48m5ngxv95qxw2ix9s";
+ name = "kiten-21.08.2.tar.xz";
};
};
kitinerary = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kitinerary-21.08.1.tar.xz";
- sha256 = "0r7mrcs7gh9ffscksvkh5v78dr2y1nh26p8r8ginafachg32p0mi";
- name = "kitinerary-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kitinerary-21.08.2.tar.xz";
+ sha256 = "1l21q95rszdm1gp1msr9mzlj8ay115dl4cxchhm1mz7w7h53scg3";
+ name = "kitinerary-21.08.2.tar.xz";
};
};
kjumpingcube = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kjumpingcube-21.08.1.tar.xz";
- sha256 = "1kh3jqp3m96lal6salcrqhgzg1pbacx20xn41c1jy272ch57r2jj";
- name = "kjumpingcube-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kjumpingcube-21.08.2.tar.xz";
+ sha256 = "1akg30mz8j6w6dzc43z56siiljblqpah80ghbashq3h2wq3q1lxz";
+ name = "kjumpingcube-21.08.2.tar.xz";
};
};
kldap = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kldap-21.08.1.tar.xz";
- sha256 = "1m92kd6mrz3dxap6rzw0r85wij030a60n10hkgkjkxb8npgvl14g";
- name = "kldap-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kldap-21.08.2.tar.xz";
+ sha256 = "1vc94n9wq1422bp9ky2sapy8wra0gi5gfl6dz0h8wxnxflb28zvw";
+ name = "kldap-21.08.2.tar.xz";
};
};
kleopatra = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kleopatra-21.08.1.tar.xz";
- sha256 = "1j1jd8ivcw2r2nlzzhr24kxcvfp5q1206gpkchd5mvsl6q34fmzx";
- name = "kleopatra-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kleopatra-21.08.2.tar.xz";
+ sha256 = "1ym40xxwl9qqz8sbsck606vzxys5qhkca8g23gqn3sxx3kk8zpn9";
+ name = "kleopatra-21.08.2.tar.xz";
};
};
klettres = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/klettres-21.08.1.tar.xz";
- sha256 = "0scgccwsma1hc1zp52h4rqddwizsqzwsh6gql5lf4qxhr8ihgj4m";
- name = "klettres-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/klettres-21.08.2.tar.xz";
+ sha256 = "1n3qw190nznz0h4l68iy9azky57f8pflx10dihhl541jspgga5lg";
+ name = "klettres-21.08.2.tar.xz";
};
};
klickety = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/klickety-21.08.1.tar.xz";
- sha256 = "0r8dr4blwv1l6b8585qw7q258qr9pgk97pmrfmpssb90yxni2c1c";
- name = "klickety-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/klickety-21.08.2.tar.xz";
+ sha256 = "1vi4xx4y7s225b3vgi2z8l1d5z4fgz3v5jfg4zq6v1pis46zpmwz";
+ name = "klickety-21.08.2.tar.xz";
};
};
klines = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/klines-21.08.1.tar.xz";
- sha256 = "1iyk91spsnfrkbjyf6jng6rgximcav2zf2xqkq1q2vvyhwwpchn6";
- name = "klines-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/klines-21.08.2.tar.xz";
+ sha256 = "1gxaadl8gnbaliwbnr6ychp1da5dgppk58jgv5z0zngacwy80d97";
+ name = "klines-21.08.2.tar.xz";
};
};
kmag = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmag-21.08.1.tar.xz";
- sha256 = "1hdjcya1jv6adz0d9hp1sq7y8f6fvzpw30fchmjkdm9y2kf8il6c";
- name = "kmag-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmag-21.08.2.tar.xz";
+ sha256 = "0y68vg95fjhfsjvvn2i214jrv06f6811j1asjxrgvwcmwdf0fnc0";
+ name = "kmag-21.08.2.tar.xz";
};
};
kmahjongg = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmahjongg-21.08.1.tar.xz";
- sha256 = "1wrzyiv07cffn5xiachqa8k9spcsi3iwvdj6prgbgdndbffw2gim";
- name = "kmahjongg-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmahjongg-21.08.2.tar.xz";
+ sha256 = "1fx4almqcz8x3pzbrjv9yd9kfb7akrfy45z7idhyb31dkdaxi40w";
+ name = "kmahjongg-21.08.2.tar.xz";
};
};
kmail = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmail-21.08.1.tar.xz";
- sha256 = "08q7c8l2nfrvw5xgc2dzcmidcpsjfya3jjnssziy3hpznmf8jpjr";
- name = "kmail-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmail-21.08.2.tar.xz";
+ sha256 = "0way147xqjhapswdfqnnvav8dk41lf2050jzmd6jz7qj0dina977";
+ name = "kmail-21.08.2.tar.xz";
};
};
kmail-account-wizard = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmail-account-wizard-21.08.1.tar.xz";
- sha256 = "1xqm4737p5l5cwqlnn7xladz4yna7aghl84hlbvzrfcc72v5xkal";
- name = "kmail-account-wizard-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmail-account-wizard-21.08.2.tar.xz";
+ sha256 = "0ac4p9jy3n45i0aj0fn2151pdbjmvkzyr3qlzdidzf386y7m7y9b";
+ name = "kmail-account-wizard-21.08.2.tar.xz";
};
};
kmailtransport = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmailtransport-21.08.1.tar.xz";
- sha256 = "0zd03s4848n3g1w8fm0q3kq5sy91zhjw3hc2w6ncv6cgbb9s50dv";
- name = "kmailtransport-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmailtransport-21.08.2.tar.xz";
+ sha256 = "0q76wanhby9gb9c07z8gpkmdqn6rv82bh6fz182m7bdzkqh4rbxx";
+ name = "kmailtransport-21.08.2.tar.xz";
};
};
kmbox = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmbox-21.08.1.tar.xz";
- sha256 = "027x76lrjssrhqpr651fyqqkdv6jmiad901cssv7w54r2dpzs6w3";
- name = "kmbox-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmbox-21.08.2.tar.xz";
+ sha256 = "055vx2cr9zqab887grjans5cassh2g86r1lcn64jb61sh1cvzj7y";
+ name = "kmbox-21.08.2.tar.xz";
};
};
kmime = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmime-21.08.1.tar.xz";
- sha256 = "0prsmiv0g6icclhv7mkha66pddmdqz2mi69njz0xwz6m3ax068jw";
- name = "kmime-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmime-21.08.2.tar.xz";
+ sha256 = "1dg0vm576gqvj7ia80zcdyf9cyg3fzvj7j3fkxx79mw17binlzg4";
+ name = "kmime-21.08.2.tar.xz";
};
};
kmines = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmines-21.08.1.tar.xz";
- sha256 = "0nx07cghq20rja8rncrayx87v357s036whdfyzc6qkhdmlmkh6qj";
- name = "kmines-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmines-21.08.2.tar.xz";
+ sha256 = "0vzspy446pwbd04zyq7x0s7q6nrhmdnzq3jfvv6nnazhjmxpfafv";
+ name = "kmines-21.08.2.tar.xz";
};
};
kmix = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmix-21.08.1.tar.xz";
- sha256 = "0jc0b1j32gg7az0z7m1cvfdjrwss4q91hm1cfhrk5fq12620vivf";
- name = "kmix-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmix-21.08.2.tar.xz";
+ sha256 = "1srv1alrq2w87rmv9jriz1y37rb0fp7w14291ky64gf23phwmfdq";
+ name = "kmix-21.08.2.tar.xz";
};
};
kmousetool = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmousetool-21.08.1.tar.xz";
- sha256 = "04a5zrxg48svrvdf8gf3qc7cj7cayzhw0q4l1v8nzs2ykc330xq1";
- name = "kmousetool-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmousetool-21.08.2.tar.xz";
+ sha256 = "1b09z6793zjjspcrhz4f1vxk3zbs4qdrkdp59q61i7ganm49znma";
+ name = "kmousetool-21.08.2.tar.xz";
};
};
kmouth = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmouth-21.08.1.tar.xz";
- sha256 = "1rmqppmjjcrc7xp63csdgp440f003nia6hcnixxlya8pwn90bpwr";
- name = "kmouth-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmouth-21.08.2.tar.xz";
+ sha256 = "1b9bc0vnqihaqa4wfa9sqcrq92q1kyw0w1ikkx3pb8rzdzkk4cv2";
+ name = "kmouth-21.08.2.tar.xz";
};
};
kmplot = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kmplot-21.08.1.tar.xz";
- sha256 = "0mkcrdg0v98hdy5lgkyfv4x019w4sm7yiyfpryhx1wiqcpibxwl1";
- name = "kmplot-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kmplot-21.08.2.tar.xz";
+ sha256 = "0p81x7qlpj1b84wzqqb7sxmbmnxfys0clg1k07d2hw4rb8gisgic";
+ name = "kmplot-21.08.2.tar.xz";
};
};
knavalbattle = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/knavalbattle-21.08.1.tar.xz";
- sha256 = "1lvq223jspc5y0z6qaf648m85a58yp88b0jm8510p77ymxhyvgm7";
- name = "knavalbattle-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/knavalbattle-21.08.2.tar.xz";
+ sha256 = "0zhp8zmnsjv1ainlc98waixv2p05w8jh91clb8747rc8x4k3phxk";
+ name = "knavalbattle-21.08.2.tar.xz";
};
};
knetwalk = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/knetwalk-21.08.1.tar.xz";
- sha256 = "1akv78yaym474b57d9qxqp3vivs405m1zm6x0plf2g1adp93myz2";
- name = "knetwalk-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/knetwalk-21.08.2.tar.xz";
+ sha256 = "1jb6w790jfngifhgp4clgakiacw0lbn40jnj00zlzcg751vl6ajl";
+ name = "knetwalk-21.08.2.tar.xz";
};
};
knights = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/knights-21.08.1.tar.xz";
- sha256 = "1m00nryw69k4dyb0vvnjz3fwasf67ghkq78l7k8ck9vvzrihmwd1";
- name = "knights-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/knights-21.08.2.tar.xz";
+ sha256 = "0v72niszn93671c4313f3cz2y8wq5nsww0c4irsbz9jpivcq080z";
+ name = "knights-21.08.2.tar.xz";
};
};
knotes = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/knotes-21.08.1.tar.xz";
- sha256 = "1av537f02zsz72mqkzlcrv977kf96nrdwsj4fx7kmdbhf5x9rvgv";
- name = "knotes-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/knotes-21.08.2.tar.xz";
+ sha256 = "1g3rmkpwbicga09qwhxn47rhiv9rfaacpzapsrhddh63831bl999";
+ name = "knotes-21.08.2.tar.xz";
};
};
kolf = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kolf-21.08.1.tar.xz";
- sha256 = "15wk2c2pzpg39hv6s1b80mf5l7gkbxlprahjq6wh6f6a5hm3wkxb";
- name = "kolf-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kolf-21.08.2.tar.xz";
+ sha256 = "1dziji28syv7rirm959ahcch6696sc4y6pnfp40v11j1pw58jm8p";
+ name = "kolf-21.08.2.tar.xz";
};
};
kollision = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kollision-21.08.1.tar.xz";
- sha256 = "15ddxccj29094lxrihchc17x2a2xnjk790dqhfja9d235vkg3lpb";
- name = "kollision-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kollision-21.08.2.tar.xz";
+ sha256 = "04hb91gqy58lvhwy0hx27xcd1pvqm378lcavswh7b142f63mhmjf";
+ name = "kollision-21.08.2.tar.xz";
};
};
kolourpaint = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kolourpaint-21.08.1.tar.xz";
- sha256 = "0vjssni7c8dx1617gsnkp8dip92agys8n1ydzdly6jpwhvlr382a";
- name = "kolourpaint-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kolourpaint-21.08.2.tar.xz";
+ sha256 = "0p64dp63m8ycy5qrgd6fdgf670y5iqdyw4gjbkwphg01qp8kpj6d";
+ name = "kolourpaint-21.08.2.tar.xz";
};
};
kompare = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kompare-21.08.1.tar.xz";
- sha256 = "0sigh2c91ff7r6yclx18lcwqbwh4gbj55n5fjpd1fw9rb7xf9j3n";
- name = "kompare-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kompare-21.08.2.tar.xz";
+ sha256 = "14bbqxdzj67g2m6zmz28ax6v4bzz9nmyy45flqzm8jqvq9afqb1d";
+ name = "kompare-21.08.2.tar.xz";
};
};
konqueror = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/konqueror-21.08.1.tar.xz";
- sha256 = "155dc8nd3kgr25wpjisnp9z2jr1f31vcnm8ywa98p4i59kaaxh7h";
- name = "konqueror-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/konqueror-21.08.2.tar.xz";
+ sha256 = "0v5l1nqa0fm4q17l0rncriwyvkgq0pdg2q4kjc92kvvdvrpm3jjp";
+ name = "konqueror-21.08.2.tar.xz";
};
};
konquest = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/konquest-21.08.1.tar.xz";
- sha256 = "0i0pm5zq2ipm1ipsam19c771v16bxlhilidny336rzwfa1vik0zl";
- name = "konquest-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/konquest-21.08.2.tar.xz";
+ sha256 = "0shky9cys79prdgr6bcmi50gvfmqr0famdq6gqacv9krbja4pl20";
+ name = "konquest-21.08.2.tar.xz";
};
};
konsole = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/konsole-21.08.1.tar.xz";
- sha256 = "0v74yrblwakbmy0p4x5j9lhmqyavgsffahr51bh5r5qcgx0cafjv";
- name = "konsole-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/konsole-21.08.2.tar.xz";
+ sha256 = "1lhpgags85y0s5p44dpa2k0b9vq46m7h19pha59w1wy72an884ig";
+ name = "konsole-21.08.2.tar.xz";
};
};
kontact = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kontact-21.08.1.tar.xz";
- sha256 = "1aqyrkmc7hnzja1spm75ybrb9c3yg37rklcgdr7myyyhjxmvnrzg";
- name = "kontact-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kontact-21.08.2.tar.xz";
+ sha256 = "1a7d7xfby796kk9hbqqnnhjnn5yvk99hglm4270azlcgbjxf4s2j";
+ name = "kontact-21.08.2.tar.xz";
};
};
kontactinterface = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kontactinterface-21.08.1.tar.xz";
- sha256 = "1l251rw80c329sgrv25r8cn242v0kl7pvcfv9xkakql7dw707xs9";
- name = "kontactinterface-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kontactinterface-21.08.2.tar.xz";
+ sha256 = "0wavclk0z55z8xmqiq6wjhlf2byiggmj9fr5kwdk8wsjfj30npwg";
+ name = "kontactinterface-21.08.2.tar.xz";
};
};
kontrast = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kontrast-21.08.1.tar.xz";
- sha256 = "05nw7z05maxpcr37andv60fn9s8kprz474bkza980ah05xzvkkvb";
- name = "kontrast-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kontrast-21.08.2.tar.xz";
+ sha256 = "12pmkkgrj848whwfz523ciix2a4dm3wgw1vva30svyvlv6qyrgwa";
+ name = "kontrast-21.08.2.tar.xz";
};
};
konversation = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/konversation-21.08.1.tar.xz";
- sha256 = "0v3nvyjc13jav8x9krg9sd9p533j7ndan0fqb5p0virwk1dznvfy";
- name = "konversation-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/konversation-21.08.2.tar.xz";
+ sha256 = "1blaxxpp0831frw2v4ylvq23ffyqabbq1zcqj0v4kq736acdl8pa";
+ name = "konversation-21.08.2.tar.xz";
};
};
kopeninghours = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kopeninghours-21.08.1.tar.xz";
- sha256 = "09yskjfkr190vkp8xgj2hicfyg1mx9mqm7pgn4133qfn08xh52vd";
- name = "kopeninghours-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kopeninghours-21.08.2.tar.xz";
+ sha256 = "1g4g3hc0zpklnw8an49dk25zfw740w4slkm52191q2ajymp589l0";
+ name = "kopeninghours-21.08.2.tar.xz";
};
};
kopete = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kopete-21.08.1.tar.xz";
- sha256 = "131nic6w1bzc0l94b8jkzac2dckaz64y2fgplyiqjidicm0cyrd1";
- name = "kopete-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kopete-21.08.2.tar.xz";
+ sha256 = "015pjfc5kxhm5nmjv8fx4jlczp0l3vhqrkxgfvq83a200nlvg2pm";
+ name = "kopete-21.08.2.tar.xz";
};
};
korganizer = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/korganizer-21.08.1.tar.xz";
- sha256 = "0x05i3c0nj46bnnd7msz1rpghbr2p6sywfsa15d6l1j72i2ay0vr";
- name = "korganizer-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/korganizer-21.08.2.tar.xz";
+ sha256 = "0izrzg5xxqgz0wq0vkv1i1xcf0xnzgfwixy8f4gcvihpqxyvixb7";
+ name = "korganizer-21.08.2.tar.xz";
};
};
kosmindoormap = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kosmindoormap-21.08.1.tar.xz";
- sha256 = "1v31cik859b994xka37z0l86nd0crykbsnafyxpmqdzf942ixixb";
- name = "kosmindoormap-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kosmindoormap-21.08.2.tar.xz";
+ sha256 = "0yf4n48x041wl07f575hzqdkn1qmx3idpxswinsk9r8zdr2dwch7";
+ name = "kosmindoormap-21.08.2.tar.xz";
};
};
kpat = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kpat-21.08.1.tar.xz";
- sha256 = "1dxihma5mad2kbg7wzfbnaq3gmgwav70rqrj5fpji42pvlqx4vyn";
- name = "kpat-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kpat-21.08.2.tar.xz";
+ sha256 = "16cj3w4cibar1q12wam3i623kzddhl39ychvi3nphlni5cmr4x42";
+ name = "kpat-21.08.2.tar.xz";
};
};
kpimtextedit = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kpimtextedit-21.08.1.tar.xz";
- sha256 = "1zaavf0gpaibk22fz8ij0fqrlp18lj07hgdg6ynhdmhamw59sfr5";
- name = "kpimtextedit-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kpimtextedit-21.08.2.tar.xz";
+ sha256 = "0v479g998amh822lxr0l2d9xhlrwbij9prlrn1z9y9al056cic7h";
+ name = "kpimtextedit-21.08.2.tar.xz";
};
};
kpkpass = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kpkpass-21.08.1.tar.xz";
- sha256 = "0z8dk548awy37iq8zz41x2wm2i9bhpfa2g0ghlwvhj7sy97ap1vk";
- name = "kpkpass-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kpkpass-21.08.2.tar.xz";
+ sha256 = "003rmp8svnz74qfd3727l7p5wj56j9x8w3dwk19ysyklh2rbaj2p";
+ name = "kpkpass-21.08.2.tar.xz";
};
};
kpmcore = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kpmcore-21.08.1.tar.xz";
- sha256 = "1aw21x70kgm1dmhqr384k6rbsd1fx70zd94i0slq5zyf37zx6b9l";
- name = "kpmcore-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kpmcore-21.08.2.tar.xz";
+ sha256 = "0rn8x0add1qflsbgppmhz1zbnjvy39d5wckxga0vmhdix2m3d60g";
+ name = "kpmcore-21.08.2.tar.xz";
};
};
kpublictransport = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kpublictransport-21.08.1.tar.xz";
- sha256 = "1dbbsdrzhqaiz6d4hlyy1f50m6hi0arafxrxr65gh9h4zs2ym4qs";
- name = "kpublictransport-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kpublictransport-21.08.2.tar.xz";
+ sha256 = "1g4k1wxhvjya0k79ysr92kq37fbdfly5qdrmp11apvar4la4xmr8";
+ name = "kpublictransport-21.08.2.tar.xz";
};
};
kqtquickcharts = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kqtquickcharts-21.08.1.tar.xz";
- sha256 = "0ghmxzy3jqzy3zdpp5zhjv3mcq6micnnk1jhnlq03v4z981rrs6h";
- name = "kqtquickcharts-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kqtquickcharts-21.08.2.tar.xz";
+ sha256 = "04cxw88lv7mj74znzfl3m9jzks11z837y3bch40qdn8ysk9wqjhn";
+ name = "kqtquickcharts-21.08.2.tar.xz";
};
};
krdc = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/krdc-21.08.1.tar.xz";
- sha256 = "038m7wgpg33sqqqq7iy4rvficsi7x2012rimxb1gn2azg5kcwk6v";
- name = "krdc-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/krdc-21.08.2.tar.xz";
+ sha256 = "0zrpfbs4r0d4wnficmhn0av7877hbrl4jvxpi0qiy2gdc7zksnbd";
+ name = "krdc-21.08.2.tar.xz";
};
};
kreversi = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kreversi-21.08.1.tar.xz";
- sha256 = "1gh7zhqzyh2m34v3gyb902c6cvw33rbib5g8p3dwsmm5v2bfgggj";
- name = "kreversi-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kreversi-21.08.2.tar.xz";
+ sha256 = "18z2aclpd0xln1n442jg13n5j2yip6dldfvd5z56g7n23l9paywq";
+ name = "kreversi-21.08.2.tar.xz";
};
};
krfb = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/krfb-21.08.1.tar.xz";
- sha256 = "0l28l9wmfxf6vihxr86pwxj027fkz0k0pwkif8had0s4swc9jfnx";
- name = "krfb-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/krfb-21.08.2.tar.xz";
+ sha256 = "1hn21d0cp2k6zair2wwf492y0ip69f1b5axaaz9fqgmgqn0l47qb";
+ name = "krfb-21.08.2.tar.xz";
};
};
kross-interpreters = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kross-interpreters-21.08.1.tar.xz";
- sha256 = "1fznrng6mz9s8ynzr48p05n6akkmzn3fifbgpxs98nhzlz2ay574";
- name = "kross-interpreters-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kross-interpreters-21.08.2.tar.xz";
+ sha256 = "07f153ib1gmbfnkchzymvwlng3sgn28zspxkrx75g8xa5jszwwym";
+ name = "kross-interpreters-21.08.2.tar.xz";
};
};
kruler = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kruler-21.08.1.tar.xz";
- sha256 = "0l78hk7zjwjxba094gjvajh32v4avdc80h5r0rv94k2r3gckfjv4";
- name = "kruler-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kruler-21.08.2.tar.xz";
+ sha256 = "082z14vcp1ww42jrlxl128gp6y5iqrz360cipvj4xph4q7lpgb0r";
+ name = "kruler-21.08.2.tar.xz";
};
};
kshisen = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kshisen-21.08.1.tar.xz";
- sha256 = "107y828nkdzza5hi68pxxk5gp017dy2yxdmmhmg6ylppk5gfp6dp";
- name = "kshisen-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kshisen-21.08.2.tar.xz";
+ sha256 = "12mi59n8sm7wqf53wbi2nlh4d2i673x93rlqz6qxkaqznlpf7lrr";
+ name = "kshisen-21.08.2.tar.xz";
};
};
ksirk = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ksirk-21.08.1.tar.xz";
- sha256 = "0l6bfpima9whgfdkbghhfh36p6kjs8j26gz5zc7r8fcswv66ya21";
- name = "ksirk-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ksirk-21.08.2.tar.xz";
+ sha256 = "1j6nzyl3ppi68d1y84yals0y90km5mxzz4x44frn3k3bb1n1imzc";
+ name = "ksirk-21.08.2.tar.xz";
};
};
ksmtp = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ksmtp-21.08.1.tar.xz";
- sha256 = "0pl167gjhpmdvhsjm6hcygxwjs8v1z4xfc7x0c69bac8rdrzrlb6";
- name = "ksmtp-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ksmtp-21.08.2.tar.xz";
+ sha256 = "08bdi23qwvayl9w1nsfgpxpxmxrw820qcmvw03ivdk1h7m6sl3yh";
+ name = "ksmtp-21.08.2.tar.xz";
};
};
ksnakeduel = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ksnakeduel-21.08.1.tar.xz";
- sha256 = "1jk4mdxg2b1aa1686rimhjqh91ijaf8n7fahvswwbl473zfjf748";
- name = "ksnakeduel-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ksnakeduel-21.08.2.tar.xz";
+ sha256 = "0n7digcymwrcg24y2libp0x67s1rj2qmps4yzp2bxpgasx9pf6ik";
+ name = "ksnakeduel-21.08.2.tar.xz";
};
};
kspaceduel = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kspaceduel-21.08.1.tar.xz";
- sha256 = "0q2mpidkhgjz3nm88j3m8wdb06y3m8ixr0540q0s9i9d997jdkch";
- name = "kspaceduel-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kspaceduel-21.08.2.tar.xz";
+ sha256 = "1gjb23dw8fh61b7s23b2bfkgcfxqvndrv1x7lkk2bpi4i4g6sqz3";
+ name = "kspaceduel-21.08.2.tar.xz";
};
};
ksquares = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ksquares-21.08.1.tar.xz";
- sha256 = "0z7h5vig5zablvdlv7lanmsjjbqq931pqjyynm75mygrrbavgcfq";
- name = "ksquares-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ksquares-21.08.2.tar.xz";
+ sha256 = "10sl49mjjlpqyh6f930iz1nncy2dqzm1b8hksn8zxz5kwi2gvfrc";
+ name = "ksquares-21.08.2.tar.xz";
};
};
ksudoku = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ksudoku-21.08.1.tar.xz";
- sha256 = "0aax14xwg42wr8g563nbpn7m55gs4k50kwk0zn79pf62i78g10lp";
- name = "ksudoku-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ksudoku-21.08.2.tar.xz";
+ sha256 = "15svd1paf1hx5aqmdrh6bcdag7k8iq18fpjflk3vkkip6s76lrv6";
+ name = "ksudoku-21.08.2.tar.xz";
};
};
ksystemlog = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ksystemlog-21.08.1.tar.xz";
- sha256 = "1vv0wbb3npbq8r0mq8y5lc36qx1hxdjxygfcnw2h9hm4dwl8mc5v";
- name = "ksystemlog-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ksystemlog-21.08.2.tar.xz";
+ sha256 = "1qnnhbi75glgvcvpmpy5zrq6x6hygl7r7v4h99lfm48jdfpyxilj";
+ name = "ksystemlog-21.08.2.tar.xz";
};
};
kteatime = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kteatime-21.08.1.tar.xz";
- sha256 = "0gjnvcvrnb3049ln64chnjgr7xm722ighjscxxhqz61i872dgb72";
- name = "kteatime-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kteatime-21.08.2.tar.xz";
+ sha256 = "02vkh3dyacba9x0zl8j8g8isj50h8wz7mjnfqgxc67azcwwx41sp";
+ name = "kteatime-21.08.2.tar.xz";
};
};
ktimer = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktimer-21.08.1.tar.xz";
- sha256 = "1l79yrg6g78gf8av1h6yr4mxyd1n63g4r38qp4csvpnjpx7y8ijd";
- name = "ktimer-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktimer-21.08.2.tar.xz";
+ sha256 = "0rfmrh7i8c23r6wdyh4w55980vlj2p127mbpiw5brj4dazdjll5x";
+ name = "ktimer-21.08.2.tar.xz";
};
};
ktnef = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktnef-21.08.1.tar.xz";
- sha256 = "08wk4ssasqqixwnp59smv64c8m4jf89vpcwc3zvz4h92sfk0pk33";
- name = "ktnef-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktnef-21.08.2.tar.xz";
+ sha256 = "05l4g38f2m3qjl6q45j12zarpazsizjl2pyqh87vhaxgnf4fbqqp";
+ name = "ktnef-21.08.2.tar.xz";
};
};
ktorrent = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktorrent-21.08.1.tar.xz";
- sha256 = "1r7w43ns4zy94y82dbghrjgqv1sbdj01rni0iijirzjjikr5av9m";
- name = "ktorrent-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktorrent-21.08.2.tar.xz";
+ sha256 = "1nd72jcvsc0kabd23ddy93dxp59ihg5npa8r3vbzvic89xlpkivi";
+ name = "ktorrent-21.08.2.tar.xz";
};
};
ktouch = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktouch-21.08.1.tar.xz";
- sha256 = "00pyrp00dqbanb2w0cxmxh8aahih714q85prjij6iy5sv0917zr7";
- name = "ktouch-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktouch-21.08.2.tar.xz";
+ sha256 = "16r3hj160y1517dk1nzvikwkjlfbzmjpx54k9jc98csaplbv683l";
+ name = "ktouch-21.08.2.tar.xz";
};
};
ktp-accounts-kcm = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-accounts-kcm-21.08.1.tar.xz";
- sha256 = "0pn8g5w4p2synwfskw9m805nj2wk9g7yff423243qc3fxl572sv8";
- name = "ktp-accounts-kcm-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-accounts-kcm-21.08.2.tar.xz";
+ sha256 = "0fxlkbx8kzlbfyfj7ac6m0y6vc80n3nlm5skrq106vbm1nnh565p";
+ name = "ktp-accounts-kcm-21.08.2.tar.xz";
};
};
ktp-approver = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-approver-21.08.1.tar.xz";
- sha256 = "1q2rsg9520ra7ap3ipvv0sdyc2mzbzap2ygzkwbm80fpspl6b973";
- name = "ktp-approver-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-approver-21.08.2.tar.xz";
+ sha256 = "1pbc2f477xysv707j1xbcw799pxas31j5cmf26wrkbjmzxh5nhnd";
+ name = "ktp-approver-21.08.2.tar.xz";
};
};
ktp-auth-handler = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-auth-handler-21.08.1.tar.xz";
- sha256 = "0yzh2sqsyic3d979mj3m8d9m42y37w3h2s7gsyifw08gf5sna48p";
- name = "ktp-auth-handler-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-auth-handler-21.08.2.tar.xz";
+ sha256 = "1fwzm15s8q8h47kfqw4jz2vfv81fc4azxg7c9r4vvlh23grlzbx8";
+ name = "ktp-auth-handler-21.08.2.tar.xz";
};
};
ktp-call-ui = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-call-ui-21.08.1.tar.xz";
- sha256 = "0m8x3mfhy5rnv9wp15zrl5fiwdkm66pc8szkncqnjxw2nv721s3m";
- name = "ktp-call-ui-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-call-ui-21.08.2.tar.xz";
+ sha256 = "0d4iaqpl67w3q7rrk2h9glq91ha03hvnrywi6271nc4892r4b2ys";
+ name = "ktp-call-ui-21.08.2.tar.xz";
};
};
ktp-common-internals = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-common-internals-21.08.1.tar.xz";
- sha256 = "12jcfr3cvyhzn62jnlnfmp39wyxa06bih4qz8gxzv56nl434qzv0";
- name = "ktp-common-internals-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-common-internals-21.08.2.tar.xz";
+ sha256 = "1jc8dv4563y4xlx13sz07lmkfnxraidqpxq08plapkliq56hv2xd";
+ name = "ktp-common-internals-21.08.2.tar.xz";
};
};
ktp-contact-list = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-contact-list-21.08.1.tar.xz";
- sha256 = "1d4d0bvi9c813c3gyws3gc8zca1az2f3ych2r1cgpdhhbqjrf3wl";
- name = "ktp-contact-list-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-contact-list-21.08.2.tar.xz";
+ sha256 = "1glh9np0q82x9z7pb3xzvq1mwmfggzq8lc5in1lhhjzhpnla2n21";
+ name = "ktp-contact-list-21.08.2.tar.xz";
};
};
ktp-contact-runner = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-contact-runner-21.08.1.tar.xz";
- sha256 = "0l2qimrpfnpmhvspgv62y8a7hsbw4abz92n1xry040qmkfqzv2l7";
- name = "ktp-contact-runner-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-contact-runner-21.08.2.tar.xz";
+ sha256 = "15xvw84c4ygz1zz3qkjmxfjrkczwrdwdmls5a4bc4d4i78df8v4m";
+ name = "ktp-contact-runner-21.08.2.tar.xz";
};
};
ktp-desktop-applets = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-desktop-applets-21.08.1.tar.xz";
- sha256 = "03si91agdjascs6ri0g5zrhicjzx24p6kh2ni1d96k5sc7alwxnl";
- name = "ktp-desktop-applets-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-desktop-applets-21.08.2.tar.xz";
+ sha256 = "09bli0hhibwhia5zsprf1mv2li344lcqjq6pkirzz8h2dr1nr2s5";
+ name = "ktp-desktop-applets-21.08.2.tar.xz";
};
};
ktp-filetransfer-handler = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-filetransfer-handler-21.08.1.tar.xz";
- sha256 = "08dklgklc31fvcdi3917lh77gr58y75f1di0xhjf6jq8vxplqjd8";
- name = "ktp-filetransfer-handler-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-filetransfer-handler-21.08.2.tar.xz";
+ sha256 = "0g0w1ayj3m6lkmy71xqvfg829rk9y5z98h6rnim3ag9yx44namzw";
+ name = "ktp-filetransfer-handler-21.08.2.tar.xz";
};
};
ktp-kded-module = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-kded-module-21.08.1.tar.xz";
- sha256 = "1135hh82ivvbpks9k39baisrq053570yq2x851j4vb2qrxg000yg";
- name = "ktp-kded-module-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-kded-module-21.08.2.tar.xz";
+ sha256 = "1rx79zqqk2gl2qi28q429ss63kyndfzs24mdrn4491hsbln0sv1x";
+ name = "ktp-kded-module-21.08.2.tar.xz";
};
};
ktp-send-file = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-send-file-21.08.1.tar.xz";
- sha256 = "1fnn5m9spa0x8nw1rx94x85hy06qwkb1fl5l498rmhyzikhxmhqp";
- name = "ktp-send-file-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-send-file-21.08.2.tar.xz";
+ sha256 = "1791zhp5rpwizx3y48hgamk7pgbx2yk650nczxbnza828m1lxzab";
+ name = "ktp-send-file-21.08.2.tar.xz";
};
};
ktp-text-ui = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktp-text-ui-21.08.1.tar.xz";
- sha256 = "0cfnf688jz5953x7jxjrdlfs96rxjcfzvasrc881y1aprav1dmjq";
- name = "ktp-text-ui-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktp-text-ui-21.08.2.tar.xz";
+ sha256 = "1pinn61dkb2jcyzms3kf70sxjbkd3pkn6cxvxs8zsj1m1bdkydym";
+ name = "ktp-text-ui-21.08.2.tar.xz";
};
};
ktuberling = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/ktuberling-21.08.1.tar.xz";
- sha256 = "1f3a74nfh4fhxibcfxgjdj6phy185iz6y9nfg3pag3jvqsn8nx49";
- name = "ktuberling-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/ktuberling-21.08.2.tar.xz";
+ sha256 = "0h7vhvh03w11dr17zxdmb5j2vz8flwahvz70h9kw8a63sxpw0x6f";
+ name = "ktuberling-21.08.2.tar.xz";
};
};
kturtle = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kturtle-21.08.1.tar.xz";
- sha256 = "15ng6k6xfaj37dvycm29pj2pk73yfr66pp0wgj719c0kq7c9avdp";
- name = "kturtle-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kturtle-21.08.2.tar.xz";
+ sha256 = "1f3iw3fk4l8q2jnnadaqjbj6jzmw86ibf0p515x4rrqz4l8m6plg";
+ name = "kturtle-21.08.2.tar.xz";
};
};
kubrick = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kubrick-21.08.1.tar.xz";
- sha256 = "03i0b24mmq3jqf7812a9sjr8lr82mq9mrq75z2a9h62jinvxvigj";
- name = "kubrick-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kubrick-21.08.2.tar.xz";
+ sha256 = "0kvd8dsg9hdgid70jd5b1vngqpmi9rigkvxl2v4h2ps1ziqqxa78";
+ name = "kubrick-21.08.2.tar.xz";
};
};
kwalletmanager = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kwalletmanager-21.08.1.tar.xz";
- sha256 = "1a4aiajq04rlm566jwqwjq2b6sfamnabfrjfa80pld3qcmq0l1mz";
- name = "kwalletmanager-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kwalletmanager-21.08.2.tar.xz";
+ sha256 = "134690b4bhkjczwxg8776163aggwrqmb84xkvb7612wgs5jygyib";
+ name = "kwalletmanager-21.08.2.tar.xz";
};
};
kwave = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kwave-21.08.1.tar.xz";
- sha256 = "1dl7kn67hp9y39xlnq989kg743295a23kbpjpvbjashgdqy3hqwl";
- name = "kwave-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kwave-21.08.2.tar.xz";
+ sha256 = "0sivhgcypwpdi6g0mkdzf1k2hqkj1vj4b5cdcvn8chs2gk9pisgh";
+ name = "kwave-21.08.2.tar.xz";
};
};
kwordquiz = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/kwordquiz-21.08.1.tar.xz";
- sha256 = "1mzdmgls07bb6k2x6qb1xzp04jpfifdrka2k6kzwy9bq071gs7q5";
- name = "kwordquiz-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/kwordquiz-21.08.2.tar.xz";
+ sha256 = "1prj7iz71z8zy2ynjad7yqkgswg96q4hmc76kg1lvahn2waikr0y";
+ name = "kwordquiz-21.08.2.tar.xz";
};
};
libgravatar = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libgravatar-21.08.1.tar.xz";
- sha256 = "08xl8nb0bn6zf9sh7sn4v7aa86ffqb16hixci4ymixyxy5c4gwbv";
- name = "libgravatar-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libgravatar-21.08.2.tar.xz";
+ sha256 = "047fbdj02rnb7bn2vn9lava2mh4ypzlyd8iiri4mbpd686lmi0s1";
+ name = "libgravatar-21.08.2.tar.xz";
};
};
libkcddb = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkcddb-21.08.1.tar.xz";
- sha256 = "08841rssxcg9vi490qih8jxnalnbjd2wqsgcq22gkm1ahfj5dizq";
- name = "libkcddb-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkcddb-21.08.2.tar.xz";
+ sha256 = "03az77p3p0c0shzi2y2n5721gppzgrq469afvpjppria1n3ks5d2";
+ name = "libkcddb-21.08.2.tar.xz";
};
};
libkcompactdisc = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkcompactdisc-21.08.1.tar.xz";
- sha256 = "1q838md6kqvjmc61sy943lqgv5isll2px1s0izyvvxkf747hcpin";
- name = "libkcompactdisc-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkcompactdisc-21.08.2.tar.xz";
+ sha256 = "0sjr8gdbqsjlggxax0l2bxn42l9znplrjiln15izj2zwfkah7d69";
+ name = "libkcompactdisc-21.08.2.tar.xz";
};
};
libkdcraw = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkdcraw-21.08.1.tar.xz";
- sha256 = "17ijpgljhrm851mdnd1znjpa7hidmv1d5d05q68r6lp1aclcgmwm";
- name = "libkdcraw-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkdcraw-21.08.2.tar.xz";
+ sha256 = "0yhcrzl7piginz19vmyg63154j9rrqxfvfchn9k8g9jiddwnjfd8";
+ name = "libkdcraw-21.08.2.tar.xz";
};
};
libkdegames = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkdegames-21.08.1.tar.xz";
- sha256 = "0vfx3ksy6z5h4hjx0dl3fr3phfz3q590h86ksbp5q20lyylmdpji";
- name = "libkdegames-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkdegames-21.08.2.tar.xz";
+ sha256 = "0jbb4h515c9h08r7dqaslqgrpmb6f08ai46phwgipd67jzgh6wh7";
+ name = "libkdegames-21.08.2.tar.xz";
};
};
libkdepim = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkdepim-21.08.1.tar.xz";
- sha256 = "10zb97zf1jidh9q6dkn8cjs9f4gqz2xn6yqylsbq0bjlycv991fh";
- name = "libkdepim-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkdepim-21.08.2.tar.xz";
+ sha256 = "1j8nkfgzixpchz34p338mcm87f112ddy1linhaczg5fal1brangh";
+ name = "libkdepim-21.08.2.tar.xz";
};
};
libkeduvocdocument = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkeduvocdocument-21.08.1.tar.xz";
- sha256 = "0wnyx7h284g6wssnfdfz4m0hcb0rc6fnlryav8vnjcyzz7p5ni6l";
- name = "libkeduvocdocument-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkeduvocdocument-21.08.2.tar.xz";
+ sha256 = "051mzwbrlpvjnqphf01nzzc76zbz9hasd57sn6y6x8cviflf7kmy";
+ name = "libkeduvocdocument-21.08.2.tar.xz";
};
};
libkexiv2 = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkexiv2-21.08.1.tar.xz";
- sha256 = "0wnpkzivb5f5z3d1dn5952cx07q8nw421xrs21r57cmbsss344xa";
- name = "libkexiv2-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkexiv2-21.08.2.tar.xz";
+ sha256 = "0spa6pbr6rpnznvm2z0c410k5wssw4rw15rdc3f5ds9mbzbyxpva";
+ name = "libkexiv2-21.08.2.tar.xz";
};
};
libkgapi = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkgapi-21.08.1.tar.xz";
- sha256 = "14wzl40j5baw20628dqcpkg8vi6jsq5f9gw0sc1my8qhw91mj3vy";
- name = "libkgapi-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkgapi-21.08.2.tar.xz";
+ sha256 = "13dna8iv3qzkc1jagjgji928g88wrgds47lcfj3dqkn8swamisa0";
+ name = "libkgapi-21.08.2.tar.xz";
};
};
libkipi = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkipi-21.08.1.tar.xz";
- sha256 = "13579gqxyj8dwmrmxylnw6mf56vr73vlbbv07rpi661kfrbjk2ms";
- name = "libkipi-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkipi-21.08.2.tar.xz";
+ sha256 = "134iaagdn49y79aihi6k5pgx0cyk52wq38cdiinpcsxqc4xmzswh";
+ name = "libkipi-21.08.2.tar.xz";
};
};
libkleo = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkleo-21.08.1.tar.xz";
- sha256 = "1n1nacr1q0nw2jq8px6b3cmda6ff9mygggfrl3xh6qz042bg77xz";
- name = "libkleo-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkleo-21.08.2.tar.xz";
+ sha256 = "14p3x2jq9sa5gkhcd7q3g5ras2sl62shrjm9kx4426mbnj10n0q2";
+ name = "libkleo-21.08.2.tar.xz";
};
};
libkmahjongg = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkmahjongg-21.08.1.tar.xz";
- sha256 = "0ry6wz0i9dccjn5w2qy2nin0rhbg30vlbcr4zrlx8bxsw0la2k94";
- name = "libkmahjongg-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkmahjongg-21.08.2.tar.xz";
+ sha256 = "195c7bgn4jp2whqrg7l8g147kj92bvdcvcrh7n186kac9q0jqr3b";
+ name = "libkmahjongg-21.08.2.tar.xz";
};
};
libkomparediff2 = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libkomparediff2-21.08.1.tar.xz";
- sha256 = "0n6xxam33k8j6c9wqdf0lhfpk6nyf9brhvdkivdamp0idhi3rcpx";
- name = "libkomparediff2-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libkomparediff2-21.08.2.tar.xz";
+ sha256 = "08y9p3il0i5sayq42v9p1v9f6yynp7ljb5d4ls1hf5ww4xxvx10x";
+ name = "libkomparediff2-21.08.2.tar.xz";
};
};
libksane = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libksane-21.08.1.tar.xz";
- sha256 = "1x4wsdfczqnasr6ps8677m0ix1fqqd2316f6k2k3awn9qfgsqy3x";
- name = "libksane-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libksane-21.08.2.tar.xz";
+ sha256 = "094k5f0qwcm74jn5jlzs0mr74myp4s217ah2pl1kny1fm5hv5pyj";
+ name = "libksane-21.08.2.tar.xz";
};
};
libksieve = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libksieve-21.08.1.tar.xz";
- sha256 = "1569xcjz575f8007z91zs9xn5wjklzkiy6l0cl7yzpzn880wc03p";
- name = "libksieve-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libksieve-21.08.2.tar.xz";
+ sha256 = "1jxb0a18mf8yqxbi90jbgjh90x17qr6z7ga6zxdb8gk1hjsyb10y";
+ name = "libksieve-21.08.2.tar.xz";
};
};
libktorrent = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/libktorrent-21.08.1.tar.xz";
- sha256 = "0y5881v0g49rr8dspzaq4l1c62rchgfq4mjx64sn0ng2jjpnhv1x";
- name = "libktorrent-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/libktorrent-21.08.2.tar.xz";
+ sha256 = "16rx0na7gy03c0qbwy07q7si35z62p0pq7fcvf3ggr594akwz4kl";
+ name = "libktorrent-21.08.2.tar.xz";
};
};
lokalize = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/lokalize-21.08.1.tar.xz";
- sha256 = "0ih7a1rkwn9jpgk3qld8anavr0g4wlf8figwikhvbc2dw79lxs7k";
- name = "lokalize-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/lokalize-21.08.2.tar.xz";
+ sha256 = "01f48fsrv095vlgxfjfdlm70xwsw73x5zhqbm38szn6r404jcmjm";
+ name = "lokalize-21.08.2.tar.xz";
};
};
lskat = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/lskat-21.08.1.tar.xz";
- sha256 = "1d89yqfsc703pnvxljcsn33wpsv64s4nr2wlmlbl609m9x8b9g9b";
- name = "lskat-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/lskat-21.08.2.tar.xz";
+ sha256 = "03www1ix31ifmn6hvzymvhg157rdhahjfwvc9arns23zxpn1sq9p";
+ name = "lskat-21.08.2.tar.xz";
};
};
mailcommon = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/mailcommon-21.08.1.tar.xz";
- sha256 = "1r0qyqasah4z8vx836fhvv1f4zm20az9qrw8122l3a986lazh1zw";
- name = "mailcommon-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/mailcommon-21.08.2.tar.xz";
+ sha256 = "0d0czxrf3i796pyrlifv4psq3hl4z2abhsqj1ns30xng45pzyrvz";
+ name = "mailcommon-21.08.2.tar.xz";
};
};
mailimporter = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/mailimporter-21.08.1.tar.xz";
- sha256 = "05kiizbdnsl15ry2zb5sg94lcdwq9w4lnznd6zcq8n09s0zpz8nf";
- name = "mailimporter-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/mailimporter-21.08.2.tar.xz";
+ sha256 = "0vd0bghszwr1wh4x2ygd7flg0kypb8m92gvh0q800gdgnqj87lw7";
+ name = "mailimporter-21.08.2.tar.xz";
};
};
marble = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/marble-21.08.1.tar.xz";
- sha256 = "01hf3wwz9zflkpgx1pbkxbnl1vs2yyafrwmldnil66nkxsxx7izw";
- name = "marble-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/marble-21.08.2.tar.xz";
+ sha256 = "1l8dwj0kyq8r3cap2sjsr4blbz591l6cxhglkhxwds901igacmxa";
+ name = "marble-21.08.2.tar.xz";
};
};
markdownpart = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/markdownpart-21.08.1.tar.xz";
- sha256 = "0xgs2kxnbrn70mrzza2d4f7xpx9ks3dbl3yj1y1kds7bnidsf3f9";
- name = "markdownpart-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/markdownpart-21.08.2.tar.xz";
+ sha256 = "0vx2d31d9c9ipwkbnlrjhzkaj97a7vz6vigbbkvw4cyaqhq6zkqp";
+ name = "markdownpart-21.08.2.tar.xz";
};
};
mbox-importer = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/mbox-importer-21.08.1.tar.xz";
- sha256 = "06mgz10ma8r0vi7ln9zxz2kipdp9rd0zw0sgm69h43rq9zyjnjkk";
- name = "mbox-importer-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/mbox-importer-21.08.2.tar.xz";
+ sha256 = "1bf4awkrivx209rnwflxrqdxzvj8mzlgzis79hn9n654qy6ar2d5";
+ name = "mbox-importer-21.08.2.tar.xz";
};
};
messagelib = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/messagelib-21.08.1.tar.xz";
- sha256 = "1r3lqacixy5vy36jgy6glz08gp8k4559h1bdqyh7svmmflhs927i";
- name = "messagelib-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/messagelib-21.08.2.tar.xz";
+ sha256 = "0gsxik4ib72xhw948h257m17w4k49sa3ymbg87n0q8nd6gykxyhr";
+ name = "messagelib-21.08.2.tar.xz";
};
};
minuet = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/minuet-21.08.1.tar.xz";
- sha256 = "0law0ram3xdf5ayc7j8as1xwj83k37mf7w6qkkp3hy3kj2r2dahx";
- name = "minuet-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/minuet-21.08.2.tar.xz";
+ sha256 = "13i37xw2aarmqi25m1r68z9zjwqf9nx8bxlflb0wxghzf3pgrp4v";
+ name = "minuet-21.08.2.tar.xz";
};
};
okular = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/okular-21.08.1.tar.xz";
- sha256 = "1vk1mn40i80b5vkxq47i1qf2i734n5nfa1wgx3748jwc1fws631p";
- name = "okular-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/okular-21.08.2.tar.xz";
+ sha256 = "0y3n340fbhsgmmrq4vz2p9682xzs7hsvvna8ffh4r15wgl1qdb9q";
+ name = "okular-21.08.2.tar.xz";
};
};
palapeli = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/palapeli-21.08.1.tar.xz";
- sha256 = "09mswv446s6vqlllhz727qpd7mdszdkgivfn9sazgmydmmmzrw53";
- name = "palapeli-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/palapeli-21.08.2.tar.xz";
+ sha256 = "0pl6hi0c5fa6zs3gdicm1s7rmzzdjjvrm8s8ds6f4ghq6dmlknqj";
+ name = "palapeli-21.08.2.tar.xz";
};
};
parley = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/parley-21.08.1.tar.xz";
- sha256 = "02v9gfjdryf48m5iinsc9qg2qfmj1s96xga5b3ndd63g66b6gp9b";
- name = "parley-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/parley-21.08.2.tar.xz";
+ sha256 = "0lykvjaxfj6blgjkmipvlw9531npz46d6jwq6w5wxvk6f1b2cgbh";
+ name = "parley-21.08.2.tar.xz";
};
};
partitionmanager = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/partitionmanager-21.08.1.tar.xz";
- sha256 = "16vc0g08rs6dz87zv4b1ygs198c6mbjwcp2j4994z6cf16bxfgz8";
- name = "partitionmanager-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/partitionmanager-21.08.2.tar.xz";
+ sha256 = "1fa90mnby2kf5a85wjz7xvb999gh5c2yn0j3g562zndqznqhcpvx";
+ name = "partitionmanager-21.08.2.tar.xz";
};
};
picmi = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/picmi-21.08.1.tar.xz";
- sha256 = "1yshwfl8baw0cw8hnvzkb3y72r0bycyr19rwwns9sjc3fk9gnk6a";
- name = "picmi-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/picmi-21.08.2.tar.xz";
+ sha256 = "0qvz4fl4jb256rwmaw0bszr3x2b5jd8priilc3jr33v393f3pd6q";
+ name = "picmi-21.08.2.tar.xz";
};
};
pim-data-exporter = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/pim-data-exporter-21.08.1.tar.xz";
- sha256 = "1vx7h7900wq8icx7q4khkx9g5gm6j5c8dl38q08pwda4vl0pmxmd";
- name = "pim-data-exporter-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/pim-data-exporter-21.08.2.tar.xz";
+ sha256 = "0li96fkwkdg4ziyv4n56vn49wav4kilf7lqb4s9xwj8h44kjpa5f";
+ name = "pim-data-exporter-21.08.2.tar.xz";
};
};
pim-sieve-editor = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/pim-sieve-editor-21.08.1.tar.xz";
- sha256 = "0ph62khl2k2gpfjf05p9sklihib0hbxgl3n1bv59l58awj9brs0r";
- name = "pim-sieve-editor-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/pim-sieve-editor-21.08.2.tar.xz";
+ sha256 = "173c595djmz3wyzl9dl3br8m3k0940ncdyjf8rjfgrh79y86bh7m";
+ name = "pim-sieve-editor-21.08.2.tar.xz";
};
};
pimcommon = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/pimcommon-21.08.1.tar.xz";
- sha256 = "1379lhvin2vkikd3fzanhwfjszb4cc9f3h9bxf3md3h4gx1i6hb6";
- name = "pimcommon-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/pimcommon-21.08.2.tar.xz";
+ sha256 = "074pbxprzx8hd6fikjvx8hn9g9135swzhj1f5zvfvhyvlpyj90wg";
+ name = "pimcommon-21.08.2.tar.xz";
};
};
poxml = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/poxml-21.08.1.tar.xz";
- sha256 = "10wwrbmhwbjk71m4ya1shb7mviil33fciykrzyqvvdnvx668aawm";
- name = "poxml-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/poxml-21.08.2.tar.xz";
+ sha256 = "1h7y4y1n3xcpgrkabik21ilck5dmq6p3qxs3xm9vzq1jxpb9izyf";
+ name = "poxml-21.08.2.tar.xz";
};
};
print-manager = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/print-manager-21.08.1.tar.xz";
- sha256 = "1hzykjnymr0knh67h6s5214bjp5lk1klm6znh8q2asf49c6x2zgw";
- name = "print-manager-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/print-manager-21.08.2.tar.xz";
+ sha256 = "0g2y2i7iysi6i397gd9fpqpk9cha7z4b2wz6shcqp0jyvvwl1pd3";
+ name = "print-manager-21.08.2.tar.xz";
};
};
rocs = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/rocs-21.08.1.tar.xz";
- sha256 = "1b527n0csk43sxafynqijiwf0bzj89viznpxnk2ayb9lik4q3djm";
- name = "rocs-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/rocs-21.08.2.tar.xz";
+ sha256 = "0cvgi42w1a7zd6bzazly9w2azbyp9gzvkyx5wlff5z99nk6v3mp0";
+ name = "rocs-21.08.2.tar.xz";
};
};
signon-kwallet-extension = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/signon-kwallet-extension-21.08.1.tar.xz";
- sha256 = "1x1q1vmqm9nq7sjhxc495x612jh39scxba0nbr8a4rval144268m";
- name = "signon-kwallet-extension-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/signon-kwallet-extension-21.08.2.tar.xz";
+ sha256 = "19jp6h9xqhlyvddgyg9jz74by0pcxqm920c5h8vln5vkkcgsdwws";
+ name = "signon-kwallet-extension-21.08.2.tar.xz";
};
};
skanlite = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/skanlite-21.08.1.tar.xz";
- sha256 = "17lnazx1h4lk78037gvzscnm3p2yl6dhc4970bdq982ahwp63gg8";
- name = "skanlite-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/skanlite-21.08.2.tar.xz";
+ sha256 = "1zwrb7j7x234vbb57p8gzbqz2mfr1n2i84yjf16jrsv1fm53z9md";
+ name = "skanlite-21.08.2.tar.xz";
};
};
spectacle = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/spectacle-21.08.1.tar.xz";
- sha256 = "0bs93gylw90wj3b9kw71xhqy60smggh38s5g4jcras1n6iqmb06x";
- name = "spectacle-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/spectacle-21.08.2.tar.xz";
+ sha256 = "0m59cnfqkm379i6ayj1g5flszqs26dmnwl79324d1j6bxk24mjrh";
+ name = "spectacle-21.08.2.tar.xz";
};
};
step = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/step-21.08.1.tar.xz";
- sha256 = "0rg69j8r479vzyrajbdjgh5l2506w8f2dnlh1di545gzjk2ww448";
- name = "step-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/step-21.08.2.tar.xz";
+ sha256 = "15l11s39hw847kd37fhq6kp3ajbsxidkfpp2ryb9dfh595lncg2r";
+ name = "step-21.08.2.tar.xz";
};
};
svgpart = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/svgpart-21.08.1.tar.xz";
- sha256 = "1silp6k0l9xb363h8whiv4dry6gf1mj4w53mksl1i2slhqn9q96v";
- name = "svgpart-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/svgpart-21.08.2.tar.xz";
+ sha256 = "14xgwdvpcvgw0jj4gy3175ah38x9f8lhknqbw5bczvm9cy8j7qfw";
+ name = "svgpart-21.08.2.tar.xz";
};
};
sweeper = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/sweeper-21.08.1.tar.xz";
- sha256 = "0p25bkczxmx93igicyiasvjd4v9rc3sg7gm7b9ddgzz8rrnr0d9p";
- name = "sweeper-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/sweeper-21.08.2.tar.xz";
+ sha256 = "1yvcfdhapml1vzqns67v6j2c39g752f8czxs7bnczi69fq1ksh0b";
+ name = "sweeper-21.08.2.tar.xz";
};
};
umbrello = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/umbrello-21.08.1.tar.xz";
- sha256 = "0x4f3hiydyprhzd56i8lijwfhzca041bmbbxp7x1dckv3shdangc";
- name = "umbrello-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/umbrello-21.08.2.tar.xz";
+ sha256 = "1xiz006ppgss6rxg7lndgnrbcdbm0iq1hjly3rjn943ff11wq5yr";
+ name = "umbrello-21.08.2.tar.xz";
};
};
yakuake = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/yakuake-21.08.1.tar.xz";
- sha256 = "1x41jrkvlff8x5qcd12lcrv6zqzw7jqw02ikpmqv1v4gw7lz94w9";
- name = "yakuake-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/yakuake-21.08.2.tar.xz";
+ sha256 = "1d8dh10jkpm4pm8fh1bmkdwvv59gk0fg6dr3gahlspnh4hhzy4hg";
+ name = "yakuake-21.08.2.tar.xz";
};
};
zeroconf-ioslave = {
- version = "21.08.1";
+ version = "21.08.2";
src = fetchurl {
- url = "${mirror}/stable/release-service/21.08.1/src/zeroconf-ioslave-21.08.1.tar.xz";
- sha256 = "113sp3lqzyxx7icww4sznc23kxarmxz0158kzl6nazxj4m6cnm4r";
- name = "zeroconf-ioslave-21.08.1.tar.xz";
+ url = "${mirror}/stable/release-service/21.08.2/src/zeroconf-ioslave-21.08.2.tar.xz";
+ sha256 = "0xgm4y29iklal5kd5z76jdw6wgw0mg9xn0f0d07zyshv5hjgllv6";
+ name = "zeroconf-ioslave-21.08.2.tar.xz";
};
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/logging/humioctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/logging/humioctl/default.nix
index b5d0578b122..8f0fe761087 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/logging/humioctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/anup/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/anup/default.nix
index 9c99c84eabe..3eed2a7501c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/anup/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/appeditor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/appeditor/default.nix
index f8e709e423f..0643e33885d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/appeditor/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/archiver/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/archiver/default.nix
index cf76eda2720..7fb0de24c11 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/archiver/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/auto-multiple-choice/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/auto-multiple-choice/default.nix
new file mode 100644
index 00000000000..5990bf91ea0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/azuredatastudio/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/azuredatastudio/default.nix
index fca1ad12fd1..f7e39396602 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/barrier/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/barrier/default.nix
index b9dbcf529be..63a04d18115 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/barrier/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/bemenu/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/bemenu/default.nix
index 123d839341d..d230606a3c3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/bemenu/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/binance/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/binance/default.nix
new file mode 100644
index 00000000000..1a14055ae09
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/binance/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron_12,
+alsa-lib, gtk3, libxshmfence, mesa, nss, popt }:
+
+let
+ electron = electron_12;
+
+in 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/blender/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/blender/default.nix
index 93185f2dd5c..31c1d4a1993 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/blender/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/calibre/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/calibre/default.nix
index e11efa8f8dd..a96be344b3d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/calibre/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/calibre/default.nix
@@ -27,19 +27,20 @@
mkDerivation rec {
pname = "calibre";
- version = "5.29.0";
+ version = "5.30.0";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-9ymHEpTHDUM3NAGoeSETzKRLKgJLRY4eEli6N5lbZug=";
+ sha256 = "058dqqxhc3pl4is1idlnc3pz80k4r681d5aj4a26v9acp8j7zy4f";
};
- # https://sources.debian.org/patches/calibre/5.29.0+dfsg-1
+ # https://sources.debian.org/patches/calibre/5.30.0+dfsg-1
patches = [
# allow for plugin update check, but no calibre version check
(fetchpatch {
name = "0001_only_plugin_update.patch";
- url = "https://sources.debian.org/data/main/c/calibre/5.29.0%2Bdfsg-1/debian/patches/0001-only-plugin-update.patch";
+ url =
+ "https://sources.debian.org/data/main/c/calibre/${version}%2Bdfsg-1/debian/patches/0001-only-plugin-update.patch";
sha256 = "sha256-aGT8rJ/eQKAkmyHBWdY0ouZuWvDwtLVJU5xY6d3hY3k=";
})
]
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cheat/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cheat/default.nix
index f7a56a48fc7..bda779dd54f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cheat/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cherrytree/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cherrytree/default.nix
index d4fc82b9139..61150d56fbb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cherrytree/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cherrytree/default.nix
@@ -19,13 +19,13 @@
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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cipher/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cipher/default.nix
index 5675676d951..fb373938d5a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cipher/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coreaction/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
similarity index 96%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coreaction/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
index be9d02bf339..f17730cc7e9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coreaction/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/tools/archivers/corearchiver/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
similarity index 92%
rename from infra/libkookie/nixpkgs/unstable/pkgs/tools/archivers/corearchiver/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
index 217520dde99..56a05bc434e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/tools/archivers/corearchiver/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/corefm/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corefm/default.nix
similarity index 88%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/corefm/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corefm/default.nix
index 9ad99e3aa06..3ec918db7af 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/corefm/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coregarage/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
similarity index 92%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coregarage/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
index 6d665479764..719047c8de7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coregarage/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/corehunt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
similarity index 86%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/corehunt/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
index ad1fabb2504..fb9bcd5e8ef 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/corehunt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/coreimage/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
similarity index 86%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/coreimage/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
index 1dcff1f6e8f..224c946d117 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/graphics/coreimage/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
new file mode 100644
index 00000000000..d8df86abd87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
new file mode 100644
index 00000000000..3d4e6ddc301
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepad/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepad/default.nix
new file mode 100644
index 00000000000..fcd1bfa4a4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepaint/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
new file mode 100644
index 00000000000..6410da3ba60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepdf/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
new file mode 100644
index 00000000000..bb93391c2af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepins/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corepins/default.nix
new file mode 100644
index 00000000000..80d3a096ffe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
new file mode 100644
index 00000000000..f92d532ba4a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/tools/misc/coreshot/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
similarity index 85%
rename from infra/libkookie/nixpkgs/unstable/pkgs/tools/misc/coreshot/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
index bb2404b1ed5..bf9f5e49aea 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/tools/misc/coreshot/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corestats/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corestats/default.nix
new file mode 100644
index 00000000000..a6d71eaa6cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corestuff/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
new file mode 100644
index 00000000000..57216f4710d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/coreterminal/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
similarity index 97%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/coreterminal/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
index e358fae0716..c2085686aab 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/coreterminal/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coretime/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coretime/default.nix
new file mode 100644
index 00000000000..af33d474e35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coretoppings/0001-fix-install-phase.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coretoppings/0001-fix-install-phase.patch
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coretoppings/0001-fix-install-phase.patch
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coretoppings/0001-fix-install-phase.patch
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coretoppings/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
similarity index 76%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coretoppings/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
index eff253ffcc2..154f4a38994 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/coretoppings/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
new file mode 100644
index 00000000000..0a6ccaf7214
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcprime/0001-fix-application-dirs.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/libcprime/0001-fix-application-dirs.patch
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcprime/0001-fix-application-dirs.patch
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/libcprime/0001-fix-application-dirs.patch
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcprime/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
similarity index 93%
rename from infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcprime/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
index d312c832243..00e297bf276 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcprime/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcsys/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/libcsys/default.nix
similarity index 98%
rename from infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcsys/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cubocore-packages/libcsys/default.nix
index cec6e501bb5..d1dde9942e9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/development/libraries/libcsys/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch
deleted file mode 100644
index 3826e92440f..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/curaengine.nix
deleted file mode 100644
index 5d1df20e224..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/default.nix
deleted file mode 100644
index 360ef47ecf1..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/libarcus.nix
deleted file mode 100644
index 15e221a8f74..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
deleted file mode 100644
index dd84173ffce..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/uranium.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/cura/lulzbot/uranium.nix
deleted file mode 100644
index 01166092b2b..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dasel/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dasel/default.nix
index 1cab19808a1..d8c94c88383 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dasel/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dasel/default.nix
@@ -5,13 +5,13 @@
buildGoModule rec {
pname = "dasel";
- version = "1.21.1";
+ version = "1.21.2";
src = fetchFromGitHub {
owner = "TomWright";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-M63KFQ+g4b0HiWlv1Kym0ulqZcCMdfU9SoLhpaI4q/o=";
+ sha256 = "sha256-HHeO8mbvD+PLMKjeacjIBNEVeOYjeHjXJHhTkbMMOG4=";
};
vendorSha256 = "sha256-yP4iF3403WWgWAmBHiuOpDsIAUx4+KR8uKPfjy3qXt8=";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dbeaver/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dbeaver/default.nix
index 1fec32d9f70..f7782d0a577 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dbeaver/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dbeaver/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "dbeaver";
- version = "21.2.3"; # 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 = "0xu/uMMloCUuhKs392kn6qJzlobDNuvwlHGdS/gGAB8=";
+ sha256 = "BPcTj2YIGyP3g4qrQlDp13lziJwSUt0Zn00CayDku9g=";
};
fetchedMavenDeps = stdenv.mkDerivation {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dunst/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dunst/default.nix
index 5dffbf56a36..67753b6e371 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dunst/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/dunst/default.nix
@@ -1,27 +1,35 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper
+{ stdenv, lib, fetchFromGitHub, makeWrapper, fetchpatch
, 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
}:
stdenv.mkDerivation rec {
pname = "dunst";
- version = "1.6.1";
+ version = "1.7.0";
src = fetchFromGitHub {
owner = "dunst-project";
repo = "dunst";
rev = "v${version}";
- sha256 = "0lga1kj2vjbj9g9rl93nivngjmk5fkxdxwal8w96x9whwk9jvdga";
+ sha256 = "sha256-BWbvGetXXCXbfPRY+u6gEfzBmX8PLSnI6a5vfCByiC0=";
};
+ patches = [
+ (fetchpatch {
+ # fixes double free (https://github.com/dunst-project/dunst/issues/957)
+ url = "https://github.com/dunst-project/dunst/commit/dc8efbbaff0e9ba881fa187a01bfe5c033fbdcf9.patch";
+ sha256 = "sha256-xuODOFDP9Eqr3g8OtNnaMmTihhurfj2NLeZPr0TF4vY=";
+ })
+ ];
+
nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
buildInputs = [
cairo dbus gdk-pixbuf glib libX11 libXScrnSaver
libXinerama libnotify pango xorgproto librsvg libXrandr
- gtk3 wayland wayland-protocols
+ wayland wayland-protocols
];
outputs = [ "out" "man" ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/flavours/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/flavours/default.nix
index 94fc91dfdb9..5eafa039077 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/flavours/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/formatter/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/formatter/default.nix
index 4532b766f47..440022da6ee 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/formatter/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gallery-dl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gallery-dl/default.nix
index 461d27a32c3..656a5f3bea4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gallery-dl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
buildPythonApplication rec {
pname = "gallery_dl";
- version = "1.19.0";
+ version = "1.19.1";
src = fetchPypi {
inherit pname version;
- sha256 = "ceffaa5022d76132165ca9004c1e57d7400b56c9ab3866e3bd139e2ffe38cb72";
+ sha256 = "ea1a7bf908507a87edffde6d6be93b8859ab0832ca788b61690a13aa5dd52216";
};
propagatedBuildInputs = [ requests ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/geek-life/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/geek-life/default.nix
new file mode 100644
index 00000000000..653c940024a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gnome-recipes/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gnome-recipes/default.nix
index b35319c3863..04526ec3465 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gnome-recipes/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/goldendict/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/goldendict/default.nix
index 03668e58611..f0eed5c1e2f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/goldendict/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/googleearth-pro/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/googleearth-pro/default.nix
index e7cfe04da6e..950cb236ecb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxlab/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxlab/default.nix
index c8d6eb3b84c..8d2b95ea4f3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxlab/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxsee/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxsee/default.nix
index f008ea439ed..bbe77c18220 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxsee/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gpxsee/default.nix
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gxkb/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gxkb/default.nix
index 16268bc76c7..e496d786457 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/gxkb/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/haxor-news/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/haxor-news/default.nix
index f5a723f5901..43c2eb24224 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/haxor-news/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/heimer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/heimer/default.nix
index d3d369368af..0aff0c6bbd1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/heimer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/hunter/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/hunter/default.nix
deleted file mode 100644
index 6c0c9b2955a..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/icesl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/icesl/default.nix
index 5c50ac24538..ae049699121 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/icesl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/josm/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/josm/default.nix
index 93e08b66078..fa93e725716 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/josm/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/jquake/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/jquake/default.nix
index 2a3f1aec413..5a5aa4011fd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/jquake/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/jrnl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/jrnl/default.nix
index 37142cd20eb..967d4931c31 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/jrnl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/keepassx/community.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/keepassx/community.nix
index fdd606c892d..a8548f2c5c0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/keepassx/community.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/keepassx/community.nix
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/koreader/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/koreader/default.nix
index af66e2282b4..3d11162241e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/koreader/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/koreader/default.nix
@@ -13,12 +13,12 @@
let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
in stdenv.mkDerivation rec {
pname = "koreader";
- version = "2021.09";
+ version = "2021.10.1";
src = fetchurl {
url =
"https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
- sha256 = "1q2mbmczx2y5ylriq4k3lbjlpw4pwfq2vvcx06ymax31fsrvix84";
+ sha256 = "sha256-UpDwexBfjlne/uNMTtNjIyZb3TDMYFeDvtwtTFARovw=";
};
sourceRoot = ".";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/lavalauncher/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/lavalauncher/default.nix
index 533d3757a6e..f6071978b86 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/lavalauncher/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/limesctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/limesctl/default.nix
index 24a16eeb8b1..d7f0624ad3f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/limesctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/limesctl/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "limesctl";
- version = "2.0.0";
+ version = "2.0.1";
src = fetchFromGitHub {
owner = "sapcc";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-fhmGVgJ/4xnf6pe8aXxx1KEmLInxm54my+qgSU4Vc/k=";
+ sha256 = "sha256-E6LwNiCykBqjkifUSi6oBWqCEhkRO+03HSKn4p45kh0=";
};
vendorSha256 = "sha256-9MlymY5gM9/K2+7/yTa3WaSIfDJ4gRf33vSCwdIpNqw=";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/logseq/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/logseq/default.nix
index 7e34ec0a36d..4fb05b25c06 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/logseq/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/logseq/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "logseq";
- version = "0.4.2";
+ version = "0.4.5";
src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
- sha256 = "BEDScQtGfkp74Gx3RKK8ItNQ9JD8AJkl1zdS/gZqyXk=";
+ sha256 = "EMybZH3heUWeCP74KdFr6zJY1R3hePo6RssbJXrkd9g=";
name = "${pname}-${version}.AppImage";
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/lsd2dsl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/lsd2dsl/default.nix
index 8c884305277..2dfbaeb9941 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/lsd2dsl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/markmind/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/markmind/default.nix
new file mode 100644
index 00000000000..e44b7fe54ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mdzk/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mdzk/default.nix
new file mode 100644
index 00000000000..17365e009bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/merkaartor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/merkaartor/default.nix
index 90d91583a26..eda540427bb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/merkaartor/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/minder/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/minder/default.nix
index 607eeb5eaa3..63840b3f0b2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/minder/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/default.nix
index cc5ff18a2f3..c88ac932e4f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/default.nix
@@ -14,11 +14,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mkgmap";
- version = "4808";
+ version = "4810";
src = fetchurl {
url = "https://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
- sha256 = "ooiXotpxdy99ViUQ0kFp0NoTowGEZjEoD31x+3XrW28=";
+ sha256 = "j21WTEu+MTmnFrRH5B8Eb1tS2elFR715R8jhgKZ5Gmw=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/deps.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/deps.nix
index 22b5410d6bb..68cd5a79fe7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mkgmap/deps.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mob/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mob/default.nix
index e9e0559b0d0..f558e520da8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/mob/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/multibootusb/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/multibootusb/default.nix
index 1d625a67b7b..3890246a63d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/multibootusb/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/nerd-font-patcher/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/nerd-font-patcher/default.nix
new file mode 100644
index 00000000000..6807cd9024f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/notejot/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/notejot/default.nix
index 435bbda24d0..aad182bd187 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/notejot/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/notejot/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ] ++ teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "io.github.lainsce.Notejot";
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/obsidian/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/obsidian/default.nix
index 5b4444b1985..f293cc60d2a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/obsidian/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/openlp/lib.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/openlp/lib.nix
index c044e76c597..9e8440a4c80 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/openlp/lib.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pdfsam-basic/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pdfsam-basic/default.nix
index fac17c978db..9aed6daa5c3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "pdfsam-basic";
- version = "4.2.6";
+ version = "4.2.7";
src = fetchurl {
url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
- sha256 = "sha256-H8vFbQHFTO7blTJyfaEuyVUIljhfFautIrXV73zmBeI=";
+ sha256 = "sha256-PVG4KZX6KxkrooywgEmqOItyLt5hGs+b/KCaguduGyc=";
};
unpackPhase = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pipr/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pipr/default.nix
index 96627f5cccb..2f5ba3e6d9c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pipr/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pytrainer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pytrainer/default.nix
index 05cc834591f..d7969155370 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/pytrainer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/qcad/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/qcad/default.nix
index bddcfa497d9..8e19a311fce 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/qcad/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/redshift-plasma-applet/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/redshift-plasma-applet/default.nix
index b8d25f0db1d..9bc39aaac4f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/redshift-plasma-applet/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/scli/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/scli/default.nix
index 3605e7c416f..3809283e62a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/scli/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/seatd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/seatd/default.nix
index 0565c8add3b..e142ec47af9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/seatd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/sequeler/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/sequeler/default.nix
index 123e01fe798..7ba7d15478a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/sequeler/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/sleepyhead/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/sleepyhead/default.nix
index bf8a9efb9fd..94c47c23afe 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/sleepyhead/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/slides/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/slides/default.nix
index c69971919ee..a7c0f6f7047 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/slides/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/snapmaker-luban/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/snapmaker-luban/default.nix
new file mode 100644
index 00000000000..84ad34637f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/spicetify-cli/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/spicetify-cli/default.nix
index e20b95922f9..7bbe6581154 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/ssh-tools/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/ssh-tools/default.nix
index 8740633262f..2e79f69656f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/ssh-tools/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior-tui/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior-tui/default.nix
index 93a8d6e088c..ae25ce358de 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -5,19 +5,19 @@
rustPlatform.buildRustPackage rec {
pname = "taskwarrior-tui";
- version = "0.13.34";
+ version = "0.13.35";
src = fetchFromGitHub {
owner = "kdheepak";
repo = "taskwarrior-tui";
rev = "v${version}";
- sha256 = "0p0nkqvkir6lriq75ingpfywn2yvyn3l35yxzk4aiq6vr2n7h3mw";
+ sha256 = "sha256-sXJto2YygPz2B5y7m8uUfOhuRCbKkZGoCmzHOhvH2MU=";
};
# Because there's a test that requires terminal access
doCheck = false;
- cargoSha256 = "1mzc6rnqcv97dlkl4j4p180f46wlyq45lc6nq7gqw396wc6m04km";
+ cargoSha256 = "sha256-mUlwpH2XhVDtjV7ChEqlEUXffOIbips4FzQyGejFvWk=";
meta = with lib; {
description = "A terminal user interface for taskwarrior ";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior/default.nix
index b229a56a8ca..8290a868ef0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/taskwarrior/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "taskwarrior";
- version = "2.6.0";
+ version = "2.6.1";
src = fetchFromGitHub {
owner = "GothenburgBitFactory";
repo = "taskwarrior";
rev = "v${version}";
- sha256 = "sha256-2wVjRecfIlNFAxXFaiKfxy9zArDIYDTfDdrnSM7H8fM=";
+ sha256 = "sha256-jMZzo2cegoapEHTvfD6ThU1IsXru3iOcpyDbZxkSXzQ=";
fetchSubmodules = true;
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tootle/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tootle/default.nix
index 63ac88ecac9..8c111ae6aa4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tootle/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tty-solitaire/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tty-solitaire/default.nix
index 708596d4074..b390c7bf9d1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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=";
+ })
+ ];
+
+ postPatch = ''
+ sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile
+ '';
- patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
+ buildInputs = [ ncurses ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tut/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tut/default.nix
index 8e84f56c841..0d0d1c394e2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/tut/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/whalebird/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/whalebird/default.nix
new file mode 100644
index 00000000000..0809f835668
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/xpdf/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/xpdf/default.nix
index e57fb75c11f..eb5ebf3a717 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/xpdf/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/xplr/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/xplr/default.nix
index 9ac39d722b5..856f48437f5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/xplr/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/zettlr/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/zettlr/default.nix
index f8dbc9c65e4..26b925d51a8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/misc/zettlr/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = "2.0.0";
+ version = "2.0.1";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
- sha256 = "sha256-MIFgNUuuneIIkPRVRarbx6UMoB/3sdJtKvbacUnwHX8=";
+ sha256 = "sha256-vnkZGxuLvj8Pjmey6NO3mcHuWbtO0bYEfgKwvgumbPA=";
};
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/brave/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/brave/default.nix
index 53c4145cee2..ce69121c6ca 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/brave/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.30.89";
+ version = "1.31.87";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
- sha256 = "2fu6Nk/eMLQ9nYy1aZDpjnRg16YosQPqdKtJ2VAYBrw=";
+ sha256 = "lfkTB8oXxZqgbO7d8cdktSd6ivQc3g5kiAYZKyrrLpw=";
};
dontConfigure = true;
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/common.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/common.nix
index a9331041ddd..e88c1fa1b94 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/common.nix
@@ -87,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"
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/upstream-info.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 6e890ccb6c3..d10615fdec2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,8 +1,8 @@
{
"stable": {
- "version": "95.0.4638.54",
- "sha256": "1zb1009gg9962axn2l1krycz7ml20i8z2n3ka2psxpg68pbqivry",
- "sha256bin64": "0mf9jfzwz6nkz1yg8lndz1gmsvmdh1rxhqkv0vd9nr04h5x9b41a",
+ "version": "95.0.4638.69",
+ "sha256": "1rzg48mbd5n75nq2rfwknyxpmfrddds199ic82c736kcgirpv8rq",
+ "sha256bin64": "1jhxm12sdlgvgnny0p56xsfyxd78mwn9qwc20c33qfvwxrzp9ajp",
"deps": {
"gn": {
"version": "2021-08-11",
@@ -12,41 +12,41 @@
}
},
"chromedriver": {
- "version": "95.0.4638.17",
- "sha256_linux": "0jqq2h3rjancq9gk4w29gcr4b3z4irnkbvcj97fdsnksck9y5h2q",
- "sha256_darwin": "0vl73i28xq3z5njg4287j08pb2sfd28amc8hkm4ddq5dgqpim0l8"
+ "version": "95.0.4638.54",
+ "sha256_linux": "0p228x7w423p3zqwfdba2jj4x4gkxz4267qzzswpba335p3k1nyk",
+ "sha256_darwin": "1yxi8c18fa07w8kdm63v4663lhgx1y56957bkqb7hf459bzz594l"
}
},
"beta": {
- "version": "95.0.4638.54",
- "sha256": "1zb1009gg9962axn2l1krycz7ml20i8z2n3ka2psxpg68pbqivry",
- "sha256bin64": "06d0kjnrv8z74icc6nahllxbwn3xxwn0vgc7ss47402zrqig8lch",
+ "version": "96.0.4664.35",
+ "sha256": "047zc1hl5iwhrgnypl7r5ga2cx1yz26lf1x5cnvdqmarmmkq380m",
+ "sha256bin64": "1cw89fafxxhr85x4vzhxv3jkmqfnxjisc7gj9v8y2ixqpn190hjl",
"deps": {
"gn": {
- "version": "2021-08-11",
+ "version": "2021-09-24",
"url": "https://gn.googlesource.com/gn",
- "rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263",
- "sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
+ "rev": "0153d369bbccc908f4da4993b1ba82728055926a",
+ "sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
}
}
},
"dev": {
- "version": "96.0.4664.9",
- "sha256": "0hlniaglnd19cb3k2wi9mmf56ws8i89lm5y2dbjpr7vqnmj6qc39",
- "sha256bin64": "1crl8gbhjyaa0yhkvm4va0g9dyljra8n5zg9bd1znmjlk0c124x3",
+ "version": "97.0.4688.2",
+ "sha256": "0a5i64gxb24z5mfvmf50g4fafvqqbj7k5077arnhwzp3xiznld88",
+ "sha256bin64": "0l70qlna8x05rrlcfgv2xyl8g5nlmd42i8n0yc9dw3mwq8m4c4db",
"deps": {
"gn": {
- "version": "2021-09-24",
+ "version": "2021-10-30",
"url": "https://gn.googlesource.com/gn",
- "rev": "0153d369bbccc908f4da4993b1ba82728055926a",
- "sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
+ "rev": "8926696a4186279489cc2b8d768533e61bba73d7",
+ "sha256": "1084lnyb0a1khbgjvak05fcx6jy973wqvsf77n0alxjys18sg2yk"
}
}
},
"ungoogled-chromium": {
- "version": "94.0.4606.81",
- "sha256": "16755mfqxxmvslm9ix060safrnml91ckj5p85960jj5g5hmslwbh",
- "sha256bin64": "1d3z5np6b6jax7afak7f0yh76kmmdggdjlrzwyhy8hgrv7c7rsdz",
+ "version": "95.0.4638.69",
+ "sha256": "1rzg48mbd5n75nq2rfwknyxpmfrddds199ic82c736kcgirpv8rq",
+ "sha256bin64": "1jhxm12sdlgvgnny0p56xsfyxd78mwn9qwc20c33qfvwxrzp9ajp",
"deps": {
"gn": {
"version": "2021-08-11",
@@ -55,8 +55,8 @@
"sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
},
"ungoogled-patches": {
- "rev": "94.0.4606.81-1",
- "sha256": "113abybh8kkw9a92lj6jww6dl6rc1sv5x7a7a1gjwsihzd2r0cik"
+ "rev": "95.0.4638.69-1",
+ "sha256": "19azr4m4rd6za9vgcggijyq9x54jrjp0n07y4falgjrdz9q4f7aj"
}
}
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/elinks/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/elinks/default.nix
index 50ada47a444..dbe25ea06a9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/ephemeral/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/ephemeral/default.nix
index 1fea44e6627..7ff3b843bc2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/default.nix
index c8f28b551cd..29a506dd1b0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -25,7 +25,9 @@
, libXi
, libXinerama
, libXrender
+, libXrandr
, libXt
+, libXtst
, libcanberra
, libnotify
, adwaita-icon-theme
@@ -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
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 8d91260b6bb..4c47eb3b285 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
{
- version = "93.0";
+ version = "94.0";
sources = [
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ach/firefox-93.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 = "8be7f497a9bd28eedb3b30c4c5437242cbd599df3fa5e7a6a2912acadc126707";
+ sha256 = "de15198bb4e95a84482694415e656c03aa4d4b0c3cc0e3631e8454189a516835";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/af/firefox-93.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 = "aaab5d767d832e883a5ca2ad0a81b128c0fbebe141238835064210b27e47db6b";
+ sha256 = "01419633778013bfa5c5577dcb58f03fc74f851b53af6585a7d69ec25145d13a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/an/firefox-93.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 = "8340801d581d55a249b94378c69061466aa6e6181d64790d5bda43d2b3631a27";
+ sha256 = "6ac71816131c4540131e81b0d53957cd83112bc97da4fe6c1302743c4ca45c54";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ar/firefox-93.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 = "03e0cd262aad9e49b10f6626ec2c96f1646a51d1e461998be5d5487a40709626";
+ sha256 = "74253d1a9325bbe0ce20f8dad8eee0d22b4cb6080a38e3a780b831d75e6e73db";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ast/firefox-93.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 = "062e4bdc3144b19b5f85ded44078ef64e988bc4c9658ac189771b3411b3e0145";
+ sha256 = "f1e0d0d63ae5ba972592ed07b7844090aefdc07d67dec25e444e6f68a8fee834";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/az/firefox-93.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 = "175fb26412691b06d82f0175bdb51bf5635ff16564df93cdd4c332d6614fbcb9";
+ sha256 = "1bf3613239e288de9c1116d2f292fe86c8cef38da4d8e459b1ac907ead624c14";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/be/firefox-93.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 = "9841d99dd7407397388384d37a1b4d11027344e1710073ad3425163144445341";
+ sha256 = "820de9fd56247c99a62fee8b01b0274b1171d7093de7f2261e4457651392d523";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/bg/firefox-93.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 = "2932865a731d33c3447aa17d545185faff6fb8db32502236537301ec7eb3d54f";
+ sha256 = "dbb01c85c26d21ea8b971e7bfb1cd0af45ebc0378783368b7f0801d4f712e4a5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/bn/firefox-93.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 = "b9d7a1d69e0bf88fcdb24038f410289187a3de5047fa28925513a5f6ac47ae46";
+ sha256 = "06bf17d84782c636b84f0239900256c23b353e17fceca2c31bd3f3a128c72c67";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/br/firefox-93.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 = "ef5b6a548c200cd0e519c67a6542624a6b085ed20ca78e162b0dfb5b9d921a0a";
+ sha256 = "5473adf681b62bd3316a14b3d1fe54c86bebce1960495630c83eb556bad3115e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/bs/firefox-93.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 = "4a8e64d088509a8df5b95eea4c39267a884bb2906a71ac39056214dfc10a62c2";
+ sha256 = "c1de2c5f685e5c62a75b4bb9ff26486f968de3aac16a92fd86c9fd927d24289e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ca-valencia/firefox-93.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 = "ad7401e804d5cfe80d4bea0da8c324f70d3304dee96ea9d6c7d7257c67bfca9f";
+ sha256 = "de7744abd5c2878edebe546eb4f2a99a185d7ff3e8235eb41d5a548d704f5aba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ca/firefox-93.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 = "ab9d9d2cdb33f3f6b490f463021e9afe12e930bbe227e4e26122c45522995c8c";
+ sha256 = "ffd8af63684d4cdc9f9a6deb5f8111d7a1aad0a1bc331d02d64d2ce695b5e44a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/cak/firefox-93.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 = "698e4d066469ffedd1f915d93fac4358c4f614695966937858e950b9fc455bfb";
+ sha256 = "38cd4c961e90c4eab38eb61f3da82aeb57d70c6b1d768dec91e365393fc705a6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/cs/firefox-93.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 = "e6525afccdc478dc4db4cb23c30d18cfa2911c1f93bb85efd41b1647f9dbb85b";
+ sha256 = "c4d4b0686cddd4ac2eb846e6802ab0577554649e91ad99f041ff8d4f50ec01d7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/cy/firefox-93.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 = "dd3bf768de4120595e2264f4c8155c7037b5d220dc1cd6120c9821125f272046";
+ sha256 = "c1eb3b4b0f31ff2580b0c2dcf071e95dcc8721cefaa152da277ffc927c248bf9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/da/firefox-93.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 = "6b36bdd340f100ee627c34e0b959d11aa19afe15dc4d5b68fb594cd58bf3db23";
+ sha256 = "e4d11271b51b06321f763dd5fd460f002b00c177bc1e9aa6e0cf1d276f28527e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/de/firefox-93.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 = "befb39ec9a21c8ab30fbe81a3aad56bdc3734c3df5f511d5b088b79edbd179b7";
+ sha256 = "6cf50d4973194d9d5c82266707313a14a1d813677e1881a87aa2cf74488a2ea5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/dsb/firefox-93.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 = "1b922369255e48ef6decc6914df53d8461e5fa6139741ff6946e5f68d797aad9";
+ sha256 = "6ab8643ab33f443864a01a3319b616f48b67a58a12f17da1185ca30a8e025fe8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/el/firefox-93.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 = "ba9ddc9bdb8b7b5f1535dfcc8d6ae2062158689d57aae089a854b486e24f2b67";
+ sha256 = "4c152598ae6b7360b81902265fe716f8fe4cbcccf419fb378be20d81b44f01d2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/en-CA/firefox-93.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 = "910529d6c94fadc481238b015a35a4b6aab9f532aa4fac3b815413e02ba09f5e";
+ sha256 = "ff09e12f2255ff7cb49df32213739432c706a6ef500104029c5e7196a324ac24";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/en-GB/firefox-93.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 = "be7b43f5e801e3528c5e9eb732d281c36166265a1bcb84c168b017ec8cc01dd3";
+ sha256 = "78005100d97d4fa48150606f5a9d6e7b4c6496b4cfe9fd3037031e486aa387d8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/en-US/firefox-93.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 = "9d06897b80d77cfb59e1c8bd4dfc427590b058616ae634e52cfe272af06f9b32";
+ sha256 = "9d91733d36b16bea6df2e988ccc8ec541bda558f8a8d9a4d4134225dd21ac7ec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/eo/firefox-93.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 = "83e76766de41b81936b5a2d5bdb3b61a654adfcd3ee7226cc58418a1b4257e4e";
+ sha256 = "6164f90815da3943f14514999969c6b2cbf6227d088524084b137d1fa2533f4d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/es-AR/firefox-93.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 = "8f7fefb869a19511065025d1b0e0ed1d84ffdc402dbb07c4c35673bb9209403a";
+ sha256 = "199c86c5eb5ad9f1936731c1d0b17a89b5a44d7409192aad0c3ae5ada296b44f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/es-CL/firefox-93.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 = "62531f511e3d79a2a4d80c6a09ce120ecc62662fc5e277f8ba7f73488fd870f3";
+ sha256 = "664aa3266a728cfa4b2885cecc1cb82d3a38767e6eab0316718cccad82397219";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/es-ES/firefox-93.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 = "f3f3869780b3344746f8cf1e59dda3f44f56e5b9a97bab7bdc4cc58ba5d8b4a7";
+ sha256 = "28fd5db5af1aa1e0b50724b794fbb1c1c7208824be9eaba1736073cac8e83695";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/es-MX/firefox-93.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 = "55dfe3202f289bf5ab4b8fa59e3ef7824ca921c436b6c872f2fa6eab8b95dfd3";
+ sha256 = "242ae68cb8ad5227d6aa8f4d44c78e2a9a4c82b99fcd5c747324296725b9dc82";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/et/firefox-93.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 = "b6ed0570c1644a00f058453b82b48953adc9e500179f51ad769a796eb7417f75";
+ sha256 = "c2e9fee5dde6544e7868d1d0c879ba9a72d481efe09f8d21059087e17c6e94b4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/eu/firefox-93.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 = "070ef21ffeb8c339c49346017626a0c6112ca2c63e2a2880c3b22b858c9322ff";
+ sha256 = "a3f2b298b5ac86c85bf5334ad7217b5a879e460cecf87711c0be9d8fc8704638";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/fa/firefox-93.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 = "9dc071ecb81ba221ece8131ff54d27e94585243322a39d817ae663a35af4cc4d";
+ sha256 = "e1a9f506417b391b0635604e155a2d9389baaa73b591f3c43a8defa8e5e7a3e0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ff/firefox-93.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 = "7d1aa96cfe5c39059ebf682216083a2d5505f9ae97290f6dffb9b15912c5b6ac";
+ sha256 = "89cb6b9d8757de75fdcc73098943a4ff81f3ce6d2f7d938fe94ba7f875069aaf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/fi/firefox-93.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 = "3f050f0205134d52aa3e7fd08e1e78ccf2f987aed286dc20c9d5d8422e8dffd1";
+ sha256 = "322070cbba8c68f4b6a918018273c989e8fd8a7378ba86fad533490a93ec3af1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/fr/firefox-93.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 = "bc7aef8139c8e20c3ee69e027d93300b30320c24fbf9b651c14743b88d243f66";
+ sha256 = "24142d84aca0895c6f9f4c312597afc59bac072bd56c24dbe46bb869dcbbc094";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/fy-NL/firefox-93.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 = "4236fc93d2d661e29f1b82157b179bc91a92543df8b623264c5e05b5d03747a4";
+ sha256 = "19d39c728d1623e0a53b2b5b58bb948a018e75a87fd31ac390b65537be577f1e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ga-IE/firefox-93.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 = "ef874f0887ff4724e141608aeed56a2f78a40f3a0f620e3bdd35e0247bb21194";
+ sha256 = "8ffb458b531035c015299e089cc2caafad55876cdcf4adb259eeedb613a40904";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/gd/firefox-93.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 = "bb0d22e04c024a86bddba9cc527db275199a04dd2576c170f78f98c68ffe4077";
+ sha256 = "9f0ceaf44c8d689f08c1e9752af948fa143c41cc87afa8f16be66f839975447d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/gl/firefox-93.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 = "ab958633a2f6b691b950c18147c04426fe5cdb23592e142dcf15dcd5ce86bc5c";
+ sha256 = "f63683e490103a978e1da9cbb4cbbc1d46a44b4a76a429072299338165067f65";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/gn/firefox-93.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 = "1ec4293dd2658d598dee23fb04ecfb6674ccb19ae5b93fb60e94c3ac018056fb";
+ sha256 = "f1233e94f5f82ff37dccd91eaa64bbdd13f70eaa14817e943251faf7a57f8e0a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/gu-IN/firefox-93.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 = "eaa2792ff2a4ff29ee5301e3827c758f5e93159d4212988c8a3e3bb19a609064";
+ sha256 = "ea2528a2f78d73f0554e319aa6f7beec1be3d8c60ffb545a27e5b5fc26d103a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/he/firefox-93.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 = "03ef507e5047f3f84cd4b41a1fbfe00ba72833d0f6fe2503cf0156504031228a";
+ sha256 = "efa093a43af1b86d786c0e6349d6c02f53b3ec2d9eac6c6be2182d84bd3ccaaa";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/hi-IN/firefox-93.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 = "9ff924a878b7e8e69868ca33de7ac10d66a4590d022fb2255527928d905a891a";
+ sha256 = "a26e025f1cb032883c6558bb2257d671f92733ca4b9dc5635ff2befb4eed2c9b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/hr/firefox-93.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 = "ef61afbedff8dac01c600620e82756c5bc04782d717dff13bc6f59ccc06c8ab0";
+ sha256 = "ee79321b1cb31624562bee737ecfabf533194a4c026dbb69bad4d510b63ef060";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/hsb/firefox-93.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 = "57ed98a1bce575fc67cd290457072e0142183b9d8713d20a58574453fb3d7707";
+ sha256 = "dd334938f061bf1fdd08b303c6e4abc910be4264a40cf1be6ed808ace58f98e1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/hu/firefox-93.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 = "d565f5881e15197d70bfdca1d3df7eef4afd505f7fb2e71bd9bcf5495ba33007";
+ sha256 = "c445dea144a4a3a57e5dbb483f1c5a3872cece10a466d0b2e0e7769c2c22627f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/hy-AM/firefox-93.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 = "ee430651716013ad37fdeb0549d96aaa1ef254888653b686ba9576844976bc36";
+ sha256 = "4ea07bb7d9c17ebc64e568d317820e91215d650aacaca420915fbf90f8a26542";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ia/firefox-93.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 = "d85cea5e56cff08f185084144374c782a0edbc8396a2ab7ad9e373e6d6441cab";
+ sha256 = "e5b05ae03fb961ca6e77c4fee0861b0e5faa913a49d60920541ed180e621ce1b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/id/firefox-93.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 = "f9b95eafb8f064dc9ac02693befca85b90567b6635446a20f81bd3391fd64847";
+ sha256 = "090fc235bc878dbace606ed669ad26f7f48792fa00676627c2399bf73c7072a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/is/firefox-93.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 = "d1d68fe93ef3de2424f3ca4d59d339e3add6c21ae63163fa86f0f6c7751893f6";
+ sha256 = "16929ff44ec2f51dc8e4b7d0ed55fc0548db3bd830b65dddd23fe9f5f45882a5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/it/firefox-93.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 = "9bf7961653ac654daf8f019ee03b242bd73667e302f9910ab1a7b64aef4b7995";
+ sha256 = "f8954f671c91073b46a1b6c2e03ea5df39becc40b7926478a8c8bcc78d49e105";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ja/firefox-93.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 = "7ed411b87cbb261094c6b7cfa34d5cbfa28f0800644b10957429e0499f03b95b";
+ sha256 = "35f497fa15427f8f2f78e40531444374982313f7e86305edea64c2a5139370e8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ka/firefox-93.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 = "b5e92b09a9348033abfbf9e55049c7d188821aa2e3ed973cf207130cb1f47abe";
+ sha256 = "905bbb623f9792d92167e66880f9624479ad60f8bc68f257e5f59f1aebd33abb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/kab/firefox-93.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 = "71368bdaa2cae9a585b1bc7e6539d5f6ba97ae87a39c8a5910077d28bb0c80fb";
+ sha256 = "5a8c5006eb58f3a143b9580d7173fa87598caef93ecf73173fabeaa6e51574f8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/kk/firefox-93.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 = "e91bb39de263c5a41c54c50c11d82ce9a28ccaa4df95594657b92e2584210072";
+ sha256 = "893fcdbebdb7b646781be410ec08ecfaca06b65a6c58d9a0866070d724d654ec";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/km/firefox-93.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 = "21aaa236b79db29eeacb9c3b4509be78bf65f5584dbf8ee7c6803bc8ce89d201";
+ sha256 = "dc977315a12131902070ffa6c6f118593fa3535c8aaa2788c28a289f8f58071c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/kn/firefox-93.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 = "d661f1b28960791bc2e15cf6f831fb88c69c691e81bc56b61bb6bb47f4540851";
+ sha256 = "4110bb026876a7ec25f6e3fc0b3f40a4ff2b1a52ba3aa7cf44bf86dd13e5bfd0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ko/firefox-93.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 = "72b75385aac30b8e659a919710412bd532103f34498bbd921e698d8d41354f31";
+ sha256 = "5d9912d2c259d89c2e95fa820bb8347e40739891fe0cb7db3484ea479b03093d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/lij/firefox-93.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 = "9bc73f6865faf264bc411dddb362aee6b54d4d6b14abb25e088032148027f7ae";
+ sha256 = "f2e7cf14aca5a1ecd13e682a421be77b63e8c4c46ce1fcdcfa06fb6f3226a2db";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/lt/firefox-93.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 = "2499f42c4da599e2b006fe92ae921b6e3fd85af8b94c895875c242e45cfd6987";
+ sha256 = "cff207c01f8c1a154376e3298f104a6cfd61978f553183631cacbea45a555381";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/lv/firefox-93.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 = "b413029366708222b35286b872efe6b1fcd27f092e9d5b01fa1a6ff9d48e62ad";
+ sha256 = "f621fda53b5bcfd276c7a5edf4a32db23a3039050e51a7b2d2e52f654828d7d8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/mk/firefox-93.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 = "1f87c65a87cb5a876dd8a3749ea47c1ca5d7446bbca72de1ed64d92f77f7bc74";
+ sha256 = "a97c9c058e511841130267ddb8758b2f5c984eadca8021a9863a992d9dfc0661";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/mr/firefox-93.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 = "8fa074c47ffff06f7bd596d3ce3e6e2281c7e924582f285aead35d37f71b18e1";
+ sha256 = "b078043237564dbbf93e544f6791120f1daf0b00bd31bbbaf7d4a9c81b25eeb4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ms/firefox-93.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 = "674e877cd4a2e1d0844dcad823c26a50032565239f0ac07c5dd073b919beff80";
+ sha256 = "74f7638b2d75476cbbffe6249ba9c64c1617bc21a57c30d8e2169df1b0f59bf4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/my/firefox-93.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 = "8a65cdc5a9c7455c6def1e68fab652c2c5a1d943c4e7af6a83502de5f1d5738f";
+ sha256 = "6eaa860ec35d6b71aa284ec798385dbbd8bdfb843a1fe8d898dda32b5ba7cc20";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/nb-NO/firefox-93.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 = "9c6771132a3fee58115cee692564f43464d3ce745da721d3c61519d845592304";
+ sha256 = "6b9832b1135f17d60220e3a6bf5cb557fcf57e5ff50e5538a3f42fab36319d2b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ne-NP/firefox-93.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 = "110e30dc86f3996b9a3c474be5f170510383ad137a71257a5cd27ed25432ecfb";
+ sha256 = "71a5b237c05394176ba930fc458d375b3371d45dade1fbcaa009537cdfbe9a21";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/nl/firefox-93.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 = "4e753199be0e8b2b927fd2bef35bfbdcb2aa47fee5a178ff34f4348849f058f1";
+ sha256 = "8adc924dc977ac687dd1d5c80124e99ee1ffb854181636e208d934e396e46a1c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/nn-NO/firefox-93.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 = "7f9351e18fd74c472151bc8c9ed9181542308a15820b9aec503981de97b851b2";
+ sha256 = "4934faaea8bdd3de1eeb8ad9223d52d2f1e867e078d3c63443847fdc66d0d1c9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/oc/firefox-93.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 = "0eaefd72fef1d1d86bc0250052d80993456754be8b2818ecaf5a34d4064c4ab3";
+ sha256 = "440688f67ad6babb9cf7b5354c84fda25c33f8383b447c0cafe4973c30888d2c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/pa-IN/firefox-93.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 = "d82d82b827225d9764c127b0fbddbddc9fb46ff4c85a9da7d132ce54a2ef98c6";
+ sha256 = "b7b9dc6eeffe6a7be68f37d5625a4c9f40f6e592a96de7c3be81cfcb5928b395";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/pl/firefox-93.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 = "1bafb0bff6e280a6595b82dcfd99bd2dde5bde5d5bf0993f828e1658afcf0e98";
+ sha256 = "5a452ca451afa94b43568c04ae91573c70ade62c41ecad41ccfe63f78a01a5ce";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/pt-BR/firefox-93.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 = "ebb2bdc70f03a6aaddd3ac1e47f716f880198f3a7c5040a4a592c88a90dd7ff4";
+ sha256 = "f7b19be51c9f7905f7249a5d2771647bb8234fef7a68314ca5e05cdf1335b519";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/pt-PT/firefox-93.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 = "c082c36c403b685e089b1a90ace81dc4fc2d612f4d82d65fd178e61fafb265ab";
+ sha256 = "2990d7460eea578e0ffbdb356e0e03157cdf897221b57e8e3369450aa47f0309";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/rm/firefox-93.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 = "b42d24bbdfb7016c71c262058af2fb9fec38fe6a9dbf47f6a3c04cd2e9d9279d";
+ sha256 = "1367561b5d30a9aa8f3d06ad5fbb5a3d23912d3baaf10593c4a8d24aff7784f7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ro/firefox-93.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 = "cdf32a9e5268885f103e9a9391a247f1e05b2922b1e3e8744c26d92fac9722bf";
+ sha256 = "457c48c878d3ffd6c1a413e2ad87dbeff98bcb50459337836d291cd34d79d5fe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ru/firefox-93.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 = "b87f839b38e8b9e7f17dd97724b210f1eac2e3d290fcd677ab729c00f341757f";
+ sha256 = "669c1e78a7d46fff2be2756f3b06b769af9cccc11f7fb5e981e7862dbd4e915c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/sco/firefox-93.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 = "7262fb3b507d74b6d68da1426e7f4571dbecf66211cb32f9719363a6c1f2aa0c";
+ sha256 = "c4ea98e01c626a0088e4e94b8fc05723f178ce302ef2847cf6e45c9ffe7d70ea";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/si/firefox-93.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 = "aa3e1a8d8f05eeb024eda42c6510532b297a73ced25944e0c28137ec778be9e4";
+ sha256 = "cd05e8a2ddf01a345bf5891d317fdcf7d3a0bc54f1a09700786db1f8cb8a3510";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/sk/firefox-93.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 = "e1102e5c0961c8532cd9ae49d8b3da624de490265cd39d3e952cd4da839b394f";
+ sha256 = "c64667483a3fb1ab8c5ebf1c16f2a80206c4266f530e6b3941bd164e0ea228e9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/sl/firefox-93.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 = "1109d8fe7a1e33fe03da7c0b3cb27e9b9f314273d4c2ba8a61f12b3a6237d6e3";
+ sha256 = "35e2a7c6b215e57ba137f25be7d7e072c4f4e875150ce16e33717907731ad499";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/son/firefox-93.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 = "676739441dcfac253974ae5092c59455b7101e294f9c4df5d31eca00ca864eb4";
+ sha256 = "50e0d59b34159572aac1249d2f0fc1b8e1a34dc0332822ad6553c5f9300adea0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/sq/firefox-93.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 = "eae6d8801a111b38fa7d7b3ee7fc5b23469940de26760b44160d09f68f5d8e5f";
+ sha256 = "0a26399706b1731adac50c188aaefcbdf676cc512242440c41007c125669a6fd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/sr/firefox-93.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 = "a315f119c5cbe0d5a2794933e21180ab837e672c3063a870947e12def2fad450";
+ sha256 = "3e43e14e80c98fc2eb02dceddffebafeaf960c30cab85da2150c02ab3805d038";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/sv-SE/firefox-93.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 = "3f3490ea0bb9fc22ea85d5d4f6eedb4531e204c1d53f8cf487dbaa063dc973a9";
+ sha256 = "407c2d972299b0f26f7161e5a2eff788fb7ea7b3c9c30d6269b8ec384b37c149";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/szl/firefox-93.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 = "a59912a923916040b87ce1cda8fa71aede4123b39bfcab88a8da4c0da2fb6ce0";
+ sha256 = "7d5a624540ac7f80395e817926933fba356d4d718895e2108d5a32f02aeaf36e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ta/firefox-93.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 = "f6cda89c2b4097e5c33c0eac0819bdcb65cc18e085666fe346fb64aa8d55f64e";
+ sha256 = "89901483a4f2b1ca1732f35cbbed1ebe2515986e15498de3073b838ab0c46993";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/te/firefox-93.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 = "dfd5f6b330b8ae139ce76c7f21451773342f960e6ec09cce6039791835f6910b";
+ sha256 = "053565729f009879551cb8cb517942ab574d9a28698ec29d14b6c00550c851c5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/th/firefox-93.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 = "27e625b98bbed71a299607c2cac31ffc937a597d8c6bcd0aaafeb338cdcac547";
+ sha256 = "19655e2a64607454c4bff58016fa6762b1d68a0389a0dce7f0b6d0fd4fc19235";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/tl/firefox-93.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 = "72a57301971f9bb1a2674a4c00e8e45e77fe1b5b041de9a3255ede15b124460c";
+ sha256 = "8a8c6369384085f7b923715c45d9dbeee2f2d53595955ea763c5e074109fe594";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/tr/firefox-93.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 = "c939cfa088b584330179dc3563062b6e08458e4347ef1e8c66c899ecbd642413";
+ sha256 = "1ad702522fd900ca0c03bdaada843e14cc1b12ab7b3996efb45f43c6add8c2a2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/trs/firefox-93.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 = "3216099a1b3435591d1eeb3e50a90c66d9bdb697bf852a302cecb1819cc96c07";
+ sha256 = "82f3cd4f9c041ce3921bab6f9b37ef241aaa711ee551e38446528622a51b0540";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/uk/firefox-93.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 = "b2a63a362d0197e065608961a57ab04017fa92f6b43a9848c6046f6da08d3bda";
+ sha256 = "95acd99c8f1fa4ea9de8e3af31e0ab776ce025be2854a72cb40549356390d90e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/ur/firefox-93.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 = "faf5f628ec7b1abafb385f43c26534012d6cb888d92bc1c98f17005a4c86896b";
+ sha256 = "890a7a8fd5821c76acf9be1bbd56221e5073cce82c707cd68fd9f5543a8febcf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/uz/firefox-93.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 = "5d2ffce85b1286958dc770a163103b6642c98f29b40bc441bd4771ca5c9817c0";
+ sha256 = "4fe03256f1689ec3e63f387d51dbdf0a67c66152b01b7ba814c4511b8e3e167d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/vi/firefox-93.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 = "6218c4c6e58dc0c07df62adef703ee5fca39be1c3e157dbd936c1a0fd670cac9";
+ sha256 = "df8febc9569c490e987105ec046e34698c59bcc6848402a2542d2f82a2cc09cb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/xh/firefox-93.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 = "4a61e9af94fb6fac5b3fcb9c1461b7c551583b741c66830545744b3b717b6a05";
+ sha256 = "11d93be20b634cbf34953397539dde1aba1711b4131517edde8eed88283765c0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/zh-CN/firefox-93.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 = "dc8279b92b8e030795edfb1c939a2989f8801953547f2c581740ad24701cb95b";
+ sha256 = "c0d2a9890a02c9f7a3a2830525892e326115d5f33897473a1ae57de0d7d4b27e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/zh-TW/firefox-93.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 = "d0c7d5f5738d051959dc9ee4f39dbf699a8c8f6f2328858670663163600075e3";
+ sha256 = "770f9282d48893d22dce66b3f416eaa6385bdfbd5dc1dce4f2d9df02cfd9fdbf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ach/firefox-93.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 = "ad9067dc548ce33d6441c0e94dd46a93751efd5c1de391dfabee1ea7dd81c80b";
+ sha256 = "362cb04cba45c439b44625453cd981bfd81811e81144c30958fba5affe55cef8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/af/firefox-93.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 = "8267fedba7d52a5eed2dfc64b6bbba23c2f72e9f7b28370f65047b6009191730";
+ sha256 = "43c6e8e2833279572b2b2c1e70ea42f0ab3603cb9a74cf6f80121dac0f8ba058";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/an/firefox-93.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 = "ffc6725d9c9a2baad960f7b587588b221fa3aa0de7707dd6fefd3f81f61dfe89";
+ sha256 = "c52e9ee451de959203b52a511a7be5c2fe4afcda3e12a123d71f264250d46f29";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ar/firefox-93.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 = "dafd5ead95dda8f5fe119805b1d1d3482cf4d90bd8f274bbdf551846f8b7780e";
+ sha256 = "3ae760cfb56c655792fd3e890980e4be2753fc0a31e7e6bbfee99220109ae8c7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ast/firefox-93.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 = "4ff9f1379b95aedb46017b77a86766a0fa42d4fe4f0a0c2c6d3a26b4612e578f";
+ sha256 = "93b16862e89e178a215742faabcea5d948d1c10d3112943f1872ed283cbaf07d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/az/firefox-93.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 = "ff597f10b2f9e42e1dbf9cf7ea495732c021879afd5b3a2c5ce9d1aa9db144da";
+ sha256 = "68510d91c747baae7a4c808e859318e7bccf22fce2563da2e3c5e556a2611904";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/be/firefox-93.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 = "274297dda60b7b2e2c19687888affeec46dfab0a0745d8b251179bfa06361331";
+ sha256 = "1e4758cda7503fa95eadec402e8bdebbf9059a8de9060b59e95f570f86758bc6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/bg/firefox-93.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 = "8acc4e37249c706f23db4964da28289cd2cfcd0984f60ed40856022b8202f147";
+ sha256 = "95e4e4f1becfd49910f7509f57226f129c7150e198b000e36455423215c77ee1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/bn/firefox-93.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 = "8b7e681b6d22b1d2573facfd57f0039f9afef868d38f0b4c6d15c8d9e216ff10";
+ sha256 = "b552136d7d9befcc90c6fb0cd11310feedc1df31ff2cc8a52cc7dc90d5a5609e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/br/firefox-93.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 = "6c621a574b031b19fe43376b5b7175a9b11be3ecacf6ae32ff7dbf42e2385e94";
+ sha256 = "94d3fc7dc1a90d9f3f15eb4033581e9bf0a76abc2f98de73ad751845f247aa6b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/bs/firefox-93.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 = "d365a64a2d8dc71e2bbfd73899102671784bd313982f48a87a94fd4f5283d6ec";
+ sha256 = "cf07948c9a29a6f45fd4ed541fe4fbc070fa8a352ca013c5a271aa55090282dc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ca-valencia/firefox-93.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 = "e9af2c49c737d5546aa65a45a26e27c971bbdd0bfd94256159eca2585470ac32";
+ sha256 = "fc18e2256759652676380e063e343b5119169fc42ab8971582cc0cdd31351602";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ca/firefox-93.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 = "365e008db10d5d5f1cdb584718dba289af656e9176020898ef642371d8b2cc09";
+ sha256 = "21dcd27ebfebd49fe1b054b821beb84d407633a2c1a3f6672fdc35e4f71241b2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/cak/firefox-93.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 = "ca9e050e8df1b775221a3a8189b319e9dfc70aabd61421ba2ac7f8cf47da13a8";
+ sha256 = "fe2b7e3212391293db934bc5c436abd5198e91253544689a820f70f9c93ed402";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/cs/firefox-93.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 = "7444caa7dce9e45adaa419c6a71d1ff3fe0a21a3ba3cfe4e0c08ddd93973e7db";
+ sha256 = "598ff5d4d7111578cd70a86581940ad6bf5e7c92ecd2a3ba8103022e91136bf7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/cy/firefox-93.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 = "ac6e4bbbcc489c514c26dfab7ce7be56d78e2544628969b0dc1578856d0c5439";
+ sha256 = "322ad3fb9c2bbad85d556ca51ccb6a93588935b1787c6a1c4c38ec8bc2e3268a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/da/firefox-93.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 = "1f1859f9ce3b691e4fadaa82cee1680b4c23f70567d3f68a60f9fb682f96babd";
+ sha256 = "52c4aae25b5842a1ab044aeb79377c7583d21e9cf1e22c8962fc2e8ba6eb2497";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/de/firefox-93.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 = "f5ac9118d0937638a5b011657cd529d0dbc28108885b5cc2254022b7082c3ffa";
+ sha256 = "233fca3c08dd7903cbe94bd9c5729c1f798cd8d705afb4e71ef0818d9677a92e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/dsb/firefox-93.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 = "86381f8c5a5c7c1431012ad8ae44360c1c78e644197e7774de82101551cccfb1";
+ sha256 = "5b271d57eb0f71d5d6e89802362a693ee77862c84c1657b20aaf7edb323988d1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/el/firefox-93.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 = "89d9f1bc006e1d0f824ed794f7917430ca2285c88cc82eb98fb643fc2231218e";
+ sha256 = "4b46c4175dec3ee1e6d0ab9e254fcaab81e80e72bee78f59d361d4deddb661f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/en-CA/firefox-93.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 = "4c2c968ee7f4f9fb49bbe951a36fc23d9e51178d15772cb41e4d59f41b6c2816";
+ sha256 = "7df34d2a0889aafc6d5d5cea4df61ea640a0ee479d0926dd1e406c2b8b17451e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/en-GB/firefox-93.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 = "ecc57a222760119d6ec9562e3953ca7541dba4b6ea194b02cf20bf3b4fb1a994";
+ sha256 = "efc65e2cd633e9f29fd890263a5a2c859ee10567b6c6e4f5a8eb541f888e3366";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/en-US/firefox-93.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 = "56294b9d6b39d94e99a507bb4f1511dbf8a2512a846b8ad49bc93e1253f1e3a8";
+ sha256 = "2420dac89edba10f231e8c9449ca91d5863cfe38d749f77fe0e6d77403cbb7de";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/eo/firefox-93.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 = "33eb50b3e38eb259fc7559b60df2a9d69f4ed00efc8768a6dc2cafb2c6a93fb0";
+ sha256 = "308f92c206b25b99abfa595eb532cedfc865a8bdbd0cb4cea53d90ef525bfca9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/es-AR/firefox-93.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 = "0e21f3ca04c37439768a9ddd9de73dc725c688a109e25b95061c4fb241361820";
+ sha256 = "0cb3605c842e5b69719b456a41944e7afc5150c77038a7e946abdb16a148e096";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/es-CL/firefox-93.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 = "418fbd415180600791b91500a69811447578102488642c4b6e9c8d9f0d7f94ea";
+ sha256 = "13d085bbef8bae604488de620aea95d4088b898bccd11e8b597f36909a1e8f85";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/es-ES/firefox-93.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 = "6744d826f205b162800c8c32bd4955e84ea284b6c92450ed88f1b947d4ac0bbf";
+ sha256 = "30e153b20288ba67ce74a59ef0a66f9ef133580b445ed51044660f96b8e7e71c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/es-MX/firefox-93.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 = "242f2d561482a1fb9859bdadb6db2756378ef364bd622485639282a537c9d7e7";
+ sha256 = "75352b7d2f3f216888b86c31e1f89e4082cdb859feaac0d3c00138b5bb90052d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/et/firefox-93.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 = "df71885748c89e6298467d70486193404ad83db7e2f77a6eae70a80df73a11df";
+ sha256 = "5bd55749ab95983248d19eb5895dd982598e0857c43fd7f658fa3672203d0fe3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/eu/firefox-93.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 = "487ef0a284b3979d5eb758bb91a51b177606b9e2a40418df914d5ee0854852c3";
+ sha256 = "015a815e7588cb5845d6d38c83d27088198986e35db13d38bbed1a9bd47e81c7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/fa/firefox-93.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 = "30e9d9421a3b13555008ce6f422e7567ecaeedbd7d06fd5c2e9d5a22b9f93f0f";
+ sha256 = "ae117c651dce5b8e242a56d37a337c94f52ecf5453ea1d579c838c9bc8ca2728";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ff/firefox-93.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 = "76339d6f61adb1fd0c33b1e37902d9af4442d4d0cdbf17bc87da5d025e1658bf";
+ sha256 = "e92cdd13973fbb41d89ed4207b7f0f1ecb989dab357d765c18032343b3216de9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/fi/firefox-93.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 = "ce7d5435d3b25f3db558a226ab99932f26d1de68a32c801693ff809f83f5ce80";
+ sha256 = "7593d7aa6970664e60b04bdb20b389ac26213d5c0c39343c02878494cdac5184";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/fr/firefox-93.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 = "788d1fc89d22cf2a69bd412937d3a94326e780eca272eca7410d1119b2a95234";
+ sha256 = "5ff6d42610957ac8dde0bf979f775a0d6628ebb88eaf8e2d5964b396f6b6603f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/fy-NL/firefox-93.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 = "d691253a24487b32a646aa7c10b36ae0f35523ee4a22a1d35d41c5e871117d73";
+ sha256 = "c7d688238e7bbbd736e276a99d08941f8d4b232a9d622181afd84c516f8ca3b9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ga-IE/firefox-93.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 = "6f5c0ccf72bae2d35be9b256c9453d4f53c60252a09b51a96d46ae2296728277";
+ sha256 = "9faa422501a3d435be9f6d45415cc30a0e38e41314bf6bbf0cb866e3788c1430";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/gd/firefox-93.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 = "ac0d3239cad9315cb5a2441d287c741c44ea65656efd2a8f9c8dab88818bc8ca";
+ sha256 = "9a09850afb66abd76c5c4f49bc6b74fef9d2f8a7f143575a3f6aad14d5b1fa97";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/gl/firefox-93.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 = "6e0f03f1f6eb30e0052ea5a4dd853f9ce4a028fae099287e8ebfffc7b45f5aed";
+ sha256 = "81f678ba67891560e520ab26eb419d08c0798b44e018ebe2a7af8e48e40ff659";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/gn/firefox-93.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 = "c5544c5847c8e1a3ed8a0ad4be937fa072fb2bf4cdb1860ed7212611cde645cc";
+ sha256 = "a913a6e22d1e34c407eb804d6d53724e2240c1e158a1da05bf5f14ea161026d7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/gu-IN/firefox-93.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 = "7375ccbfc1e179282dfd2835b8b67dabdea4e2edbe8689dbc42ab08d518b1538";
+ sha256 = "5ebe57f52fe5b15f70d3246112b164cca27c9bc35032c077adc1007c8fef5e83";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/he/firefox-93.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 = "c918f748d226ddd8891b87c11958f9fe4df871d94bffa089fdf9d2830955b824";
+ sha256 = "6275efe3761abe08372465aa660de4feb34bc0a16f6ba1f4ca7861c758c38821";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/hi-IN/firefox-93.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 = "99c86d7ed9f027a5b1f7593c840ec8c401e87bba07e90584a61e59a0d67af348";
+ sha256 = "920adec16d84adb0f000e75657f53ff17983b64cde0120bebdc2eb4d0bc1d975";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/hr/firefox-93.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 = "8884a70c80d07cdb57a8f825db50ce7f073da01a09860ba9db5a69a94d82825f";
+ sha256 = "39ba25071789f170129dc426e3d82756882c754125578e86f2f0da2fd9f8a9b0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/hsb/firefox-93.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 = "4828b9cbd728bf750d11c0e71554f9c84ed6a19303cb78e35b909f7b11a7a563";
+ sha256 = "3df9c6836a220182fb9b6c392a2b85d5680689835d2164fcc4bdba3a4ff06f46";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/hu/firefox-93.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 = "6faa65b0559dd42a63199bcc576d64c9ea1140df259ef0e0c0b26f0bf0b938f6";
+ sha256 = "55d914ad230f54086e32d2a2fff4dac2f7bac8d75cbefc5d78b247c55d4ac406";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/hy-AM/firefox-93.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 = "c7aaf4ab6e126608db0027524226fcd62ca6ac781d06da0bdbb0547aa0356480";
+ sha256 = "d99b6919fb5330cd60c494815260cdc7e5032f14d0cf9f7a8247aaa579b89136";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ia/firefox-93.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 = "fccedf58c92bf64e15a2d4edfc8ad9b1098589821e395a5ed4455b030faf3584";
+ sha256 = "16a4c0f8dcde298b0de46536ad55f213f29277b714635b2ff8a60b637b93a8e4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/id/firefox-93.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 = "79d69217a8888f00753ad5d2ce9368a3094f5454a0fb6117ceb9c82a271688a0";
+ sha256 = "ee7b5124c884848c62f5cbcbac5af3238c040541c30293ff3c6b097a439cb22e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/is/firefox-93.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 = "ba948a6f3b48ce5dac9090c0fdbc90bbbac3a04618a3891c0a77c033c61969b5";
+ sha256 = "39b77a3ceb6a71553ff8f17f7a21f84d51f6e91b6b2d890be6782ef8e8d8820c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/it/firefox-93.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 = "dcd7e0357c115395040b5a33f5f3aaad07d1c7094f4068d2c2690ec28c915a30";
+ sha256 = "b0d05e2c777bea2abd0cdd91d2ada36db717b194e0b2b2774e4c9d7b6d4d9864";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ja/firefox-93.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 = "1d936db1e57e0fdf34a6bea460a19e2fd21a55078c50c9126d2d43041fb3d78a";
+ sha256 = "c22b8859cfd95c42294c471911244a0e7cd2bdb9fe409822ae2568180e18be7b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ka/firefox-93.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 = "394659da7197aa055f4452edb4594850eb5300dd13940c14741ae0272337b16d";
+ sha256 = "beaa70c670923e5df4ac0aeebc63168252c307d6c094ad05ddab484c60946071";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/kab/firefox-93.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 = "7c8fd02d0cb5c93cdeb8119ede9ffa54ad5f0546fe65a655a31b23ba5bb251ab";
+ sha256 = "6a530d2ab5e58376f3ed652fba6c57cfb12961cef5906ebb3ef8af4509ad3750";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/kk/firefox-93.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 = "3a60f6d34d7b1563d58d58019333997f1afc548dbeccb16cc2d053b4a7082479";
+ sha256 = "d192dcc8137129a1c35963a4c66e63e4200d32d7d8b4d5affa0153387dfc697f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/km/firefox-93.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 = "d480093c6c276ff17eb4d001613381e8b72018a9774acc667d1a774fc71d599e";
+ sha256 = "0a056f6eed84c23074cca2f25a82c668f180eec8f74c8b4b6141251d6b8c8e3d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/kn/firefox-93.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 = "0aa8200106375275f358a732acbe658193eea29e6fca65072f9e3de22d88eb42";
+ sha256 = "9ba1637fd1f5368567483f8ed5ff8126cc76352f7d46782070850e19443f3e16";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ko/firefox-93.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 = "a5b2118e3761dfd182893621f045d7cadf7a75f15b46208a0f2ce878bc1a1b2e";
+ sha256 = "cd37ae7cff4c843a7a2caa8dffe54f9faca26610bc74706f43bb1f069b1423f7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/lij/firefox-93.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 = "583110560cf65f6968e3cb5080227de3c47b9df3404a793a892be7985b132115";
+ sha256 = "9f74cfc8fad6f83c3d5e79b22502a108356b2a0259514b6a958b930b82953b21";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/lt/firefox-93.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 = "e9eca5885a67bf0cb8b1ac00d3f5ea0c1b829743ae710975f3cda3e09d226849";
+ sha256 = "831d4b7eab6e9c41df904f19e0af4a9ac572ecd7116fe5f50fef7b878d95a97d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/lv/firefox-93.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 = "4d969ee872531b2058752058bf90dceecb6c8050458d5cba5f96c82f0a6e301d";
+ sha256 = "7d95a06c4a0a474e34339e94ae2b5da8f2f671f6c4e834808ea2e8a6746be665";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/mk/firefox-93.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 = "322985bb11f4e6f2f7a4da6606dda4af74d7eb63bef34b6e7b86618804adba5d";
+ sha256 = "4bdce5f56d567673b9217949ec28b85dc5e04dee820091af0181121a0d96ca40";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/mr/firefox-93.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 = "1dfb359ada64faea03068afbe32e14431edfbdfb61ea61590ccffc954d637c55";
+ sha256 = "85c5b8fb78f8c9848e02dfdad4ad9375722d3d93e39cbe33e993709113598eab";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ms/firefox-93.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 = "6c8541db16063140c63dcdc6314a38c049a2179376f3cdf80787cae774dac267";
+ sha256 = "3ee490fb26655a317e31802d8c5ec845d2b7cb42393032756cb17380609bca22";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/my/firefox-93.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 = "3131c70b51193a8cb0a3ca18207c6001d8ba5f458af214ce5280924d5700782e";
+ sha256 = "4a2e59d2e34bbe3626facfa81e6110cbdd753b05fe077999f2824b6b7089892a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/nb-NO/firefox-93.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 = "be47aa5951f3c07e11e47959b4718b21bab16085d25469fb4eafe406caddb181";
+ sha256 = "78c4f405de0d4c586a4a0fcf616f5e776aea84eb955b8201221b9599f93bda6c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ne-NP/firefox-93.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 = "4dfacf4d17838e75c51f60b26d8f66b0bf3a0bad9c2d9e2854c107fb30d8757c";
+ sha256 = "9992fb97625500a732ca8c9bef32883d1ec34c5bd88f64dcd35c6097a7e40f9d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/nl/firefox-93.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 = "9f9e628c3809f9e7afc5a338abe4854a54c3cf6b8fdcb59de8a306b09a22bda1";
+ sha256 = "eaa09031df88bdc093e9ca952e92d0906016b2db6ef00dcec5c7f0cfef7300f8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/nn-NO/firefox-93.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 = "32f057f0ff57c17f010e19ca6f3cd0d11b6ee454401f1ec57e42c08ca1ded04d";
+ sha256 = "1834a51455b46e2bc05396764e892f7033bd88dd38d3b1f5ff2a5372f8082bd4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/oc/firefox-93.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 = "681702c8a8d6d2b0fda8f4701c7c77fa305d3483c3d5f070d31c2b8006638f74";
+ sha256 = "8ad55eacf0c83e9da6b05a8969c8255ec1525a81d37fad70a6d3b4b2127aeec5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/pa-IN/firefox-93.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 = "080794608bf065d92431fc5d822eae12373b3f60677229303af30e07e40a8751";
+ sha256 = "31af504f238ccdb0c7c13a3439e4282d04112c75ae8c37a4af234907006bd466";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/pl/firefox-93.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 = "e44448176c0275da5e5f44b2aa4f6b378699cf44aa015e8f03513b89b204f5d8";
+ sha256 = "be7e60b53d7af9ba8e37bdb0cb96d0c3413aa91d0d18fb2a75c290a30c7cec50";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/pt-BR/firefox-93.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 = "fb970290b6efba30ac36f145ac57ad2d65045bd3757c78cd006864f841c1d52c";
+ sha256 = "5911470fe3f22815441e671e3cd735a6910f1f4971fbe38be1fc5d900101fd3a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/pt-PT/firefox-93.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 = "97af8a13778621c873dce9393b5653f48a440f401a61e4a7401a49253d6b3ec3";
+ sha256 = "63970065b91fe06990bfff3c64bed42462fe7f1b503952ef0fc1126a2c0ec1e7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/rm/firefox-93.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 = "ae7852c30969fef6e8ba6d8e0fb932c5c63eeb9867a42e32135d193f8ee4ae7c";
+ sha256 = "19b27c0397ef1cc2e66b824bfc4ce1ecd898d66e636cf91ac0d427eeffd2790b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ro/firefox-93.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 = "94e69e8e91da2e22a2ac0fce179b62b246cf9eaf7a662f348907350562951262";
+ sha256 = "058262df85b83bb7f0b63a9ba1c37515171c420f961bf552f2957429be28ebca";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ru/firefox-93.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 = "3460e2a2fb34f952bfb099671980207de7b5a45a8c5f4a7f79f2c050e6bc5e82";
+ sha256 = "66741e268de073845609a4c0cbd7c7a2924682bf67be8a868908351adbb1926e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/sco/firefox-93.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 = "8e1adffa5e7a46ddcad564e4d7d01b19b3c851eed451cd1e83608c634f9e8fbc";
+ sha256 = "81950d16c18c117141f4ed029c341c2eaff9cdc8e6686542f8bda6143ffd217a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/si/firefox-93.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 = "0ed0ce0025e1ecf7b3fef2cb011b5c5fcb0e3eb67a0159e80b6c116b9034277f";
+ sha256 = "48e007a94382ff436084b2ca430e733516540810590caa18c126f4c02fd7cdba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/sk/firefox-93.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 = "1e1334c2e55a27b6b653d038f4ef30d8655b3c7c253365788cdfd92117bb1e47";
+ sha256 = "41aa765eddc48c9ca6f54d4a7a5e0a560ca5fe09301baa9a2936f0ed2b6496f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/sl/firefox-93.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 = "dc91d34c44bf240b2c6c9b4285c5a7b24f3c509ee5f9de300e9a6c2ff1228ebb";
+ sha256 = "4abb659a46008a4945d4fc6aff3e2ea44b11ae3b018ceeba71001f316f43c008";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/son/firefox-93.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 = "29121af73aaeda8e346df00f8831a3c80c77eb759604cd51c8b39597e3f7a6ea";
+ sha256 = "1dbe56489541537d0146914b675b3865dbd99c81535b999bb0127049145f5e0b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/sq/firefox-93.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 = "2d7ca2e6680d909659241561ec2d24369749059acc642d9db8ca90d8e67201d5";
+ sha256 = "320d96283c35b31d1ea8b064b42b535bbb05914a8990a9c57c3eb70d9d00d70b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/sr/firefox-93.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 = "63ba06a120ac6702350330758aa98671feb1a008bbe08ab2b11d92d556a22a2d";
+ sha256 = "67f3110abcc7a6ac809bfd736fc93896f43a2b74af6050232f73d7a9241f77ba";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/sv-SE/firefox-93.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 = "f2f59f378be886fc283a84f58ccea2c8ae2f2313435557122b1dd7161ba03853";
+ sha256 = "7449ccd7d60310d2fbf3a41f29f26ad367f68cf7818bc52dd88b13fb36934f40";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/szl/firefox-93.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 = "df9fc3563749939e20351021f90da4060adcf9c50eae74cc65eacc4c8e019e6c";
+ sha256 = "2b618f1d76b7956ae155300a12762b798674e75ebbf45dcb7f9117354d4f7b37";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ta/firefox-93.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 = "2f1cef7b50cc9d44f816ab09c38a1b91a63fec3eee65d97a5a8637f503ed7eaa";
+ sha256 = "02748056d19f789cdcde3a177da3e7f18445761a98b12eecf977ff5eb03be395";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/te/firefox-93.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 = "40385b07128cccea8a3210c301795ebaf32c860423c3206297f3ebe2363d868b";
+ sha256 = "6b566444e09255848619616a90c077992ed8ec5f37c3f05dd3dcd73b56f69257";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/th/firefox-93.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 = "e62c3317af6ba5ea55160898c628eaef21eba1be94a77de5c5280dfad12eef65";
+ sha256 = "5fd70591f901e830139ed969bf3ecacbfa7bce8f14ca5a8b2606f25e56b87c2c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/tl/firefox-93.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 = "801226da66a4a08d48483ef894e8cd4076e0f9381ab949c619d976323ceac02a";
+ sha256 = "418d24e78a4c981722e53427bb124fdd9fb8f5292a1e2f0b2d3aa8e4cd33111c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/tr/firefox-93.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 = "dde8d3b8947b8a9b87c6451cc4c1ede7fd0bb0eeb5f86eea4b58a3fa20028038";
+ sha256 = "b4abfd964b934d2f7118c13d73a2d321540a16e5f7e84f3b7589f905e85d570f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/trs/firefox-93.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 = "1b0ca6672e149b343345f1d8fa7cfbe94054a9a4d67d6d04b4c06e7216e8be38";
+ sha256 = "7e656c2c1be7e42d68913328c4d1e8de711b2af75fe8125337750c7be040f228";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/uk/firefox-93.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 = "2eecee8d2d5f34222b0009b6f5e7638e650e5b692cbdafc2f1710da677ad1e5c";
+ sha256 = "f7e621633585fc7abd7ab63d4148ffb25b5717ac4e01d2ec9c456fac6c05b22b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/ur/firefox-93.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 = "1386c6c018807e4ca189d6a9b400c3d6bd55abafee476f88b4ab7b958017d460";
+ sha256 = "ba8656ec5386b77fcc850be8f5218c3bfca154a2aadf20248bf3307290c03646";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/uz/firefox-93.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 = "7f92bd0536d32ca7af1f8dbe4fd7dd5eb7ce8c2f2d1383b21bfd5b1c8c7ca30e";
+ sha256 = "f3ca1728f5bd101c57171c820f6831fa1c2d2c03cfc84aa52b47d74d6a044dda";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/vi/firefox-93.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 = "04d7ac16f2d28bfe3d70e717c8a4ee10c291bea54f022521eb22856d41f421ae";
+ sha256 = "98d119cea1d534c5390c68066424eeca8cccf8c842e27608aff1a66fb07feda0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/xh/firefox-93.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 = "12591a4fe50ef293015484dcef03d43e1922cca4724b3901d38e0cd136b12274";
+ sha256 = "980e757674515b98d197ea27a33d8b3f9fee9a284a578c22f76b038917007b86";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/zh-CN/firefox-93.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 = "a9b69bde93512f6531740a4bea967717fb56ad5cfe88a9b89db0e4fc1a971feb";
+ sha256 = "87f6d9188135de2389c2288324ed2063aa5adc21ac7c1412d99922d75e0f0156";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/93.0/linux-i686/zh-TW/firefox-93.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 = "3c790d0a8ba551c22e7b92bd993eb077159e21e2e3748e64d2aa635739511c36";
+ sha256 = "10a77bf3f63e669226bb44c6ada46c8224b73b9bfa03d05480fa6255fa9744eb";
}
];
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/common.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/common.nix
index 2600b5209bb..c99d1c10a12 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/infra/libkookie/nixpkgs/unstable/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, glib, pciutils
-, autoconf213, which, gnused, rustPackages, rustPackages_1_45
+, autoconf213, which, gnused, rustPackages
, rust-cbindgen, nodejs, nasm, fetchpatch
, gnum4
-, gtk2, gtk3, wrapGAppsHook
+, gtk3, wrapGAppsHook
, debugBuild ? false
### optionals
@@ -91,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;
@@ -117,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
@@ -137,27 +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";
- })
-
- ++ 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
@@ -165,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
@@ -179,7 +153,7 @@ buildStdenv.mkDerivation ({
# 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
@@ -187,11 +161,9 @@ buildStdenv.mkDerivation ({
++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
++ lib.optional pipewireSupport pipewire
++ lib.optional jemallocSupport jemalloc
- ++ lib.optional (lib.versionAtLeast version "82") gnum4
++ 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
@@ -203,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 =
[
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
deleted file mode 100644
index 18d31356989..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch
deleted file mode 100644
index b6f1b81fa9f..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
deleted file mode 100644
index 3530954ea5c..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/packages.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/packages.nix
index 80750b966c1..d1cbe5d4473 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
rec {
firefox = common rec {
pname = "firefox";
- version = "93.0";
+ version = "94.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "b29890e331819d47201b599b9feaaa7eaa0b02088fcbf980efc4f289d43da4f73970bf35ba2f763a2a892fd5318deb68cb9a66e71e9bc0c603642434c7e32e91";
+ sha512 = "5eb65450a0f1842d28d73235f3ef95fa1dbf8cf1467c354f13df51313bd227aaf5a48b741ee49b13378aaaf054bff52004c1dd5a274eddef4a3cf1b913ef7071";
};
meta = {
@@ -32,10 +32,10 @@ rec {
firefox-esr-91 = common rec {
pname = "firefox-esr";
- version = "91.2.0esr";
+ version = "91.3.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "f4cff7e43ff9927cbab3f02d37d360ee8bb0dbe988e280cb0638ee67bfe3c76e3a0469336de1b212fba66c958d58594b1739aafee1ebb84695d098c1e5c77b9d";
+ sha512 = "7cf6efd165acc134bf576715580c103a2fc10ab928ede4c18f69908c62a04eb0f60affa8ceafd5883b393c31b85cae6821d0ae063c9e78117456d475947deaa9";
};
meta = {
@@ -54,29 +54,4 @@ rec {
versionSuffix = "esr";
};
};
-
- firefox-esr-78 = common rec {
- pname = "firefox-esr";
- version = "78.15.0esr";
- src = fetchurl {
- url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378";
- };
-
- 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/lagrange/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/lagrange/default.nix
index c0542014b7e..6217862eb15 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "lagrange";
- version = "1.7.2";
+ version = "1.7.3";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${version}";
- sha256 = "sha256-iJ6+tc5nls8E/9/Jp5OS9gfJo8SJ5bN+Im/JzEYEAfI=";
+ sha256 = "sha256-peBdmz/aucrKO5Vsj8WkHkpGpLm4inQHee133Zph3MM=";
fetchSubmodules = true;
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/qutebrowser/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/qutebrowser/default.nix
index d245e7035a4..e9281547667 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 8ac9235121c..c679b568736 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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,7 +87,7 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source
- version = "10.5.8";
+ version = "10.5.10";
lang = "en-US";
@@ -98,7 +97,7 @@ let
"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 = "1bn31r3cayv79pjw5ndji5qzxy552cb2mcavij3nwchsmnfqp4z1";
+ sha256 = "0mvclh2f2lqj5kf98p0xdbaa6wxshwb8dkcna5sl561cw8nnayc2";
};
i686-linux = fetchurl {
@@ -106,7 +105,7 @@ let
"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 = "1j3xxflwwjwxfayixj75dn6a2ka751s53f60dpkfzwpp5rfwl572";
+ sha256 = "1g714abhh3ynmparb516z5syl7i64n7s5mga0zxb4598bhzi5zkg";
};
};
in
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/yandex-browser/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/yandex-browser/default.nix
index 7fa9fb5237a..a54ccfdf6cc 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/yandex-browser/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cisco-packet-tracer/7.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cisco-packet-tracer/7.nix
new file mode 100644
index 00000000000..33f35ba12af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cisco-packet-tracer/8.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cisco-packet-tracer/8.nix
new file mode 100644
index 00000000000..c823dcbb1d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cloudflared/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cloudflared/default.nix
index c959dd61bad..338d0b3b9f3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cloudflared/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cloudflared";
- version = "2021.9.2";
+ version = "2021.10.5";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflared";
rev = version;
- sha256 = "sha256-UAx3DY8d3I1g7DuNmBu4w+3NGUQqDdcScXdtq/VkpJ8=";
+ sha256 = "sha256-vz7S6Qzr10Idy83ogMIHEHrjxGxxjtFnzNsuhbZqUnA=";
};
vendorSha256 = null;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/argocd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/argocd/default.nix
index 91ccf67f557..3eddad8c823 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 ];
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/cilium/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/cilium/default.nix
index 5984710d8c2..2351b41369e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/flink/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/flink/default.nix
index ccefd6d3de2..55f3e23ad6c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/flink/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/fluxcd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/fluxcd/default.nix
index a2b61a66e11..bc6ef18c644 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
let
- version = "0.18.3";
- sha256 = "0nvvjc0ml1irn7vxyq4m43qimp128cx8hczk21y5m39i2rg4yzx4";
- manifestsSha256 = "1qgw9ij0b85vvdx03wmbbwanhq1hf69wphy58lsqwf33rdq0bb1m";
+ version = "0.20.1";
+ sha256 = "1cbppkfw5jb0w36jjg32a4kffq616zdmib4kdhny4wwgskq4b2ng";
+ manifestsSha256 = "0hwza39a31fjk37lgd0bdk8ja46sradyvkrnq2ad587zr8a8ddvb";
manifests = fetchzip {
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
@@ -23,22 +23,26 @@ buildGoModule rec {
inherit sha256;
};
- vendorSha256 = "0vgi5cnvmc98xa2ibpgvvqlc90hf3gj3v17yqncid596ig3dnqsc";
+ vendorSha256 = "sha256-pY+fTOZocHygT8GdRQGOujr+Pik2f21H8cqIFBKvzYQ=";
- nativeBuildInputs = [ installShellFiles ];
+ postUnpack = ''
+ cp -r ${manifests} source/cmd/flux/manifests
+ '';
- subPackages = [ "cmd/flux" ];
+ patches = [
+ ./patches/disable-tests-ssh_key.patch
+ ];
ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
- postUnpack = ''
- cp -r ${manifests} source/cmd/flux/manifests
- '';
+ 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
@@ -62,6 +66,6 @@ buildGoModule rec {
'';
homepage = "https://fluxcd.io";
license = licenses.asl20;
- maintainers = with maintainers; [ jlesquembre superherointj ];
+ maintainers = with maintainers; [ jlesquembre ];
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch
new file mode 100644
index 00000000000..5e28589c69c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/hadoop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/hadoop/default.nix
index 589ce21fe87..0e8e652fbb3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
}:
-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;
- };
+with lib;
- 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";
+let
+ 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 ]
+ ++ optional (nativeLibs != [] || libPatches != "") [ autoPatchelfHook ];
+ buildInputs = [ openssl ] ++ nativeLibs;
- nativeBuildInputs = [ makeWrapper ];
+ installPhase = ''
+ mkdir -p $out/{lib/${untarDir}/conf,bin,lib}
+ mv * $out/lib/${untarDir}
- installPhase = ''
- mkdir -p $out/share/doc/hadoop
- cp -dpR * $out/
- mv $out/*.txt $out/share/doc/hadoop/
+ 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;
- #
- # 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
- '';
+ meta = {
+ homepage = "https://hadoop.apache.org/";
+ description = "Framework for distributed processing of large data sets across clusters of computers";
+ license = licenses.asl20;
- 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" ];
- };
+ 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 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_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_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_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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helm/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helm/default.nix
index 425e7e2c246..f13c812d604 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helm/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helm";
- version = "3.7.0";
- gitCommit = "eeac83883cb4014fe60267ec6373570374ce770b";
+ version = "3.7.1";
+ gitCommit = "1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${version}";
- sha256 = "sha256-dV6Bx6XVzPqaRBeCzEFR473xnxjff4f24jd5vETVX78=";
+ sha256 = "sha256-NjBG3yLtvnAXziLH/ALRJVaFW327qo7cvnf1Jpq3QlI=";
};
- vendorSha256 = "sha256-Q/ycpLCIvf+PP+03ug3fKT+uIOdzDwP7709VfFVJglk=";
+ vendorSha256 = "sha256-gmyF/xuf5dTxorgqvW4PNA1l2SQ2oJuZCAFw7d8ufGc=";
doCheck = false;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helmsman/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helmsman/default.nix
index aa0abbae429..47da659d7e1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "helmsman";
- version = "3.7.5";
+ version = "3.7.7";
src = fetchFromGitHub {
owner = "Praqma";
repo = "helmsman";
rev = "v${version}";
- sha256 = "sha256-QJXCVcEf23oaTDemoCV/2aaajbubfXg0AfZrlSTS4Ag=";
+ sha256 = "sha256-duNkvRMq3CKAGDDsrDWKydFZRt6fxuO0uP2Ff3HA+ek=";
};
vendorSha256 = "sha256-4imZrZfpR/5tw9ZFSTr7Gx4G9O1iHNE9YRYMOJFKvHU=";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/istioctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/istioctl/default.nix
index 508ea403c5f..acf9cea24e6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k0sctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k0sctl/default.nix
index b552af837bd..689922515de 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -5,13 +5,13 @@
buildGoModule rec {
pname = "k0sctl";
- version = "0.10.4";
+ version = "0.11.4";
src = fetchFromGitHub {
owner = "k0sproject";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-22jZWRnymIYN1LlGOo8abVx8DTUe9VK1xAHddLknt6A=";
+ sha256 = "sha256-Fk1aYSa3LqzxiHtlzH5pcNtodOprjfnCFh4UMqCa6Rc=";
};
vendorSha256 = "sha256-N4cU9wzBRZn71mZHkNDXKgSXvlN2QFS6K4MtlR25DJc=";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/default.nix
index 822a2c4b70a..77a9ef70dbe 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/default.nix
@@ -13,7 +13,6 @@
, pkg-config
, ethtool
, util-linux
-, ipset
, fetchFromGitHub
, fetchurl
, fetchzip
@@ -43,24 +42,24 @@ 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
- k3sRepoSha256 = "1w7drvk0bmlmqrxh1y6dxjy7dk6bdrl72pkd25lc1ir6wbzb05h9";
+ k3sVersion = "1.22.2+k3s2"; # k3s git tag
+ k3sCommit = "3f5774b41eb475eb10c93bb0ce58459a6f777c5f"; # k3s git commit at the above version
+ k3sRepoSha256 = "1kjf2zkm5d3s1aj4w9gzsc3ms3a0cm900fyi9899ijczw1cbrc61";
- traefikChartVersion = "9.18.2"; # taken from ./manifests/traefik.yaml at spec.version
- traefikChartSha256 = "sha256-9d7p0ngyMN27u4OPgz7yI14Zj9y36t9o/HMX5wyDpUI=";
+ traefikChartVersion = "10.3.0"; # taken from ./manifests/traefik.yaml at spec.version
+ traefikChartSha256 = "0y6wr64xp7bgx24kqil0x6myr3pnfrg8rw0d1h5zd2n5a8nfd73f";
k3sRootVersion = "0.9.1"; # taken from ./scripts/download at ROOT_VERSION
- k3sRootSha256 = "sha256-qI84KYJKY/T6pqWZW9lOTq5NzZiu//v1zrMzUCiRTGQ=";
+ k3sRootSha256 = "0r2cj4l50cxkrvszpzxfk36lvbjf9vcmp6d5lvxg8qsah8lki3x8";
- k3sCNIVersion = "0.8.6-k3s1"; # taken from ./scripts/version.sh at VERSION_CNIPLUGINS
- k3sCNISha256 = "sha256-uAy17eRRAXPCcnh481KxFMvFQecnnBs24jn5YnVNfY4=";
+ 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;
};
@@ -257,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
];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/update.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/update.sh
index 34257fcda2f..01b3434b5ba 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/update.sh
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/k3s/update.sh
@@ -12,7 +12,9 @@ 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 | sed 's/["|,| ]//g' | sort -V -r | head -n1)
+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\""} \
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube-score/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube-score/default.nix
index 707abd5e2bf..6ef24ded1a6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube3d/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube3d/default.nix
index 2c571ff83a8..b30d6999470 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kube3d";
- version = "5.0.0";
+ version = "5.0.3";
src = fetchFromGitHub {
owner = "rancher";
repo = "k3d";
rev = "v${version}";
- sha256 = "1pkrcjr78xxw3idmyzpkbx0rp20972dl44bzwkkp06milrzsq27i";
+ sha256 = "sha256-BUQG+Nq5BsL+4oBksL8Im9CtNFvwuaW/HebMp9VoORo=";
};
vendorSha256 = null;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubecfg/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubecfg/default.nix
index c46c6ed2630..5efee961b42 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,10 +1,8 @@
-{ lib, buildGoPackage, fetchFromGitHub, ... }:
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
-let version = "0.21.0"; in
-
-buildGoPackage {
+buildGoPackage rec {
pname = "kubecfg";
- inherit version;
+ version = "0.21.0";
src = fetchFromGitHub {
owner = "bitnami";
@@ -17,6 +15,14 @@ buildGoPackage {
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubeconform/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubeconform/default.nix
index 7249c2a5cef..29a8388bd5c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubernetes/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubernetes/default.nix
index 13b15da38cd..c974b830344 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kumactl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/kumactl/default.nix
new file mode 100644
index 00000000000..d13db27444f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/default.nix
index ac85ef8a6a3..958640af659 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -2,7 +2,7 @@
(callPackage ./generic.nix { }) {
channel = "stable";
- version = "2.10.2";
- sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0=";
- vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s=";
+ version = "2.11.1";
+ sha256 = "09zwxcaqn537ls737js7rcsqarapw5k25gv41d844k73yvxm882c";
+ vendorSha256 = "sha256-c3EyVrblqtFuoP7+YdbyPN0DdN6TcQ5DTtFQ/frKM0Q=";
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/edge.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/edge.nix
index 8f2b9cda0b9..8744c0f1744 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/edge.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/edge.nix
@@ -2,7 +2,7 @@
(callPackage ./generic.nix { }) {
channel = "edge";
- version = "21.9.3";
- sha256 = "0swqx4myvr24visj39icg8g90kj325pvf22bq447rnm0whq3cnyz";
- vendorSha256 = "sha256-fMtAR66TwMNR/HCVQ9Jg3sJ0XBx2jUKDG7/ts0lEZM4=";
+ version = "21.10.3";
+ sha256 = "09k4c0dgn9vvgp6xb20x0vylk6bbd03srk3sra8vnpywwi591mcv";
+ vendorSha256 = "sha256-uGj1sMEa791ZKA7hpJ1A9vtwsmrZDGAYp6HQo6QNAYY=";
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/generic.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/generic.nix
index 82172ebb992..f2c4183f479 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/generic.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/linkerd/generic.nix
@@ -54,6 +54,6 @@ buildGoModule rec {
downloadPage = "https://github.com/linkerd/linkerd2/";
homepage = "https://linkerd.io/";
license = licenses.asl20;
- maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ];
+ maintainers = with maintainers; [ Gonzih bryanasdev000 ];
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nerdctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nerdctl/default.nix
index 2a6d642d0c9..874a6fdecc4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "nerdctl";
- version = "0.12.1";
+ version = "0.13.0";
src = fetchFromGitHub {
owner = "containerd";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-FRu1h6DT43rPaa9dcgz83w9K+xtzJgB4l/eTu+Fbb+c=";
+ sha256 = "sha256-uyLY2yH/6J0rtra0brBATadPqrNyyuCcaGfOrng9h4Y=";
};
- vendorSha256 = "sha256-QFACe1/5MVbXKTknEyqjWclEQgJSZAJ/QljhLq/tWe4=";
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/default.nix
index 4002f7478b3..9eabf0ac1b5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/default.nix
@@ -62,6 +62,7 @@ let
pkg = interpreter.pkgs.nixops.withPlugins(ps: [
ps.nixops-encrypted-links
+ ps.nixops-hercules-ci
ps.nixops-virtd
ps.nixops-aws
ps.nixops-gcp
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
index cc40395d6d9..b542a1eff95 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry.lock b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry.lock
index 08e6b714982..642b063368c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry.lock
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/poetry.lock
@@ -38,14 +38,14 @@ python-versions = "*"
[[package]]
name = "boto3"
-version = "1.18.60"
+version = "1.19.9"
description = "The AWS SDK for Python"
category = "main"
optional = false
python-versions = ">= 3.6"
[package.dependencies]
-botocore = ">=1.21.60,<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.60"
+version = "1.22.9"
description = "Low-level, data-driven core of boto 3."
category = "main"
optional = false
@@ -66,7 +66,7 @@ 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"
@@ -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
@@ -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
@@ -173,7 +173,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "libvirt-python"
-version = "7.8.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"
@@ -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,63 +621,68 @@ boto = [
{file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
]
boto3 = [
- {file = "boto3-1.18.60-py3-none-any.whl", hash = "sha256:8f3face72d2ac6ad36bd7724410548891ce338b350e6f98574890a7b1d425d78"},
- {file = "boto3-1.18.60.tar.gz", hash = "sha256:45709a04ec5fb67ce5a8eaade3eb0ab24d6eb08d9a9ca6bdb2153047896197fc"},
+ {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.60-py3-none-any.whl", hash = "sha256:890a5835ac00415ff78f1c7118a774aae83c0c70742284b68abd1176f9d05761"},
- {file = "botocore-1.21.60.tar.gz", hash = "sha256:3e746ca75fb7539ba3f001169264fa54dfaded2477ffc8bd979ce1e1df200620"},
+ {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.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.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"},
@@ -695,8 +718,8 @@ 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"},
@@ -711,7 +734,7 @@ jmespath = [
{file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
]
libvirt-python = [
- {file = "libvirt-python-7.8.0.tar.gz", hash = "sha256:9d07416d66805bf1a17f34491b3ced2ac6c42b6a012ddf9177e0e3ae1b103fd5"},
+ {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"},
@@ -719,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"},
@@ -730,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"},
@@ -741,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"},
@@ -753,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"},
@@ -765,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"},
@@ -773,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"},
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/pyproject.toml b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/pyproject.toml
index 09ffb54fa2b..3cd3025b1fa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/nixops/pyproject.toml
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/sonobuoy/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/sonobuoy/default.nix
index b82b6cf610d..13d15d0bf61 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/temporal/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/temporal/default.nix
index 60fdc690232..a03f69a9fc0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-docs/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 44ceb3f1622..50efacfd62e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 54959e45831..35493aa31b7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -57,6 +57,7 @@ let
libvirt = callPackage ./libvirt { };
linuxbox = callPackage ./linuxbox { };
lxd = callPackage ./lxd { };
+ teleport = callPackage ./teleport { };
vpsadmin = callPackage ./vpsadmin { };
vercel = callPackage ./vercel { };
} // (lib.optionalAttrs (config.allowAliases or false) {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
index ed2409ead9a..5e8b0bdc0ab 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
-
-buildGoPackage rec {
- pname = "terraform-provider-libvirt";
- version = "0.6.3";
+# https://github.com/dmacvicar/terraform-provider-libvirt/tree/main/examples
- goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt";
+let
+ sha256 = "sha256-8GGPd0+qdw7s4cr0RgLoS0Cu4C+RAuuboZzTyYN/kq8=";
+ vendorSha256 = "sha256-fpO2sGM+VUKLmdfJ9CQfTFnCfxVTK2m9Sirj9oerD/I=";
+ version = "0.6.11";
+in buildGoModule {
+ inherit version;
+ inherit vendorSha256;
- patches = [
- (fetchpatch {
- name = "base_volume_copy.patch";
- url = "https://github.com/cyril-s/terraform-provider-libvirt/commit/52df264e8a28c40ce26e2b614ee3daea882931c3.patch";
- sha256 = "1fg7ii2fi4c93hl41nhcncy9bpw3avbh6yiq99p1vkf87hhrw72n";
- })
- ];
+ pname = "terraform-provider-libvirt";
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
index ab3d07a7f47..4ea2194a03a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/providers.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 7be9c9cc742..ffcc0b3d43b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/infra/libkookie/nixpkgs/unstable/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.5.0",
- "sha256": "1hp3bwhlfiwf1a4l6xfldwdxmyjs4nq3n8g343grjya7ibbhh4sg",
+ "rev": "v2.6.1",
+ "sha256": "164x0ddgqk3bj0za4h9kz69npgr4cw7w5hnl0pmxsgvsb04vwc0g",
"vendorSha256": null,
- "version": "2.5.0"
+ "version": "2.6.1"
},
"launchdarkly": {
"owner": "terraform-providers",
@@ -727,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",
@@ -947,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",
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix
new file mode 100644
index 00000000000..733d1540874
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform/default.nix
index ba034056c95..8dfc8c701e3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terraform/default.nix
@@ -195,8 +195,8 @@ rec {
};
terraform_1_0 = mkTerraform {
- version = "1.0.9";
- sha256 = "0g97l53xrcafjrzz5inij4q4aaadibn5ilr5j39a6569pkvcvsh3";
+ version = "1.0.10";
+ sha256 = "1jcgp9q99785m85754ipza7b3dd3g58adpnyh5w2imqj01cas6mb";
vendorSha256 = "00cl42w1mzsi9qd09wydfvp5f2h7lxaay6s2dv0mf47k6h7prf42";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terragrunt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terragrunt/default.nix
index e07b9b88ddc..f2ae9a9490a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "terragrunt";
- version = "0.35.1";
+ version = "0.35.5";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-DCum3vCrN530Z0VW0WEoLtjN+kre/mU9O+sJxckZgfc=";
+ sha256 = "sha256-VUB1zZwRZ+TUFDcq/lBB9eAeM7d5zWhFy7nxzH5S6oc=";
};
vendorSha256 = "sha256-y84EFmoJS4SeA5YFIVFU0iWa5NnjU5yvOj7OFE+jGN0=";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terranix/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terranix/default.nix
index 89a96cc12ca..d06393718a4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terranix/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/cluster/terranix/default.nix
@@ -1,15 +1,14 @@
{ lib, stdenv, fetchFromGitHub, ... }:
stdenv.mkDerivation rec {
-
pname = "terranix";
- version = "2.3.0";
+ version = "2.4.0";
src = fetchFromGitHub {
owner = "mrVanDalo";
repo = "terranix";
rev = version;
- sha256 = "030067h3gjc02llaa7rx5iml0ikvw6szadm0nrss2sqzshsfimm4";
+ sha256 = "sha256-3N4a5VhZqIgJW11w8oJKJ9T8mhfwEM33kEwV/zZkCs8=";
};
installPhase = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/newsboat/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 289f631ee8f..65835aa10cf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/newsflash/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 012d00026cf..fdecf62c6a4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/rssguard/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/rssguard/default.nix
index 7fd2a9684ae..c3c58dc0756 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/firehol/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/firehol/default.nix
index 424c6772104..145fae2553a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/firehol/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/flexget/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/flexget/default.nix
index 96ed5a86a16..22fd08e3f4a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/flexget/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/flexget/default.nix
@@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
- version = "3.1.140";
+ version = "3.1.149";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "v${version}";
- sha256 = "15ngmpqqx902l7gxg2lb6h8q8vmjk247jbqhc92l1apr1imjqcc5";
+ sha256 = "1yrb8cfrc6y7gpfgzn0q6ldx9vk06qp229wjs4q8rccp72p6d6gg";
};
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/ftp/taxi/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/ftp/taxi/default.nix
index c6015a66963..411031f605e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/gmailctl/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/gmailctl/default.nix
index 3e0a20a371c..8d0b9915d0d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/gmailctl/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/gopher/sacc/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/gopher/sacc/default.nix
index 4d18f6a4f4a..64f58daec76 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/hyprspace/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/hyprspace/default.nix
index 89c04508b70..037feccca4e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/hyprspace/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 99e3a90b60b..7a241519937 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/dino/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/dino/default.nix
index d6d97b8e344..18f73de2fd5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -83,6 +83,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/dino/dino";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
- maintainers = with maintainers; [ mic92 qyliss ];
+ maintainers = with maintainers; [ qyliss ];
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 9cca8b95b82..fbc61c23b5c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/infra/libkookie/nixpkgs/unstable/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.9.2",
+ "version": "1.9.3",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index dd7c6f0c573..bce13052e5a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -16,7 +16,7 @@
}:
let
- pinData = (builtins.fromJSON (builtins.readFile ./pin.json));
+ pinData = lib.importJSON ./pin.json;
executableName = "element-desktop";
electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
in
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-web.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 33af19a9a57..fae96e8e5e7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
let
- pinData = (builtins.fromJSON (builtins.readFile ./pin.json));
+ pinData = lib.importJSON ./pin.json;
noPhoningHome = {
disable_guests = true; # disable automatic guest account registration at matrix.org
piwik = false; # disable analytics
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
index 432d69ac7a4..ae9627afe30 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
@@ -2,7 +2,7 @@
, fixup_yarn_lock, yarn, pkg-config, libsecret, xcbuild, Security, AppKit, fetchYarnDeps }:
let
- pinData = (builtins.fromJSON (builtins.readFile ./pin.json));
+ pinData = lib.importJSON ./pin.json;
in stdenv.mkDerivation rec {
pname = "keytar";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/pin.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/pin.json
index a85ce6f8789..dfb9791b3aa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,6 +1,6 @@
{
- "version": "1.9.2",
- "desktopSrcHash": "F1uyyBbs+U7tQzRtn+p923Z/BY8Nwxr/JTMYwsak8W8=",
+ "version": "1.9.3",
+ "desktopSrcHash": "Pb9iiCYtmuD6DzdvgY8c6pCFdVAxIIUZTWLCa7y5RMI=",
"desktopYarnHash": "0iwbszhaxaxggymixljzjb2gqrsij67fwakxhd3yj9g1zds49ghh",
- "webHash": "1d9kdj65yk86hx087x1p0qkm0cffaqkwgwzl74g11g264szz8ja2"
+ "webHash": "06lpb8i7fyimm06y6h3ngh19bx416if9lvs2ah2112vx28hs14zp"
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
index ff3b2ba9134..de38c7a90ba 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs-14_x, python3, yarn, fixup_yarn_lock, CoreServices, fetchYarnDeps }:
let
- pinData = (builtins.fromJSON (builtins.readFile ./pin.json));
+ pinData = lib.importJSON ./pin.json;
in rustPlatform.buildRustPackage rec {
pname = "seshat-node";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/gajim/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/gajim/default.nix
index ced3dcf5fe4..2b6cb9969e8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
new file mode 100644
index 00000000000..8cb748f5405
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/client-qt.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
new file mode 100644
index 00000000000..0c952fd1eca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
new file mode 100644
index 00000000000..b611885a611
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_linux
new file mode 100644
index 00000000000..6c40e8d2ea9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86 b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_x86
new file mode 100644
index 00000000000..2043aa3ee2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
new file mode 100644
index 00000000000..127e5b18f77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
new file mode 100644
index 00000000000..2e106289a96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/daemon.nix
new file mode 100644
index 00000000000..2fe6d7191e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/default.nix
new file mode 100644
index 00000000000..ee9762a8f03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch
new file mode 100644
index 00000000000..3ae017eb458
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/libclient.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/libclient.nix
new file mode 100644
index 00000000000..b5ea7431b91
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/update.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/jami/update.sh
new file mode 100755
index 00000000000..22233a81bf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/mcabber/default.nix
index 7c5bff94084..2ca94953c4f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/mcabber/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
index 10cbcb6c1d2..8af6811d6a5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
index 2170aac16e0..c0497ed86ce 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 341d9e1d840..a7ea5bee308 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -10,6 +10,7 @@
, gnutls ? null
, libgcrypt ? null
, plugins, symlinkJoin
+, cacert
}:
# FIXME: clean the mess around choosing the SSL library (nss by default)
@@ -59,6 +60,7 @@ 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"
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 359c0fa7aac..268a077e7c5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -3,7 +3,6 @@
, lib
, fetchFromGitHub
, cmake
-, qtbase
, qtquickcontrols
, qtquickcontrols2
, qtkeychain
@@ -15,19 +14,17 @@
mkDerivation rec {
pname = "quaternion";
- version = "0.0.95";
+ version = "0.0.95.1";
src = fetchFromGitHub {
owner = "QMatrixClient";
repo = "Quaternion";
rev = version;
- sha256 = "sha256-WqhHqo4ySxufulC+TxS2ko2R5hUiORgdNAkp5Awdcw8=";
+ sha256 = "sha256-6FLj/hVY13WO7sMgHCHV57eMJu39cwQHXQX7m0lmv4I=";
};
buildInputs = [
- qtbase
qtmultimedia
- qtquickcontrols
qtquickcontrols2
qtkeychain
libquotient
@@ -47,11 +44,10 @@ mkDerivation rec {
'';
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
deleted file mode 100644
index 94e0dc9c8c2..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
deleted file mode 100644
index 842060935b0..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
deleted file mode 100644
index e2cdb1f05b0..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/pin.json
new file mode 100644
index 00000000000..299598063c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
new file mode 100644
index 00000000000..4e1d330f500
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
new file mode 100644
index 00000000000..c1bfc98047b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/update.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/schildichat/update.sh
new file mode 100755
index 00000000000..3f5289de8c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index ea5ca8bebfa..e83e45370cd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
@@ -4,13 +4,13 @@
}:
let
- version = "1.7.3";
+ 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 = "0s0zvj9ddrngdzsx8hd07pq3150sq8ab1hbpsi9i2ir99sv1p7gn";
+ sha256 = "1yjah9ip3r2irvv2g9j0ql55nkmpwml7lngmq954xrkq9smrdrm5";
};
meta = with lib; {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 33a746e0395..59ff3554ebf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 7be5d62312d..70ada1d08d1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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
@@ -21,9 +22,43 @@ let
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.20.0"; # Please backport all updates to the stable channel.
+ version = "5.23.0"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@@ -33,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 = "0a57gajxjqkp7zcmjc3iiys06b7v53nd81gkwrsfn2gmshihlzkd";
+ sha256 = "0jan203zbrkb9scfdldwnvyvk4657a3pn0ws51xf53jhvvywhpg0";
};
nativeBuildInputs = [
@@ -115,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/default.nix
index a26fbed2a04..649cc8843d2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch
deleted file mode 100644
index 2f4830e27dd..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
index 6952654758d..fec988a94e7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tangram/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tangram/default.nix
index e7ca8c320ac..7cb9798517d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tangram/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/teams/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/teams/default.nix
index 1267340c098..52935267cf2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index d39ac978d8d..0764c484ec9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -29,6 +29,7 @@
, webkitgtk
, jemalloc
, rnnoise
+, abseil-cpp
# Transitive dependencies:
, util-linuxMinimal
, pcre
@@ -57,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.9";
+ version = "3.1.11";
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
# Telegram-Desktop with submodules
@@ -70,7 +75,7 @@ mkDerivation rec {
repo = "tdesktop";
rev = "v${version}";
fetchSubmodules = true;
- sha256 = "1nmakl9jxmw3k8gka56cyywbjwv06a5983dy6h9jhkkq950fn33s";
+ sha256 = "0hpcsraw3gx37wk3r88q51qf68ny0kb3kd6slnklwf22d1jqr3fn";
};
postPatch = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 60baf734aa1..878fea994db 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
index bff3d3769a7..3b69aa5566d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tensor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tensor/default.nix
index 172d11f6b85..477e5442b82 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -34,7 +34,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
new file mode 100644
index 00000000000..30bfde7a96f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/toxic/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/toxic/default.nix
index 3082748a351..a6d6cac4ac7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/utox/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/utox/default.nix
index e5a2c201d87..4392f587995 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 03a34a69a72..d04f2d18f97 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -28,11 +28,11 @@
}:
let
- version = "5.8.0.16";
+ version = "5.8.3.145";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
- sha256 = "1axnh81bf3ab5gzxxqm172wpqlpfbj9a2h3cry3kyxzmrihzbwdm";
+ sha256 = "1p4agpbcpk95r04m775dr17fmlm18vxq9mb65pyfbhvsd1ypw6kr";
};
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index 6ef9ec32538..3ec1cccd0d6 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/irc/communi/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/irc/communi/default.nix
index 9148a26567d..df7168ac308 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/irc/communi/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/maestral-qt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/maestral-qt/default.nix
index 7fffc5abc5b..57997ce7e22 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/maestral-qt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/maestral-qt/default.nix
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "maestral-qt";
- version = "1.5.0";
+ version = "1.5.1";
disabled = python3.pkgs.pythonOlder "3.6";
src = fetchFromGitHub {
owner = "SamSchott";
repo = "maestral-qt";
rev = "v${version}";
- sha256 = "sha256-JY7AkTnrH/92IfUx/ujK7jMF3zwLsnEE9+/At4UnTNw=";
+ sha256 = "sha256-LtKFdNX2/wSs9Hxplu7rz6rc1hoijCGgCKyLjlcRQoI=";
};
propagatedBuildInputs = with python3.pkgs; [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/bubblemail/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/bubblemail/default.nix
index d415eb4e51f..61276220756 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/bubblemail/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index baad7602cf0..432544c60c6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "evolution-ews";
- version = "3.42.0";
+ version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1byi1ksimbycd0daxp5j240r3n5qlaa4b3c5l9jzkjr9g3gkclsq";
+ sha256 = "nCvGMSfDS0GUQfF8zomVq+gKf9H72X896zptRy9/Xy0=";
};
nativeBuildInputs = [ cmake gettext intltool pkg-config ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 564a4c5499e..34b25c17a25 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -42,11 +42,11 @@
stdenv.mkDerivation rec {
pname = "evolution";
- version = "3.42.0";
+ version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0yj2hifis5m2cy59skn07d8n69444vlsw62ildr1fv67zxbblib8";
+ sha256 = "RlMq46E6aIV3GtEiNLlBQRZ67HRyOn7tE9293a767kU=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/himalaya/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/himalaya/default.nix
index b1c709b055b..33c1cc63a7f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/himalaya/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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=";
-
- # use --lib flag to avoid test with imap server
- # https://github.com/soywod/himalaya/issues/145
- cargoTestFlags = [ "--lib" ];
+ cargoSha256 = "sha256-lu5xVuAw9yTeQr3gpiW5g5bdm7Alf0YXmlbSkPaXhk0=";
- 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/neomutt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 23b636458c9..6d5ab96b4ed 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,17 +1,18 @@
{ 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 = "20211015";
+ version = "20211029";
pname = "neomutt";
src = fetchFromGitHub {
owner = "neomutt";
repo = "neomutt";
rev = version;
- sha256 = "sha256-ObYeh9Q/WZ1N60pxR2LoDNCU8rP4tQt/oIxnqALqMhs=";
+ sha256 = "sha256-haPDZorAfKuIEMiBCXJRMALAYnurQyjmCSOnj9IsoKk=";
};
buildInputs = [
@@ -24,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/notmuch/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 5e6dc6c6bb6..a618a696d0f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "notmuch";
- version = "0.33.2";
+ version = "0.34";
src = fetchurl {
url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz";
- hash = "sha256:1bic1f2va136aygfy53bsgziwiidcpb7qf1v05mlza2jmgv94j14";
+ sha256 = "1dk16xa9q7adp1jaswxvw4p92f4h5mg0zkrh3zv8gqxn88amisc3";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 1cdce2638be..d53bcda2a69 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
{
- version = "91.1.2";
+ version = "91.3.0";
sources = [
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/af/thunderbird-91.1.2.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 = "f786ba47061600b2a4fce6dc537e4d5f41ef7e496ddd24e06e5cf2d2bc7ae615";
+ sha256 = "067592da3bdc40cb8a7d8f64e3c5d116575604f1305b8eac4b5b1cc7f79dccf0";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ar/thunderbird-91.1.2.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 = "70e13fa57939ec35fed7e537c282411e022e2e596af298ff68ed06d29149ad44";
+ sha256 = "3a52d7c0e48496cd2259494196b0514412e922535877ddd322ceb82d02a47a39";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ast/thunderbird-91.1.2.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 = "22ac54e15cc8d89412f26906b10d7274a90d86f298948998dabbbb63000fd9bd";
+ sha256 = "e07001f03b642887ae4a4e2415ce6bb50542d5af7cd8a9f0531081bb084e56eb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/be/thunderbird-91.1.2.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 = "bb59b38220fc5a2e429df9bf521610678b7b3c7e47e4a3208c9e0e54860ae098";
+ sha256 = "ae12e02ef735813f2f807a32b101ea8ac621bff3f01f4e4b3c5e0fa6c178b812";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/bg/thunderbird-91.1.2.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 = "7a0d50876f51664074b6eefd20dc727cea2d4a0feceb721c63fa9e3872ea6d07";
+ sha256 = "3892a660dcc417cbb951bd8362b8fdf06ef35606e98f121ea6f549646a0a8b89";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/br/thunderbird-91.1.2.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 = "8a49fe9b26d1a5c5b3c28209cbb6d81e785235f4e1b24e4638cf5a5fa720d68e";
+ sha256 = "2fd0c6eca16a1435d0abd5d8fa66d68c8024f992ee57b741178c2d253f9bb7d7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ca/thunderbird-91.1.2.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 = "380d655a39c7f20067045cf2ec75e5bca0ba0e8291d187fd87ac42abbbce7dc7";
+ sha256 = "45fa1b1e80b646af457b189e07fa13c8bee61df1d80066b0b3d65414a682e105";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/cak/thunderbird-91.1.2.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 = "ff12816d6dac6311b2f0a358ee4a30e80d3a346c9a2fc08c9c4d72b2e7421b03";
+ sha256 = "3211236401fbf52b6085c1fe7e82e081c2d7d4f13514b11ced5a483986dabecf";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/cs/thunderbird-91.1.2.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 = "fc8ed1c83b76329aecd9b6b7b4c2278b2703dc267ef25ad973deefff01cbb29d";
+ sha256 = "259bf43995f7990bd1ef78e030db88966688323f363f15af2065c7c551a9e6ae";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/cy/thunderbird-91.1.2.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 = "50e10c11f341b75e4ca464911a7229d22073d72b53731ba92cbd39c52694e0d2";
+ sha256 = "2e1719dc5b7c3687c390c7ac07ab0392a3e8f32624ebd40d2cf8208796da054e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/da/thunderbird-91.1.2.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 = "1c041fb7c71e9d0f07c82652129a6b48f2f633a7781c41a3c439dec1d7fcabee";
+ sha256 = "49d8e99d05928d4678408a3b38da2f5c4915a802966c7328f4d410d5d0f7d82e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/de/thunderbird-91.1.2.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 = "c9ed27ee3f1a631c6a7d7a5a854e48f3285b9f01c81bc9ee3611bbdd9f483cdc";
+ sha256 = "0059061919afe9a38a3647896693e4773c3656887657b761356ff698b839cef5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/dsb/thunderbird-91.1.2.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 = "3c00604247dee961915f2aff628bd7d1f53c4f7e48bb848ef6065e41f189495d";
+ sha256 = "7ac2f44c66860967cabd64e94f0b104b2807f4b6297dd2ad828525962d8d5976";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/el/thunderbird-91.1.2.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 = "b9ad1ab6b7d33f477f51e4337d914f8f8d2f6d7bc1b3b884d8b71b17547c3fa0";
+ sha256 = "3fcde9b4cac6c46a6be2fe15f200cde1f96b59732f1e87b5645538568969817f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/en-CA/thunderbird-91.1.2.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 = "80e6b5785d334bec69455ca5f5039bbd4fbebd663ea91d17d0fbe8e33d747670";
+ sha256 = "13e33af2f7c29f8bcc479a09b3f8ab82362c01984700c5371eb8c050ef0524b2";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/en-GB/thunderbird-91.1.2.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 = "da2388577784df3faad7b40566e2e1eab2b95dd9455a1e4e3ee43433f4fb189e";
+ sha256 = "94e8bf04d513caa7cd74c4e93851a59911352e666b7bf86c8a795d63177f2e0a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/en-US/thunderbird-91.1.2.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 = "1354e3ad2989749fe79b404ccae3002de8b4e269c98388d9abebe456f3de47d2";
+ sha256 = "a5cf280ad34305f7a83d331f554488c08e8c62acf2eb895ba7a6bcbc4aad3180";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/es-AR/thunderbird-91.1.2.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 = "f51d4a1109d30d4857673575aef173026e2c90fc7ece6835a34a0e792672cf8b";
+ sha256 = "ae253fa8d23ee19105566a76be6ad4584ba2c5cb1eef6a3135d488109f25dea7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/es-ES/thunderbird-91.1.2.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 = "38196b265eeaef2222e624e2fb0cb7742b2171965aa0725b3d524e9199ea4f91";
+ sha256 = "1ede7664984d3ba3ba74163f58f02d5a982aa586c000a9d2b51efdb4b0b39210";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/et/thunderbird-91.1.2.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 = "ab3b04c02b730f92db4f24daac688e1966349cf4c978ed06138285fcb2d72769";
+ sha256 = "93e29146782ccaa5ba9cc0b30f4f6273d8c57f39c678bc2dc825af5f46415ff1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/eu/thunderbird-91.1.2.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 = "4431e16f70b6182b1ec2bed64d149ffc7e46f1b2536268e973eb984439eda400";
+ sha256 = "ef431ab48190366acad917c5d8710e2df89ee31cf88ccfea206bfb49fbd2083c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/fi/thunderbird-91.1.2.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 = "8ee9b2983d1f214f4589d7d99d1ac1a577f92dd3cc73f516dcc050079ed85904";
+ sha256 = "e4fba7cbb9cdb515eb29757bbda8b3f1fd091a5c1a35d345b34c547002c44ab7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/fr/thunderbird-91.1.2.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 = "b614dadf34774ebf45c88ae0c72c6d8779beb8310a8353aedeca1a493178c376";
+ sha256 = "127de8d089c8ad535f2ca0dd60856a8822e8adffb3e5f3af868881c36e78da97";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/fy-NL/thunderbird-91.1.2.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 = "00693bbfda9377d2695fc8c7c242b0e4a3c1b745e8779ebabe5686eca4fc928a";
+ sha256 = "28b4e3490105558c6fc47b9189451e0359f0ecfdaf9b40af173483cbef618981";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ga-IE/thunderbird-91.1.2.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 = "00d26b39726e2de2e799b3dff97c79a590f712f3347232600d1f2771523d0ab4";
+ sha256 = "2b16e222cf5f9468bae76f1f3b7b0af8c7b6f8a7a9f263e9d1b1e9320e244fad";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/gd/thunderbird-91.1.2.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 = "d9a35fbf9f4069c6f4dd796c8f9465053413d806093d1456e643c9bdb081ad45";
+ sha256 = "9368396e0ca3784201f3e2d2bf6c1c87d0d0dade72f96c450119929a4ae34ae5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/gl/thunderbird-91.1.2.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 = "9e7f237b55f81a44a984be4b4e1001c8ffd7742eb14e654397e80b4e4b765d0c";
+ sha256 = "7c90a96061ae3d237636baaa4fe439ae47542d0880b81687bc3a5a9e40edded9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/he/thunderbird-91.1.2.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 = "b86d479dd64ac86d43fbfb54c8ec36ea6b4516ded0383f81b78c11365290f21b";
+ sha256 = "12e42b78aa9757b8274df1395667b89214d393a2dd5969b374a0bf5816f04f31";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hr/thunderbird-91.1.2.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 = "cb7e8d0dd04c5883f2ec0f47d81a751b901e0036f151ab1c0f3043ba7ebf4a74";
+ sha256 = "f27542cf34fffd6aa71c479278b843ce435f4a8272130f7d8cde6f155e82b813";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hsb/thunderbird-91.1.2.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 = "d3141a413d82814067de2791091473e0b44f8939825cc3071b1fbe86e08dd49a";
+ sha256 = "f21bbe1720441392a276f3a2f6025da48f74efcfb7bfbe783f134be013874cf6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hu/thunderbird-91.1.2.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 = "b76860152f68b2dfabef9847c83356af34b8fb1913d0d55a397be3d4e4e08b31";
+ sha256 = "64b16f848c5a361d9709c2075fdf3ca4f7eb885f3f1cd9ec5acffc260b31982a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hy-AM/thunderbird-91.1.2.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 = "5aa35ed5d577befb7a37d5407bc7ff78c54314a7e5ed77bda588bd74111e263b";
+ sha256 = "da650d001f9b10227c5a5f5225725ef9085aa71f95dca0ffc4452fc2d6b48d90";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/id/thunderbird-91.1.2.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 = "0bb53b2cbed8a9412c6776435381d5c859a9993b4bd2cdf5ecd4145d13776d09";
+ sha256 = "12fcb1295b43b8bfd9607b819a78dd931c5efb092d6a5ddc70199c3625c4c033";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/is/thunderbird-91.1.2.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 = "566058b39d98a777cb1c333b66cac66851d0c369918e58c592b8e0151b778f6f";
+ sha256 = "48250a36caa8727b6e5bf1369199b4e202c7692ef62ffd97999b71a59c8182b8";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/it/thunderbird-91.1.2.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 = "b88fb1b473a7b0b1a4af08a09aadf5b7502f03462a1f4661ed2897c2705e5b4d";
+ sha256 = "aebf9b22dd1af357fdd1709448d3d753319a2f817bc30ed15ba364c75fe5ec40";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ja/thunderbird-91.1.2.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 = "6b69cd834280b36182656bd97b117c3f70bbcd947ab25e1936294a85149d3501";
+ sha256 = "3a1580283928525b20a163f13c4cb9554484823ddc28699a8d8879860ccf3a73";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ka/thunderbird-91.1.2.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 = "87d8bc04c278d8c675665d0211917a854d43a17d24173627703268a785ff2206";
+ sha256 = "a2d2b5e2b884fa1b9547c76b9fce154431ef0db80af45379079f1c2d5c6d14b0";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/kab/thunderbird-91.1.2.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 = "fad11f653198314683faaa758422506d27706b6dca90a4d5b0d3693810843fba";
+ sha256 = "0b909906f58125048fd4683946e62653b5c9064085b3f129b20d865c8463198b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/kk/thunderbird-91.1.2.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 = "67469c2c4e1352db94339687f93c0afefe41244bfc952d77c2e41e31a652f095";
+ sha256 = "5256b328a8920f01b5e93617c3e98a54e27094a383047df9a98f5ac50772e0fb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ko/thunderbird-91.1.2.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 = "93bb5a6973bbd0eaac721ffd59c19edce400471c08d76aa629b2fe66fc98ddf9";
+ sha256 = "445644ffbdff8af1910f664a9ed81512af95c9882f5b1ce1add02dac715ab0e9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/lt/thunderbird-91.1.2.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 = "f4dda73c80cee8aaceee0f4ea0956303f9a50aa2431c6eb8a34d7d22b5fe53e9";
+ sha256 = "0b3dbd1b6e71036b64c98920ef755f418cf6c11feba93ba8d873d438a032bf87";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/lv/thunderbird-91.1.2.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 = "65325a804f5aec439501bd70e5423d56ddc5a10636b639e8db85ce8881c1586e";
+ sha256 = "2bc934ce28dd4775984ae2f4db79db54806b34fdb415ec4420ae3b8927fe10a5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ms/thunderbird-91.1.2.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 = "f2715978bc8e2d7878f8ec47b4a29cccaa42a24bd97f013f6b66aaf47db83359";
+ sha256 = "e13dad427c8d0cb9aa79c48f4f8124ea996cabb34efdbd4ed8e90e233d00b6e2";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/nb-NO/thunderbird-91.1.2.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 = "c252fdee3a9d9c43b46786c528bb8ac39203b7d7c746f9c9f04287cb1253ded6";
+ sha256 = "e984fe009aa98be81153b1285370fae6187705bfbfe652b3c45e83f5bb0070ca";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/nl/thunderbird-91.1.2.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 = "1708531ca0b765292206fa9c533200266f5eb48fbbc74daade404bdcbfdcc750";
+ sha256 = "55744aaba9ae0c282d7eeba0beae71101cdfbf689bbad8a6312af3f2abc41778";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/nn-NO/thunderbird-91.1.2.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 = "dc26c1333787accc73624bc5bac820af1743ea30d85e9da9a0c30f6b9b0c3bcf";
+ sha256 = "b404dfee5b164a0401da149c33535e51030b21da29fc97d1822bc82cec2b6808";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pa-IN/thunderbird-91.1.2.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 = "fc508dd719c18c250560b5d4fc4672ce83a9f52b6103d3f33034eca89ed2935f";
+ sha256 = "cb0bb35c9cbb31443658847bc49d29730b192b6a25875acceac3fa4fd7436edd";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pl/thunderbird-91.1.2.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 = "eb54040a841d0da1e84dd2a6ba3c894a57d40fdb0bf99f21b7fbbe3ea8cd755c";
+ sha256 = "3a0ea72ba75230b4809901138350e0f13f981daaf590455aa75787cb107a0c24";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pt-BR/thunderbird-91.1.2.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 = "45226857a691f8568c769f652820eb5b86b0928c271b2751014bd6e7ab29ab80";
+ sha256 = "8e9deefa5bb510e244d8c6416371e24a2f6c97548eda5a25bf03a7aa5d500b7e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pt-PT/thunderbird-91.1.2.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 = "532f18bbe7fc09793bd688e5bc48c65658e2a48285b97c611b68611e9f13257d";
+ sha256 = "753235eb471c7bb62f766baff612bd1df5926ff248ee174604496edb7c75546b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/rm/thunderbird-91.1.2.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 = "8d0f2ec43e6e00118d7c1d5877bfbc5b5c87a8e449a0358acc6e71244a0716b3";
+ sha256 = "a298343b057a4d25b89386cde253ddd897550250e81b8abd6a68ff240d41c600";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ro/thunderbird-91.1.2.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 = "dbfd5500b337132ab14266d2b87224c917086afe3f210127d73848d360299241";
+ sha256 = "df52bc68926b9239d3b26fbbfea3ec7aa98837296243325dfe153e9afea6a0fa";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ru/thunderbird-91.1.2.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 = "06f6077ba98fc2605718266e57b9c5c54c3d7901f2b7233f38d7fd02d6d063a0";
+ sha256 = "001b1145aca605e8e5d72a1fda411546de1d2cb82f7be5626d5766018e1a692a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sk/thunderbird-91.1.2.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 = "af1224613b3e962265d83b154cbf69053906197f2b7f12e5004ad862bef09aaa";
+ sha256 = "822e852ec3d2d5a50f042bd2e5b2ec6929441b8116a2cadf2369c769602b85b8";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sl/thunderbird-91.1.2.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 = "597cd2732960eadd0121c4089a703cc86a0d9a361ff024fe047c8c624dc05afc";
+ sha256 = "752538090cd3d72cb5d04cc9abf0b089e437a7726cf8eee27b5ebe2d63162b8c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sq/thunderbird-91.1.2.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 = "c107fb5653cb7adfa79aad501e585943159fa9297ef360b193075a9b49e91d54";
+ sha256 = "a8548722e8c67da69c8f2e15855dd076b1435c5a1c6c34100dfae8de0eab7543";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sr/thunderbird-91.1.2.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 = "33964cc6308a8e7ebc154c057f90729a92d2a9127f9d8c4592f884531d094334";
+ sha256 = "d6c86caa9b272b3281b9a3eea8ded13546f4d09518081feb3fd16b995955d6e7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sv-SE/thunderbird-91.1.2.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 = "91fa282c3baee03653ffe5164844e06a9813a40c360ef24e94ff525638f187de";
+ sha256 = "a5af37b0803881489bc775e25592901ca77de996b07c4df658f17a9b66c94fc2";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/th/thunderbird-91.1.2.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 = "99ea8b61e102c3394073f3a817d3eeddc3cedb51436b66303730394f362e91f7";
+ sha256 = "a0292086c9e9d0462118ca5945627bb04f8943e3afcdcf3da054ff52ccd45442";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/tr/thunderbird-91.1.2.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 = "bb1d417239c31c6ae9bf62cd545f2fad316915ce6bcb707f2deb65f0cc24425c";
+ sha256 = "f02b7dde392fd77cde01a9ae860a46acf11554ec32d1b606c2a0145562bea1d5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/uk/thunderbird-91.1.2.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 = "8464520b025c29dcf3376d7c47d6c7596ff60eeabe63fc5c41082ceb4fbe148c";
+ sha256 = "1cb2935c1517b10adb370ceea6866912656c668dd8e82abcfb0f59435a85a854";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/uz/thunderbird-91.1.2.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 = "d4ba9eaafed3d475dd0fe3a7df7f9910fe3a95a74b9a83f2a00aa73441ae8a64";
+ sha256 = "4ad88f7f036ec199bd69ab7628d2bdf2f162603e8290cc19e4ccd586bef691fb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/vi/thunderbird-91.1.2.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 = "8c7f222e0c65ad2daaf37ab46fbe58e005aa89379a0a87f4b2a5f19528e0e5b2";
+ sha256 = "538a9996a604d9464a6c1315c683d6bd80b585d3bcf59fa93272444c22fec59e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/zh-CN/thunderbird-91.1.2.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 = "1cc053e2e9e751ca14da4a09c276d2c78f61ef4e7d74ac4019849f6ebc044d0d";
+ sha256 = "470123b053cab95930e8594684e65a656da032ea4e46aae4c325f119fbed4a46";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/zh-TW/thunderbird-91.1.2.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 = "b77a3eb6d1e51388d1b084956b7cc579e1e3c8ed2bc72d7943ac5d6188e43938";
+ sha256 = "cead4d02b5dd39dd146d1f2b28b61e5f30804018cd226d36e56bd39e010d82c5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/af/thunderbird-91.1.2.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 = "c2015b0cfa07309ca6afe5fefb24c1393a397b1d592dd80ec8b62bd4ef8a3d35";
+ sha256 = "4ac3b8ea2e7371710b03beca630d409a7f3e101e267e15b2ef49004da728e021";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ar/thunderbird-91.1.2.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 = "f36b4e7452ae39bd2bf63231ab884356c7b77d6015993e09046b3d6a63443920";
+ sha256 = "545423946de595760829c2263b90f1ca2aef3ec576a28c96c37ec6bfc3269fd9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ast/thunderbird-91.1.2.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 = "600d102bbb18bac81e3d50c9ef9a578820b0fa1ba2a6f6d756da6e391fe0f241";
+ sha256 = "1ff0fc8052bcb5c26396114be2ebce66e939cfe962c17807183ccb538dc29df1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/be/thunderbird-91.1.2.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 = "46032acc1c16e2c9bd7905799db6253cb16fb6269bb79edf6141b9d2bd5c0b15";
+ sha256 = "079a3e51861d0396d89978b46bcbcc5d786b3b4d728064c7709aefb2ba95ba40";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/bg/thunderbird-91.1.2.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 = "d21bfe3ad0c2c900de1ab9a88d62fc74c4c1767bb41121159c5c0c9bfe270a8c";
+ sha256 = "04b095d3b52972e06324630b938cf703143158996036f1d338740e9058c666c5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/br/thunderbird-91.1.2.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 = "8e20c1ce0867bafde00c3e8fc55d5841a14e91fa8039fc7259269da8bfbd4373";
+ sha256 = "82ad96bb61b2c170a0c750328b110772bff263493628c8a0c00396051a30ae4e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ca/thunderbird-91.1.2.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 = "175bfb1b0ef94897ecd359c54a2767ca039a259300a5716211fa0c0593b81023";
+ sha256 = "e5c4a5c5edbfc95e2dbbf331e8a794fdbef77e111da3b467d050571b6447ff70";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/cak/thunderbird-91.1.2.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 = "65cf8763200cd10cbc016c9d447703b640c52165c691a604092376de09dc1376";
+ sha256 = "4c99da8214856553fd01e4bea4c01945abe799280bf4e6da94e57b8c85e5e047";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/cs/thunderbird-91.1.2.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 = "8d019c4f92f60c44f1340f96892c0a4060d4ceb86d188f5f81911d92ff2957f0";
+ sha256 = "f7a9037ed7889f5de489f875611cf6a5d644b93f26b0dbddcb6e49b5f11ee2be";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/cy/thunderbird-91.1.2.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 = "29049a5f4849f7e2bde8ec122de33edb7c86e87eca46b72086e53caedcad7ef1";
+ sha256 = "bba109d3b1ec5b5deeb7c8bd036260490252961c52855c4d879ddb73858a1110";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/da/thunderbird-91.1.2.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 = "39d9b429b8ee92b045abf48a605e32a577da1f61459b597698f87b1972993f2d";
+ sha256 = "182600e06827d9abf7b8428e3dc883036119d23431923eb019b6a6dc197f7e28";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/de/thunderbird-91.1.2.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 = "b8ccae9622a8fa684c48a39a409af461238325d91db5edd8d9ecbeaebf2fa999";
+ sha256 = "24f69ecdf96f2823e709fe4ca6f48c2eca8b8574e8ff10e7ac48a78b8a847d76";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/dsb/thunderbird-91.1.2.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 = "a32e1ec050968c94c2b2c1c175d13629fb5feda14e91a0e6c78a9e1bf4092ebe";
+ sha256 = "9c7ea981a4d8ca2917fc160dbe5598b7bf8c63a9af4b3010cfa870632f4b8e7e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/el/thunderbird-91.1.2.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 = "7599c18f5c79d6aebb652308fa3fa9b13a4883c0dfc47e8bef6b6c118a2ed909";
+ sha256 = "e55668dac59dea1f5faddf0d2d63b223932a086dc79a577f2e811dba4b3e16d3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/en-CA/thunderbird-91.1.2.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 = "47c49908cf59a8fa6ec1de512cd01907412cfc5b0f56709611b71eb0b3e6cdee";
+ sha256 = "b60e6106c054e8d1a107b5601fc96555024b3894334cc4f825a953bf4198e2b1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/en-GB/thunderbird-91.1.2.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 = "9f379c2837dab6ece5306117065ddb1f19d3fa08900d5ed63abc34fff8755dda";
+ sha256 = "c63b78c881f9c98523214d70053fbe25c84209ea17b634f51fabe47f7a68e700";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/en-US/thunderbird-91.1.2.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 = "97aaf105ff5fd3ac8b2b85ba0de87b1fe6ba01f647d32571b787591ba5f6e1cd";
+ sha256 = "2f43f460a7b31c128c8cdae2829bbfd82a5381854d722901e8c07843d73f5030";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/es-AR/thunderbird-91.1.2.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 = "4db46b699d6a65fe482dd8f7bde005b5a4cccfbe7ef777f23f1aa57577d33a33";
+ sha256 = "5bfdc77b75b5acfff4a013884298d68ba76946f6ded7b39d973c4a4a20f0c09a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/es-ES/thunderbird-91.1.2.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 = "0a63e85f6992ce683f35ecfe6f0e10854fd8cada33f8a2e066d5ab140ef8c401";
+ sha256 = "5c793c8ba89d886a67ced4e6cd2271cbd9a516efc1bbf981e4b302ee4223dc37";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/et/thunderbird-91.1.2.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 = "522ec0185345054abf61b84dfdb36ce3dbe01c70f5bae11aa17321d18091d759";
+ sha256 = "548e4ff7682d36034dac4b82bee239ff5241b8605982d4ea3e21d59f43710888";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/eu/thunderbird-91.1.2.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 = "c4e28df0193175149303d80617f04df4d229d8eee2a75129b315a0c23b22aba5";
+ sha256 = "1c24768b70b1cd8310ed5bd9bc08aab036952c692ddb5cdda7e0605b61746713";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/fi/thunderbird-91.1.2.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 = "046b39db1f3f7c4fbe23e93053d43fe81e1b8751bb0558ad1bad3a50ab698673";
+ sha256 = "fdd4a914633aa6b1aeb4c737c63e7b0a39c60ab15b320ae37221c5a7eb273620";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/fr/thunderbird-91.1.2.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 = "39d15a1aa3f7c3e360e817baeb3747a49ae8f42d1b46208832eccb0107ca1b3b";
+ sha256 = "b582ff509cea4bfcdafa4b260db4831565ea60b7ac64e3163c9a43814790277b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/fy-NL/thunderbird-91.1.2.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 = "17c971a57634050faa9fe747055a671ac1ae0022a9b06a957eb05f7bb64f31cb";
+ sha256 = "61fa2a02f179e50d9d4bf43cf037a6b545982ee479f7c8f040ca57fc2586ed2f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ga-IE/thunderbird-91.1.2.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 = "58c17ea964de2b60440bb1a078222ab5b6199b83fa5f2854926b9f0c2a6cb3d3";
+ sha256 = "c0651a533f2690ad17b336e4de840932c4711e10fec64b80f2fec18d0449f1dc";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/gd/thunderbird-91.1.2.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 = "4ee45ae272d53f523d2855083f27a0ce005d93ca95d13c2037621a87c294413c";
+ sha256 = "49f7b349a5d55ccbcdeb2ca464aac2ff6c0712b6ea1e8f124ca7562913e8c633";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/gl/thunderbird-91.1.2.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 = "68012e665dea95fd4ce4f76dee0b246d2f94890e5a9b3c797e93ae7d450adc58";
+ sha256 = "04eca02158c56920f08368bb78ce7affaaa3d6793e6a3361b41e3c8856804130";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/he/thunderbird-91.1.2.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 = "57125635f8fe2cb50cfe9aecdfe06502cce9c746b346083b329d5e1123d4956d";
+ sha256 = "150ea785d46bb8debe554533edd53abc2a5711ddf64268f4479dc0eda2e85be9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hr/thunderbird-91.1.2.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 = "f6f28200c32cc2faa4a4e4a49eed5b4343586b52ca123dbce43d32a1c5059835";
+ sha256 = "d837a407f1a117299a7540fd718f4f7cffdf056871ba5f1adf09da5ecd84eb23";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hsb/thunderbird-91.1.2.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 = "6290282252b9a61fc7ffb1e29b14f31c87832bd60a066c73f9966a10f75ac327";
+ sha256 = "d7e3e2287a2218f80f055c450b67ece63ae97320eef1dca77cd153a2106d4bc9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hu/thunderbird-91.1.2.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 = "fbd6be01153d67870565fc7230fba7b4a1f6151eeda54e84008b0943acfc4564";
+ sha256 = "157a156e393b5a69a326aa0e9be02bd2ae3bd48433382a803ccb9c5c354ed498";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hy-AM/thunderbird-91.1.2.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 = "3bfb7979fbfbf0cbdecb8b8030dd209a6e18020ff34a30223ce893c0cfe0a282";
+ sha256 = "bbb783688762040579258fd8650124770f2a1b6ab8dd050df5c8e0bb057510ff";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/id/thunderbird-91.1.2.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 = "4a8801e97b001c0e30ffc4f4a7c712017c1b1a96bf226ddc341728b22599920d";
+ sha256 = "f14f33e5c8de0e59839654fd472ca20f592669bd739097831e011b3ad6ca3e3d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/is/thunderbird-91.1.2.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 = "871a6393a716c4c8b2255a8903a4584c8ad4a7f5e1423550d3d96b9866929433";
+ sha256 = "5a6be55557ef79101cf61c4fa684a52be1afa1a972a69e02998a35cbfd3212a3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/it/thunderbird-91.1.2.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 = "8919dbd9e7b0155de288322f10bbb664189d03c1442657d07d577b33cfce0929";
+ sha256 = "565299abc53960d3bb7c2a4abac86c2f5864a089aa4b908aceab20651b6d4c25";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ja/thunderbird-91.1.2.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 = "42e1e1a2b55c97b05ec5424f6318d286f7fa497276ff745c6c221ee2b4c072cd";
+ sha256 = "03244c4102177b81ad105ca31790000314c35813e6fa2efa2020b99b4ac45391";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ka/thunderbird-91.1.2.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 = "4da9353667f109938ebc6740039a915f67d518c109915c1ed42f1552c3be719d";
+ sha256 = "2640b2cab838dea0f2252898302fe0008c2b3807da4c8c45224047a7975b9461";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/kab/thunderbird-91.1.2.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 = "87c960236895eb1af70d2f50a839e55befc6486c4883d786b14a67e569c396ae";
+ sha256 = "083cd62d42936adeb069b620b19c7a66f761c40c82b56205626b9e1a6364b64d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/kk/thunderbird-91.1.2.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 = "38fdc0aa8fe98d83e52cf266776ebe7a52d7c80e98bc2372afcdeaf709ee8a06";
+ sha256 = "8a973b47dfbe996d8e7dc894bb0cc0b473743eec0caf05f11646b3552c287516";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ko/thunderbird-91.1.2.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 = "c960038e1764cc3a0203e2cdf8349ecfee951dbeb470cb58b66c66f0542ee790";
+ sha256 = "6f7a992d226028a6398932c8bcaf9d522ff72cfbb60336875b83e74d22564967";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/lt/thunderbird-91.1.2.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 = "6387197f1fa9095d64ef3e7c73272f0e0a4a7b857d4be29899bfe2c7aa88a5ec";
+ sha256 = "76cda4386e76388de5d0b660541f1ae5c40ef31609c329226e07573265b34c05";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/lv/thunderbird-91.1.2.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 = "66021a590bb89b9fb50c90bc07788cbbb3d1acaceac5ebf562805d39bb59be3c";
+ sha256 = "9bc2b1358965e4bdaf875625296d2e40bc6f21709237b38011f82169937cf022";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ms/thunderbird-91.1.2.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 = "a120efceac13b976b77a49dd2883f66a03c13f3243a53b66afbb372b87c15b16";
+ sha256 = "5860567197e95c1fbca7585796b34adaf453923be9e726ea33e54e390a7e800f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/nb-NO/thunderbird-91.1.2.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 = "ac5f404b3635b9b327458eb461148d94b52501621e78f2fafeff09c019651948";
+ sha256 = "5b50ebc02d93303547704312f11e10a5470bcc116da55573f6d256ec90e5d5cc";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/nl/thunderbird-91.1.2.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 = "f9dbbb9789a81ee6a40756039afefe542e1369b5de15d4ea728bd5fb5326c728";
+ sha256 = "99756c19427ab548d6cd64a5805549ed51af95e41eaa97eff821bfea2b3691ee";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/nn-NO/thunderbird-91.1.2.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 = "36d0cf0f3132f5365a9cfe5b2175ac6f42dbe25c41a03fbd177509b2cf13abce";
+ sha256 = "2888793a3490fbebd2148128662a63a7a482c7d770e8e4c4be3e725af5eb5c1c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pa-IN/thunderbird-91.1.2.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 = "776c3c215fd0e66eb81c2c91855233c4a7476aad534de555a6317b6a4f664b67";
+ sha256 = "a4d6ffa089fc309e208508986f91283a6c839f8cee109e073d3d6a0d25397292";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pl/thunderbird-91.1.2.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 = "ba2aa2dda6c477f3ecb06d0f1d223928adc9a82e46432055783741064cf1e8f6";
+ sha256 = "7a9f677c39700e7b1212047327f1b080004c42c3094eb4bf7a487b39a65458df";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pt-BR/thunderbird-91.1.2.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 = "314023714b6babde392b8a30d11e67fe5af9f47e2738d63a6231aa72e6e0b792";
+ sha256 = "0967d12e7cd9d2fd4d55dc75bfb02fb07ca61c60d2f0ccb295b8c264cb565957";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pt-PT/thunderbird-91.1.2.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 = "ea5895b796bbdf9ed5be1277dc0f32c70abb46f37a7d48ecacf39e7b7a5af082";
+ sha256 = "1be6b84a42c215928de2dbb36bd9e0f01303eb1ba4224126c12a98205316746c";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/rm/thunderbird-91.1.2.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 = "d295f9390b7dedec8592751142a42bc134ff3fca5a228d084eb176677c15c4bc";
+ sha256 = "54b4f955412f9c53d37188f42be5a7cc8ee1357458171d6134299145acde76d5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ro/thunderbird-91.1.2.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 = "b4504dd29ce68009c78b7194914c20d41024f92420564d6f4f34369717a49a90";
+ sha256 = "4f31a0eeafbe516c93b00b5ac5e7b06a35db471a19965955b8f25713984b7b9a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ru/thunderbird-91.1.2.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 = "a8ba363a9bee130d05d028a84bfc10e8614ac3e3ee7e747d4987691d25423bb0";
+ sha256 = "247c78a1dc8d6013744de242efc6ddac6f2f3d10d86e1348769e90124f5eb6df";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sk/thunderbird-91.1.2.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 = "347a0e3e794bebc570aac65005edef1c311d7685d9b7ee4559121945cec1a40e";
+ sha256 = "73b69b08de497cc2c5e50e7226b7c6de61546b1198a6757b8a63c6399fd2a9e9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sl/thunderbird-91.1.2.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 = "1ae4c2615d9fc4e6b1ab270988de63ff425779945684811a1c9093940e7a9d0a";
+ sha256 = "3d822e2c79d38e26353cb8810b8468580d2157b62aadcfca1d96874bb7ee0681";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sq/thunderbird-91.1.2.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 = "207fb12cf9415e5a66bee33ee2f50adb970343b90bdde2c00c5b149e9ec829ad";
+ sha256 = "c8e185af246c6059e85554968fa91c1ff0477e824fdf05d1860dc36ff7dd8a47";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sr/thunderbird-91.1.2.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 = "45e7cb91506dfe353d86b8c6ae172b4a925f6b9ee631b542bc9a0fc77315d482";
+ sha256 = "61da012cc5aa8dab7855deef3f26c20efdbca12c788caede60a4825289850b72";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sv-SE/thunderbird-91.1.2.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 = "634b1581237baa140d8711458cff99e979b3e33316b24925c6e5700da9603127";
+ sha256 = "064e2ca29bd5c1d63bae872d4419b537d5a75bec75a602847a115da15a0dcfae";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/th/thunderbird-91.1.2.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 = "a09336e75d270e9fdfaefd4f9e90cddf1f5135602998bfdd9a198e3f1544838c";
+ sha256 = "791adf04802aca3323c4a7659a83ca3affa9b93c1ae9a011447d6ad638f256df";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/tr/thunderbird-91.1.2.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 = "37874416c7bdd2c2b4303a55d14a82ce55a7d8cc6d51bc3b3d215489be3bc055";
+ sha256 = "494fa955b325df483902df74c99e0a5a24c50670bcac7f62d5da5989b4c3555f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/uk/thunderbird-91.1.2.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 = "faa0c411431a9b27a7c58c0c394804d3125e4f4e927387df8580c37738c2db44";
+ sha256 = "aaf7fd5dd2c2ad95cf0ea5333a59e6f953e36ad2b19b0a24cd42075ff6a96e44";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/uz/thunderbird-91.1.2.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 = "095e56a0fa0e85bebe9bc0044fc13f5da67c7267461b27fb8024947da3f423ba";
+ sha256 = "5ae7dee3ae3c33a0278c5b10401be741ed91d2cef3d00c9e6686d065830e0f32";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/vi/thunderbird-91.1.2.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 = "cae3582b504a38497dc63ba25d4be45e450b14cb588a9f52919d0fb4a5a04446";
+ sha256 = "455183213bfc0936a71c3f8fd35d4b753cfafb5c72df514232df97b2af75f10f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/zh-CN/thunderbird-91.1.2.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 = "58d542c3ceb5e36a83e424250c171477543bcd046f325c89b06f76090410b633";
+ sha256 = "13b600caa35aae9e6d82b7969afeb6951f2d2824a4c5af33eecf7b004e421ebd";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/zh-TW/thunderbird-91.1.2.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 = "13dfa3e7a8b5a69ab9072c21eb22373ff36bd54c9c7c39c3480681bd911043c0";
+ sha256 = "4f01236b849f03599df14efc1f4cf7519077b72697758f41c69ce84a084ac37e";
}
];
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch
deleted file mode 100644
index 98b40d83d62..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index bc36c81155a..4bae5387255 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,12 +10,12 @@ in
rec {
thunderbird = common rec {
pname = "thunderbird";
- version = "91.2.0";
+ version = "91.3.0";
application = "comm/mail";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
- sha512 = "1f21f77069490be2de131f6125a498c6ed0a7d10b2ff787891d8dea10019719fea8014a8b2d626a2365f10f6307b616e5f1eef2c601e4da5402c9d5fc7d35049";
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
index 19354df40ad..4b357324889 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
@@ -3,12 +3,12 @@ electron, libsecret }:
stdenv.mkDerivation rec {
pname = "tutanota-desktop";
- version = "3.88.4";
+ 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-UOb63+NfW6mHKaj3PDEzvz5hcmJBIISq02rtwgSZMjo=";
+ sha256 = "sha256-DBqeLoHPr/OwiA3cWO5MYoHSBqrEmP8j8q+rd50hYH8=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mpop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mpop/default.nix
index a14e55e51f2..e2bf0b134d5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mpop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mpop/default.nix
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "mpop";
- version = "1.4.15";
+ version = "1.4.16";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "sha256-P1KytdS8WO2TzwsRRs7k903oHCwHol7gMu+mWUZaAnA=";
+ sha256 = "sha256-hw61cerm0j+5KtDITXnenDjF9iTjYUk31XS/5Jumh/k=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/msmtp/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/msmtp/default.nix
index 884e5a644fc..d87d23be429 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/msmtp/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec {
pname = "msmtp";
- version = "1.8.17";
+ version = "1.8.18";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "sha256-D92+dMGp3PZGG0obDbPk00JmGEUAxAPX8QetQttOxNM=";
+ sha256 = "sha256-FPxirzfr3MXtGaJFoF64N27+cBYRjwDJxZS8mZ1VYKU=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mullvad-vpn/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mullvad-vpn/default.nix
index 2fa486b83a9..e03d6fa23f5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/nextdns/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/nextdns/default.nix
index 561a1c77b1c..ae7eb49a1c6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/nextdns/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/rqbit/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/rqbit/default.nix
new file mode 100644
index 00000000000..0220b12bd4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/stig/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/stig/default.nix
index 6c09043a65b..8b1a668090b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/stig/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/storrent/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/storrent/default.nix
new file mode 100644
index 00000000000..4c96200cc68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/tixati/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/tixati/default.nix
index e5c17581cb5..01e119dafc1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/torrential/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/torrential/default.nix
index 7290ec65ad5..1954ebe543d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/transmission/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/transmission/default.nix
index 312023566b0..7f48ad2d3b4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/p2p/transmission/default.nix
@@ -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/**,
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/ping/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/ping/default.nix
index 82194e38eae..8b8748d70ff 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/ping/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/protonvpn-gui/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/protonvpn-gui/default.nix
index ee92f4727c7..1bbf3d6554f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -1,90 +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=";
- };
-
- desktopItem = makeDesktopItem {
- name = "ProtonVPN";
- desktopName = "ProtonVPN GUI";
- type = "Application";
- exec = "protonvpn-gui";
- icon = "protonvpn";
- categories = "Network;";
- terminal = "false";
- };
-
- trayDesktopItem = makeDesktopItem {
- name = "ProtonVPN Tray";
- desktopName = "ProtonVPN Tray";
- type = "Application";
- exec = "protonvpn-tray";
- icon = "protonvpn";
- categories = "Network;";
- terminal = "false";
+ owner = "ProtonVPN";
+ repo = "linux-app";
+ rev = version;
+ sha256 = "sha256-08gXEKm8udgNltRdqvAMFL0pDCWZu/kfl1xGQtZPBCc=";
};
- nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ];
-
- propagatedBuildInputs = (with python3Packages; [
- pygobject3
- pycairo
- requests
- configparser
- ]) ++ [
- protonvpn-cli
- gtk3
- gobject-introspection
- libnotify
- libappindicator-gtk3
- ];
+ strictDeps = false;
- 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'
- '';
+ nativeBuildInputs = [
+ gobject-introspection imagemagick wrapGAppsHook
+ ];
- postInstall = ''
- # wrap binaries with extra required path
- wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath}
- wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath}
+ propagatedBuildInputs = with python3Packages; [
+ protonvpn-nm-lib
+ psutil
+ ];
- # 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
+ buildInputs = [
+ gtk3 networkmanager webkitgtk
+ ];
- # 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 ];
+ homepage = "https://github.com/ProtonVPN/linux-app";
+ maintainers = with maintainers; [ offline wolfangaukang ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
- mainProgram = "protonvpn-gui";
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/remote/freerdp/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/remote/freerdp/default.nix
index 0f76bced878..9f8a6dfc576 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/remote/waypipe/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/remote/waypipe/default.nix
index 7be719c1803..eb1ec40cc15 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/seafile-client/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/seafile-client/default.nix
index 446da4cdea3..b0975c56b05 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/seafile-client/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/seaweedfs/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/seaweedfs/default.nix
index 40cf26962a1..ed8a86bc9d3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/seaweedfs/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sniffers/wireshark/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sniffers/wireshark/default.nix
index 50a28b5998e..7c9eda76260 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/soju/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/soju/default.nix
index 5940b7cb19b..f52ee1a8bb0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/soju/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/rclone/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/rclone/default.nix
index 8022c48a5c2..f9fbb071b06 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/rclone/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/rclone/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "rclone";
- version = "1.56.2";
+ version = "1.57.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-cEh1SgIOgX04ECEF0K2pvwJdugapoUzh8xbboRaMdTs=";
+ sha256 = "0pwbprbkx5y0c93b61k8znan4aimk7dkssapjhkhzw4c38xd4lza";
};
- vendorSha256 = "sha256-wQYVn8yGDIYlnlVTS7tiLEMwkNLF6p3OcY35nw1mvA8=";
+ vendorSha256 = "0353pff07lwpa1jmi095kb2izcw09z73x6nninnnpyqppwzas6ha";
subPackages = [ "." ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/unison/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/unison/default.nix
index b106deb074e..429042f3ee4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/sync/unison/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/syncthing/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/syncthing/default.nix
index 4b1150159a4..261a9969872 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/syncthing/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/weather/meteo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/weather/meteo/default.nix
index a5edbac135f..8acd862053a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/weather/meteo/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/zerobin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/zerobin/default.nix
index 16a52d67045..56d5274751f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/zerobin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/agenda/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/agenda/default.nix
index c42052e5f7d..25f394e33f3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/agenda/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/beamerpresenter/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/beamerpresenter/default.nix
index 351609d8c05..e898a43ad97 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/beamerpresenter/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/elementary-planner/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/elementary-planner/default.nix
index 550316b82c5..c0cdfd75d9b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/elementary-planner/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/ib/controller/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/ib/controller/default.nix
index 0815dfc8982..8d241ea8303 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/ib/controller/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/jabref/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/jabref/default.nix
index b87e74c256f..0b4ce74cdfa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/jabref/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/jameica/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/jameica/default.nix
index 2f34d8b8c18..c983787d23e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/jameica/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/khronos/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/khronos/default.nix
index f319b419fbb..7e36529e5ff 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/khronos/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/khronos/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "khronos";
- version = "3.6.0";
+ version = "3.6.1";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
- sha256 = "sha256-AETyVCBUuBzHwDgTkGRIokFYwcmXrb/F85J5GEIu4dE=";
+ sha256 = "sha256-+gZy8cdekM26J1ujqFmfBXTctXc9E//EY42ZoLq9rBs=";
};
nativeBuildInputs = [
@@ -48,9 +48,6 @@ stdenv.mkDerivation rec {
postPatch = ''
chmod +x build-aux/post_install.py
patchShebangs build-aux/post_install.py
- # https://github.com/lainsce/khronos/pull/75
- substituteInPlace build-aux/post_install.py \
- --replace 'gtk-update-icon-cache' 'gtk4-update-icon-cache'
'';
passthru = {
@@ -65,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/default.nix
index abfd223fd00..f94beabd1f9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/download.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/download.nix
index bbabd4e70be..e99ac0f66d6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/infra/libkookie/nixpkgs/unstable/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";
- 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";
+ name = "Python-3.8.10.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/Python-3.8.10.tar.xz";
+ sha256 = "6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9";
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/override.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/override.nix
index 193b2cd7639..1e0ee64bd1f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/override.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index dfc680e3439..d34cfd082d0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/download.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/download.nix
index 19dee4e1f13..990eeb329a3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/download.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/override.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/override.nix
index 110a52ed9f9..746e7679f38 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/override.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/primary.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/primary.nix
index d42f31bff3f..df6dcb58e9e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/libreoffice/src-still/primary.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/notes-up/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/notes-up/default.nix
index 4422968efbc..1aa6f7f78e9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/notes-up/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/spice-up/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/spice-up/default.nix
index b51eeb1ad95..7b72ddcf0d9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/spice-up/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/super-productivity/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/super-productivity/default.nix
index 2b3ee7ddc23..90608dceba5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/super-productivity/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/super-productivity/default.nix
@@ -5,11 +5,11 @@ let
in
stdenv.mkDerivation rec {
pname = "super-productivity";
- version = "7.5.1";
+ version = "7.6.0";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
- sha256 = "sha256-ezJN/t0iNk0haMLPioEQSNXU4ugVeJe44GNVGd+cOF4=";
+ sha256 = "f02a451a44f48a8e85a0c1269625d89fb1e0b8a75b7e217d96352064e6464ae5";
name = "${pname}-${version}.AppImage";
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/timedoctor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/timedoctor/default.nix
index 4b97f7b3dcd..41273b7780e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/timedoctor/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/vnote/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/vnote/default.nix
index 3519f015ffa..2c6b5dfe3b3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/vnote/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/vnote/default.nix
@@ -8,14 +8,14 @@
mkDerivation rec {
pname = "vnote";
- version = "3.7.0";
+ version = "3.8.1";
src = fetchFromGitHub {
owner = "vnotex";
repo = pname;
fetchSubmodules = true;
rev = "v${version}";
- sha256 = "sha256-D9/4BakXTComvGTV8F131G5PzA8LhWfNSZRBOMo5t5c=";
+ sha256 = "sha256-GgSVBVcT0rfgglyjCmkEMbKCEltesC3eSsN38psrkS4=";
};
nativeBuildInputs = [ qmake ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/zim/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/zim/default.nix
index c0bca4c9043..269bc1931b3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/zim/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/zk/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/office/zk/default.nix
new file mode 100644
index 00000000000..9da6073ff42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/angelfish/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/angelfish.nix
similarity index 58%
rename from infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/angelfish/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/angelfish.nix
index dedc5146967..99df3f55c1d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/networking/browsers/angelfish/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.08";
-
- src = fetchurl {
- url = "mirror://kde/stable/plasma-mobile/${version}/angelfish-${version}.tar.xz";
- sha256 = "1gzvlha159bw767mj8lisn89592j4j4dazzfws3v4anddjh60xnh";
- };
cargoDeps = rustPlatform.fetchCargoTarball {
- inherit src;
- name = "${pname}-${version}";
- sha256 = "1pbvw9hdzn3i97mahdy9y6jnjsmwmjs3lxfz7q6r9r10i8swbkak";
+ src = srcs.angelfish.src;
+ name = "${pname}-${srcs.angelfish.version}";
+ sha256 = cargoSha256;
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/audiotube.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/audiotube.nix
new file mode 100644
index 00000000000..1a1dedc7b42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/default.nix
index 18f550955c5..fd9ae2a2bae 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/default.nix
@@ -62,12 +62,17 @@ let
};
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 {};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/fetch.sh b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/fetch.sh
index 29a8e6b4c79..14995aeb2b7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/fetch.sh
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/plasma-mobile/21.05 -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma-mobile/21.08/ -A '*.tar.xz' )
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/kasts.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/kasts.nix
new file mode 100644
index 00000000000..370cba7e2ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/keysmith.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/keysmith.nix
new file mode 100644
index 00000000000..eaca7f68e24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/ktrip.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/ktrip.nix
index cc1404d064f..5377dd10658 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/ktrip.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/ktrip.nix
@@ -12,6 +12,7 @@
, kirigami2
, kitemmodels
, kpublictransport
+, qqc2-desktop-style
, qtquickcontrols2
}:
@@ -32,6 +33,7 @@ mkDerivation rec {
kirigami2
kitemmodels
kpublictransport
+ qqc2-desktop-style
qtquickcontrols2
];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/kweather.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/kweather.nix
new file mode 100644
index 00000000000..497061624b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/spacebar.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/spacebar.nix
index 1c661041f7a..8d566550108 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/spacebar.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/spacebar.nix
@@ -9,7 +9,9 @@
, kirigami2
, knotifications
, kpeople
+, libphonenumber
, libqofono
+, protobuf
, telepathy
}:
@@ -27,7 +29,9 @@ mkDerivation rec {
kirigami2
knotifications
kpeople
+ libphonenumber
libqofono
+ protobuf # Needed by libphonenumber
telepathy
];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/srcs.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/srcs.nix
index 4df185aa0ae..06b551a94cf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/srcs.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/plasma-mobile/srcs.nix
@@ -1,118 +1,158 @@
# DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/plasma-mobile/
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/plasma-mobile
{ fetchurl, mirror }:
{
alligator = {
- version = "21.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/alligator-21.05.tar.xz";
- sha256 = "04zgxfx2zmn1p2ap08i5sfsnrly3smip4ylr07ghkhkiyjzbv9w6";
- name = "alligator-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/alligator-21.08.tar.xz";
+ sha256 = "1dhwfwd1v5wmx3sldpygb79kz87j13wd0arhlkm94z1whsixan0q";
+ name = "alligator-21.08.tar.xz";
};
};
angelfish = {
- version = "21.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/angelfish-21.05.tar.xz";
- sha256 = "11jd5dwy0xa7kh5z5rc29xy3wfn20hm31908zjax4x83qqjrm075";
- name = "angelfish-21.05.tar.xz";
+ 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.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/calindori-21.05.tar.xz";
- sha256 = "110f9ri9r1nb6q1ybhkfxljl4q5gqxikh9z0xkzjjbxjjqfscqcj";
- name = "calindori-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/calindori-21.08.tar.xz";
+ sha256 = "08s16a8skh02n8ygqwryxpzczj5aqr5k58aijaz2gzx45m7ym31b";
+ name = "calindori-21.08.tar.xz";
};
};
kalk = {
- version = "21.05";
+ 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.05/kalk-21.05.tar.xz";
- sha256 = "04n65hx0j9rx6b3jq69zgypi8qjd4ig3rfw7d44c3q7dgh4k451l";
- name = "kalk-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/kasts-21.08.tar.xz";
+ sha256 = "10v6icxwv46nihzbdi0n2w71bsg7l166z7jf9rb7vf2mjh1gqavn";
+ name = "kasts-21.08.tar.xz";
};
};
kclock = {
- version = "21.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/kclock-21.05.tar.xz";
- sha256 = "0pa5hvax0y80l8yrqczh9mcknfm3z0vdq3xc35cxdiz1vc6fwqmd";
- name = "kclock-21.05.tar.xz";
+ 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.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/koko-21.05.tar.xz";
- sha256 = "00hnzkl8dvf15psrcfh96b8wfb3pbggd2f7xnadzcb87sbaml035";
- name = "koko-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/koko-21.08.tar.xz";
+ sha256 = "1sqlcl871m6dlrnkkhqa3xfwix01d74d7jf94r1a3p32hqljv76p";
+ name = "koko-21.08.tar.xz";
};
};
kongress = {
- version = "21.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/kongress-21.05.tar.xz";
- sha256 = "0qxgpi04ra9crc6drgbdm9arjbvcx52pprjr1dj8acch07f6i2gs";
- name = "kongress-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/kongress-21.08.tar.xz";
+ sha256 = "099ds4bv4ngx21f28hxcvc17wd2nk786kydwf2h5n3mdd2mgz3ka";
+ name = "kongress-21.08.tar.xz";
};
};
krecorder = {
- version = "21.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/krecorder-21.05.tar.xz";
- sha256 = "0ydaidxx2616bixihyaagvyym1r5s9rjkgg04vq9k4608d4vnn5c";
- name = "krecorder-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/krecorder-21.08.tar.xz";
+ sha256 = "1381x889h37saf6k875iqhwz5vbixrp7650smxp31r56ycrqq26i";
+ name = "krecorder-21.08.tar.xz";
};
};
ktrip = {
- version = "21.05";
+ 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.05/ktrip-21.05.tar.xz";
- sha256 = "0hxgnncyc2ir6i9p6s9fy1r4mhxgm643pxvp8lj3j5y0c5wk2kp9";
- name = "ktrip-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/kweather-21.08.tar.xz";
+ sha256 = "0b1zjwsakwsnh6827zjhypvb04c78gwwygr7k1cy2x3finrp5if5";
+ name = "kweather-21.08.tar.xz";
};
};
plasma-dialer = {
- version = "21.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/plasma-dialer-21.05.tar.xz";
- sha256 = "0kwkjn7ry6snc86qi1j7kcq5qa6rbyk5i7v6gqf7a7wywkk9n045";
- name = "plasma-dialer-21.05.tar.xz";
+ 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.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/plasma-phonebook-21.05.tar.xz";
- sha256 = "0aqqi3gvcsh4zg41zf8y0c626lwrabjchhr8pxj4n9la7y0wdvca";
- name = "plasma-phonebook-21.05.tar.xz";
+ 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.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/plasma-settings-21.05.tar.xz";
- sha256 = "16bhx0i8gvi9ina4jxzx02xyzypyjic9646lahxvzvzmd9hn9ipi";
- name = "plasma-settings-21.05.tar.xz";
+ 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.05";
+ version = "21.08";
src = fetchurl {
- url = "${mirror}/stable/plasma-mobile/21.05/qmlkonsole-21.05.tar.xz";
- sha256 = "1ga48n09zlgvf5vvk2m26ak3ih5gjf361xxnyfprimmd7yj23han";
- name = "qmlkonsole-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/qmlkonsole-21.08.tar.xz";
+ sha256 = "1p3ysf6sgiji86400523hm67rvw3znj3a7k6g6s83dxynxdh2faq";
+ name = "qmlkonsole-21.08.tar.xz";
};
};
spacebar = {
- version = "21.05";
+ 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.05/spacebar-21.05.tar.xz";
- sha256 = "16lvi5yzmvk6gb5m7csk44y2jbkk7psn1lkljmj1938p2475b94c";
- name = "spacebar-21.05.tar.xz";
+ url = "${mirror}/stable/plasma-mobile/21.08/tokodon-21.08.tar.xz";
+ sha256 = "0j9zfcdss1872hv8xxrmy0jjmcz3y5kdz8gdrd6qmig5scrzjvnf";
+ name = "tokodon-21.08.tar.xz";
};
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/airspyhf/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/airspyhf/default.nix
new file mode 100644
index 00000000000..a54e8441e36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/dump1090/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/dump1090/default.nix
index 927fa32bd55..00e5e0089cf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/dump1090/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/freedv/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/freedv/default.nix
new file mode 100644
index 00000000000..b369a5475e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnss-sdr/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnss-sdr/default.nix
index 44a8ed14c2e..479b3b641cd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/3.7.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/3.7.nix
index 3e423e025b7..372300895ca 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/3.7.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/3.8.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/3.8.nix
index 05a87a480f3..0e5b7701e98 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/3.8.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/default.nix
index c62b031d813..d92af80701b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.3_8.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.3_8.patch
new file mode 100644
index 00000000000..f6a6a06e89c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/modtool-newmod-permissions.patch
new file mode 100644
index 00000000000..7cab73fede0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/shared.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/shared.nix
index f8ea2f0b160..ea97864bc61 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/shared.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/wrapper.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/wrapper.nix
index 7dcb6d467d6..4cbccbd5181 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gnuradio/wrapper.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gqrx/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gqrx/default.nix
index 272c381db89..572efa3fac6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/gqrx/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/inspectrum/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/inspectrum/default.nix
index 9d61ab4b601..0f0b89d4316 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/inspectrum/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/pothos/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/pothos/default.nix
index 77a7d8cf69f..817013dbf3e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/pothos/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/qradiolink/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/qradiolink/default.nix
index 2f31761537d..31be8f4fb8b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/qradiolink/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrangel/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrangel/default.nix
index fd742474ec1..2ba37940038 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrangel/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrangel/default.nix
@@ -33,13 +33,13 @@
mkDerivation rec {
pname = "sdrangel";
- version = "6.16.3";
+ version = "6.17.2";
src = fetchFromGitHub {
owner = "f4exb";
repo = "sdrangel";
rev = "v${version}";
- sha256 = "sha256-qgFnl9IliKRI4TptpXyK9JHzpLEUQ7NZLIfc0AROCvA=";
+ sha256 = "sha256-sMD2JTJJlssMdXCUHdFYjEqGknhGGuG4szfnvFFN7t4=";
fetchSubmodules = false;
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrpp/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrpp/default.nix
new file mode 100644
index 00000000000..5a993f4fc10
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrpp/runtime-prefix.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/sdrpp/runtime-prefix.patch
new file mode 100644
index 00000000000..55ecd8ce3ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/soapyrtlsdr/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/soapyrtlsdr/default.nix
index 855213fc514..5adf07053ab 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/soapyrtlsdr/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/wsjtx/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/wsjtx/default.nix
index 8dbdd5d4ff2..3e889c21064 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/wsjtx/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/xlog/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/xlog/default.nix
index 06b7c108fa9..59af9a94d96 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/radio/xlog/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/astronomy/stellarium/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/astronomy/stellarium/default.nix
index 898885047a0..f54dcb94e23 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -28,10 +28,6 @@ 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/";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/dcm2niix/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/dcm2niix/default.nix
index 6224ccabb06..36dddad5db5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/last/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/last/default.nix
index 0c5b81452fd..8de0580a819 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/last/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/obitools/obitools3.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/obitools/obitools3.nix
index c636942ca78..a7de2b4f76f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/obitools/obitools3.nix
+++ b/infra/libkookie/nixpkgs/unstable/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,20 @@ pythonPackages.buildPythonApplication rec {
sha256 = "1x7a0nrr9agg1pfgq8i1j8r1p6c0jpyxsv196ylix1dd2iivmas1";
};
+ disabled = python3Packages.pythonOlder "3.5";
+
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/picard-tools/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/picard-tools/default.nix
index a5b226bd0a9..855f90a74a3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/diylc/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/diylc/default.nix
index 96a2c9a0489..987f6156b4b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/diylc/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/fritzing/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/fritzing/default.nix
index 30cbd8f92b5..c5723dbab98 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index 346483b9231..b30a1893121 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -4,14 +4,14 @@
}:
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
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/kicad/versions.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/kicad/versions.nix
index ae403d3f733..463e5b7d821 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/picoscope/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/picoscope/default.nix
new file mode 100644
index 00000000000..344d54d10a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/picoscope/sources.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/picoscope/sources.json
new file mode 100644
index 00000000000..7404259b231
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/picoscope/update.py b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/electronics/picoscope/update.py
new file mode 100755
index 00000000000..ecbd2292030
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/geometry/antiprism/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/geometry/antiprism/default.nix
index 8dee645646c..e5779478936 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/geometry/antiprism/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
index b382e6f9e75..48b1263e796 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/default.nix
index 987068d9bbb..a5709b69fbb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/elan/default.nix
@@ -1,5 +1,4 @@
{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl
-, fetchpatch
, openssl, gmp, zlib, fetchFromGitHub, rustPlatform, libiconv }:
let
@@ -8,16 +7,16 @@ in
rustPlatform.buildRustPackage rec {
pname = "elan";
- version = "1.1.0";
+ version = "1.3.1";
src = fetchFromGitHub {
owner = "leanprover";
repo = "elan";
rev = "v${version}";
- sha256 = "0xmml81krr0i18b14dymfdq43szpzws7qj8k404qab51lkqxyxsb";
+ sha256 = "sha256-QNVzpnT77+9PXhq4Yz0q3o+GiQTVy7dOrg2yBTscoek=";
};
- cargoSha256 = "sha256-xjJ39hoSDn0VUH0YcL+mQBXbzFcIvZ38dPjBxV/yVNc=";
+ cargoSha256 = "sha256-G70QopoMqFrkOnuui3+3cEHYvmnf0meX1Ecv4q8FCpM=";
nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -41,11 +40,6 @@ rustPlatform.buildRustPackage rec {
--subst-var dynamicLinker \
--subst-var libPath
'')
- # fix build, will be included in 1.1.1
- (fetchpatch {
- url = "https://github.com/leanprover/elan/commit/8d1dec09d67b2ac1768b111d24f1a1cabdd563fa.patch";
- sha256 = "sha256-yMdnXqycu4VF9EKavZ85EuspvAqvzDSIm5894SB+3+A=";
- })
];
postInstall = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/lean/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/lean/default.nix
index 0c21ce109b8..218a2754187 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/lean/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/lean/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "lean";
- version = "3.33.0";
+ 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 = "a0fb1e8c7ac81dfd2e80ad0de08f4e57ee853d82";
- sha256 = "03xz3c3dzjhvjzpa8811cgzzqzw8fpajmspykavmb259i391w0y7";
+ rev = "a68d251bfc57341d8f1f6d8c6e548a0b08ff3b92";
+ sha256 = "0f91kvd4z7rsjyagfx56y1vxmf4wjds7bnz6yh3sd4xx770z58d4";
};
nativeBuildInputs = [ cmake ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/opensmt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/opensmt/default.nix
index 2ef494cca26..e701fb2711f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/opensmt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/tamarin-prover/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/tamarin-prover/default.nix
index a77f2dbac44..76dc559cb7a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/why3/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/why3/default.nix
index b9f14332f9d..78631486554 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/why3/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/yices/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/yices/default.nix
index c5fc3a73837..c81d5a9ca61 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/yices/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/yices/default.nix
@@ -12,6 +12,12 @@ stdenv.mkDerivation rec {
sha256 = "1jx3854zxvfhxrdshbipxfgyq1yxb9ll9agjc2n0cj4vxkjyh9mn";
};
+ patches = [
+ # musl las no ldconfig, create symlinks explicitly
+ ./linux-no-ldconfig.patch
+ ];
+ postPatch = "patchShebangs tests/regress/check.sh";
+
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ cudd gmp-static gperf libpoly ];
configureFlags =
@@ -23,22 +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.X.Y, but
- # only installing the libyices.so.X.Y.Z file.
- installPhase = let
- ver_XdotY = lib.versions.majorMinor version;
- in ''
- make install LDCONFIG=true
- # guard against packaging of unstable versions: they
- # have a soname of hext (not current) release.
- echo "Checking expected library version to be ${version}"
- [ -f $out/lib/libyices.so.${version} ]
- 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch
new file mode 100644
index 00000000000..bad3da6ad4a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/R/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/R/default.nix
index c26964bb314..0a9a976f18a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/R/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 ''
@@ -119,6 +118,6 @@ stdenv.mkDerivation rec {
platforms = platforms.all;
- maintainers = with maintainers; teams.sage.members;
+ maintainers = with maintainers; [ jbedo ] ++ teams.sage.members;
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/R/skip-check-for-aarch64.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/R/skip-check-for-aarch64.patch
deleted file mode 100644
index 8721bf6b422..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/bcal/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/bcal/default.nix
index 1494b532487..85bcd1b2d2f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/bcal/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/cemu/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/cemu/default.nix
index 9d56ac70d92..35b9200a477 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/cemu/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/nasc/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/nasc/default.nix
index dffbdaa23aa..2fe027365cd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/nasc/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/pcalc/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/pcalc/default.nix
index cbf07135dec..97888b712eb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/pcalc/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/sage/sage-src.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/sage/sage-src.nix
index 3ba21cf6c8b..ed10121e5cd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/sage/sage-src.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/sage/sagedoc.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/sage/sagedoc.nix
index d53947d806d..76bbc90773b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/medicine/xmedcon/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/medicine/xmedcon/default.nix
index e4a5f22891e..bee2be729d1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/medicine/xmedcon/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/misc/cytoscape/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/misc/cytoscape/default.nix
index 3ab7d57f95a..783381f9db0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/misc/snakemake/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/misc/snakemake/default.nix
index 4ff751ff8d1..40c102fc682 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/misc/snakemake/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index bdec2ccc669..f7756f33499 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.3";
src = fetchurl {
url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
- sha256 = "1rplvgna60nqyb8nspaz3bfkwb044kv3zxdaa5whql5m441nj6am";
+ sha256 = "4QmFbsREdo373kHzBZ4xI6vbj+Vsozsag/Me1FdaHMY=";
};
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/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/physics/sherpa/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/physics/sherpa/default.nix
index 1c1bc22b0ff..dd726c96606 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/physics/sherpa/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/science/physics/sherpa/default.nix
@@ -1,20 +1,19 @@
-{ 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
'';
-
- nativeBuildInputs = [ gfortran ];
+ nativeBuildInputs = [ autoconf gfortran ];
buildInputs = [ sqlite lhapdf rivet ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/monitor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/monitor/default.nix
index f5d36c332ae..6b535e5ad41 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/monitor/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/monitor/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, meson
@@ -13,18 +14,21 @@
, libwnck
, libgee
, libgtop
+, libhandy
+, sassc
+, udisks2
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "monitor";
- version = "0.10.0";
+ version = "0.11.0";
src = fetchFromGitHub {
owner = "stsdc";
repo = "monitor";
rev = version;
- sha256 = "sha256-Gin/1vbQbOAKFrjzDuDTNDQlTGTIlb0NUfIWWXd5tQ4=";
+ sha256 = "sha256-xWhhjn7zk/juXx50wLG2TpB5aqU+588kWBBquWrVJbM=";
fetchSubmodules = true;
};
@@ -45,7 +49,10 @@ stdenv.mkDerivation rec {
pantheon.wingpanel
libgee
libgtop
+ libhandy
libwnck
+ sassc
+ udisks2
];
postPatch = ''
@@ -70,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/pantheon-tweaks/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/pantheon-tweaks/default.nix
index 5834e8d9630..67e1bb32aea 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/system/pantheon-tweaks/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/alacritty/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/alacritty/default.nix
index 0a23d63e3ea..a25613ba58e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/hyper/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/hyper/default.nix
index 1d200824535..423c31fd05b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/kitty/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/kitty/default.nix
index cfd46a613f7..4cd8f72b790 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/delta/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 46d19f2814d..acf647901e9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gh/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 9fa8e6e6253..17484ea3139 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gh";
- version = "2.1.0";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
- sha256 = "sha256-70FmFN76azRqnAZ9SLgr/V8moqkWoBbDB6IdSXM7Vmg=";
+ sha256 = "sha256-/czexUqpdsFQAteZ75ur2SFibrtZWffHpPBEPlLQXSY=";
};
- vendorSha256 = "sha256-004TspNwjCWnrD86HEf5wGpt8OCP5qIrTwlGWSRNUmg=";
+ vendorSha256 = "sha256-slMl5dCyyVNBgDbpYECfYUbpJJ7sWuSGSutYR3rTzj0=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
index 25eb31936dc..046fcc76341 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
@@ -15,16 +15,16 @@
rustPlatform.buildRustPackage rec {
pname = "git-branchless";
- version = "0.3.6-nixos.0";
+ version = "0.3.7";
src = fetchFromGitHub {
owner = "arxanas";
repo = "git-branchless";
rev = "v${version}";
- sha256 = "sha256-Sq+43w7xgrCe2w+9A/gfe/34+K2IgZVholtD+WF59Qo=";
+ sha256 = "sha256-knRRjTjnhpedcQTVpJnBsrnaeRbjZ2i3aABeE0LrQ+c=";
};
- cargoSha256 = "sha256-tCpvIqGMklOUJ/+d8poq4uz2EyZTkBmtlkA/BUIVPxs=";
+ cargoSha256 = "sha256-NyzsY5d4iC3zMSzmh9Qmd211oT6lmhUdvIfQdnzrtok=";
nativeBuildInputs = [ pkg-config ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git/default.nix
index 6bdefb8cb38..521e42e845f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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";
@@ -338,6 +338,8 @@ stdenv.mkDerivation {
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
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gst/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gst/default.nix
index a323c61bf14..f0f347d14ca 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/gst/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix
new file mode 100644
index 00000000000..7fd83e6bf7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 02888b3f87e..1c3fdf90aa7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -12,13 +12,13 @@
python3Packages.buildPythonApplication rec {
pname = "stgit";
- version = "1.3";
+ version = "1.4";
src = fetchFromGitHub {
owner = "stacked-git";
repo = "stgit";
rev = "v${version}";
- sha256 = "0wa3ba7afnbb1h08n9xr0cqsg93rx0qd9jv8a34mmpp0lpijmjw6";
+ sha256 = "0yx81d61kp33h7n0c14wvcrh8vvjjjq4xjh1qwq2sdbmqc43p3hg";
};
nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl docbook_xml_dtd_45 ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-lfs/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-lfs/default.nix
index 77a8d9d897f..c5422d9a6c6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-lfs/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
buildGoPackage rec {
pname = "git-lfs";
- version = "2.13.3";
+ version = "3.0.2";
src = fetchFromGitHub {
rev = "v${version}";
owner = "git-lfs";
repo = "git-lfs";
- sha256 = "sha256-T4s/xnu5nL6dkEIo7xGywaE+EPH2OnzsaCF9OCGu7WQ=";
+ sha256 = "0k2pzbhd95xixh5aqdwf5pafilg85wl46d04xbb4lx6k3gkfv0f3";
};
goPackagePath = "github.com/git-lfs/git-lfs";
@@ -30,7 +30,7 @@ buildGoPackage rec {
meta = with lib; {
description = "Git extension for versioning large files";
homepage = "https://git-lfs.github.com/";
- changelog = "https://github.com/git-lfs/git-lfs/blob/v${version}/CHANGELOG.md";
+ changelog = "https://github.com/git-lfs/git-lfs/raw/v${version}/CHANGELOG.md";
license = [ licenses.mit ];
maintainers = [ maintainers.twey maintainers.marsam ];
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-repo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-repo/default.nix
index 849965e15f5..24a78848f91 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-repo/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-repo";
- version = "2.17.2";
+ version = "2.17.3";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
- sha256 = "sha256-JfT0jW6aUZAYESQI0tFfnITFv20Jk7DWbvz8Ipt4t1Y=";
+ sha256 = "sha256-ez+Egl9vvfEZbeIEx7hHmH2Lhyvl93UHRkvkHaG46RQ=";
};
# Fix 'NameError: name 'ssl' is not defined'
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitea/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitea/default.nix
index 3088a68ca69..ab84a5143d2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitea/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitea/default.nix
@@ -16,12 +16,12 @@ with lib;
buildGoPackage rec {
pname = "gitea";
- version = "1.15.4";
+ version = "1.15.6";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
- sha256 = "sha256-UsaTA6bI5pr3vbvO3jFn8A8qVRi385fbiJQD09Ut/X0=";
+ sha256 = "sha256-FMM/iQAxJcymv4jYBzaBXG0Uy8UxHh9gFWB5gzV9cn0=";
};
unpackPhase = ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/github-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/github-desktop/default.nix
index 5e8061c157c..a13aa4ddfab 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/github-desktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/github-desktop/default.nix
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "github-desktop";
- version = "2.9.3";
+ version = "2.9.4";
src = fetchurl {
url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux1/GitHubDesktop-linux-${version}-linux1.deb";
- sha256 = "sha256-e3XDjVQ5VcsS/MGxNsDs2h77joZAz8mNn+SwrqiUAR0=";
+ sha256 = "sha256-CcAOATIEcrUKhVQWFr0dMvY9Q5rHWQI9/KdSEZ/ncD4=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitkraken/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitkraken/default.nix
index 748e34c33ae..d719edb64cb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitkraken/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitkraken/default.nix
@@ -13,11 +13,11 @@ let
in
stdenv.mkDerivation rec {
pname = "gitkraken";
- version = "8.0.1";
+ version = "8.1.0";
src = fetchzip {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
- sha256 = "1n88m41424qwsfp2hy58piqpv2dk6i74hcj184aq6njllvnsznnq";
+ sha256 = "1115616d642chnisil7gv6fxw699sryphrfrp92cq3vi6lcwqbn8";
};
dontBuild = true;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/data.json b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/data.json
index 9f7323f3bf0..279d17937ec 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/data.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/data.json
@@ -1,14 +1,14 @@
{
- "version": "14.3.3",
- "repo_hash": "1sh8lf6arqljzc0hmajl2r2j38ahk9hl6kikg9inw72xycrll7dk",
- "yarn_hash": "0b6brkxg93gv4gjp1f7qlx7v7q7mb8z9vikcz98igdnhm46nl4dn",
+ "version": "14.4.1",
+ "repo_hash": "0sm44iyn32frc7njg6ypgbcip77mj5c3agn3cihk3lz7z5kr48lm",
+ "yarn_hash": "0l0lgcgxaira980a1y550pfsm4f2pw97gi8s5pghyfil2v2lyxyw",
"owner": "gitlab-org",
"repo": "gitlab",
- "rev": "v14.3.3-ee",
+ "rev": "v14.4.1-ee",
"passthru": {
- "GITALY_SERVER_VERSION": "14.3.3",
- "GITLAB_PAGES_VERSION": "1.44.0",
+ "GITALY_SERVER_VERSION": "14.4.1",
+ "GITLAB_PAGES_VERSION": "1.46.0",
"GITLAB_SHELL_VERSION": "13.21.1",
- "GITLAB_WORKHORSE_VERSION": "14.3.3"
+ "GITLAB_WORKHORSE_VERSION": "14.4.1"
}
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/default.nix
index 7e53e4ff15b..347151b1a7f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/default.nix
@@ -5,7 +5,7 @@
}:
let
- data = (builtins.fromJSON (builtins.readFile ./data.json));
+ data = lib.importJSON ./data.json;
version = data.version;
src = fetchFromGitLab {
@@ -36,6 +36,15 @@ let
buildInputs = [ file ];
buildFlags = [ "--enable-system-libraries" ];
};
+ # the included yarn rake task attaches the yarn:install task
+ # to assets:precompile, which is both unnecessary (since we
+ # run `yarn install` ourselves) and undoes the shebang patches
+ # in node_modules
+ railties = x.railties // {
+ dontBuild = false;
+ patches = [ ./railties-remove-yarn-install-enhancement.patch ];
+ patchFlags = "-p2";
+ };
};
groups = [
"default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 7eaf3c0f218..662252527f9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
gem 'rugged', '~> 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index dba345db638..05e75a52413 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/infra/libkookie/nixpkgs/unstable/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)
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 26deabcc230..c6f4df53774 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -20,7 +20,7 @@ let
};
};
};
- version = "14.3.3";
+ version = "14.4.1";
gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}";
in
@@ -32,7 +32,7 @@ buildGoModule {
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
- sha256 = "sha256-WC361E+p3i02n2YCOwUzRxCWFt5UMEfJi6tHZPj1dgo=";
+ sha256 = "sha256-bATqaB7q3MlyacEiBXdcEDs+xsJUbULVnYTSpEznxFg=";
};
vendorSha256 = "sha256-9RhPQosen70E9t1iAoc2SeKs9pYMMpMqgXLekWfKNf8=";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index dea32e94b13..4aad9394cd6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/infra/libkookie/nixpkgs/unstable/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"];
@@ -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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 3e3bc25162b..6614e3913b8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.3.3";
+ version = "14.4.1";
src = fetchFromGitLab {
owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
sourceRoot = "source/workhorse";
- vendorSha256 = "sha256-piA14jYFV+FD20kR38rN1o329eeYAW/PmS0QI1GaU50=";
+ vendorSha256 = "sha256-yLZY9FFUS4nJl4TkE6MwICCEwtPTXFc5zuj4FgiIy74=";
buildInputs = [ git ];
ldflags = [ "-X main.Version=${version}" ];
doCheck = false;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch
new file mode 100644
index 00000000000..25cbf775e63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 08a9b090c66..0713560ead8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/infra/libkookie/nixpkgs/unstable/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'
@@ -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
@@ -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,7 +229,7 @@ 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
@@ -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
@@ -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.3.0.pre.rc1'
+gem 'gitaly', '~> 14.3.0.pre.rc2'
# KAS GRPC protocol definitions
gem 'kas-grpc', '~> 0.0.2'
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 51ccc8a03cc..8a135d809ba 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/infra/libkookie/nixpkgs/unstable/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)
@@ -446,7 +445,7 @@ GEM
rails (>= 3.2.0)
git (1.7.0)
rchardet (~> 1.8)
- gitaly (14.3.0.pre.rc1)
+ 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,8 +483,8 @@ GEM
addressable (~> 2.7)
omniauth (~> 1.9)
openid_connect (~> 1.2)
- gitlab-sidekiq-fetcher (0.5.6)
- sidekiq (~> 5)
+ 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)
@@ -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,7 +535,7 @@ 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.7.0)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -987,11 +984,11 @@ GEM
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,7 +1008,7 @@ 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)
@@ -1045,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)
@@ -1109,8 +1106,6 @@ 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)
@@ -1169,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)
@@ -1251,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)
@@ -1351,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)
@@ -1408,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)
@@ -1458,19 +1452,19 @@ DEPENDENCIES
gettext (~> 3.3)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
- gitaly (~> 14.3.0.pre.rc1)
+ 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-sidekiq-fetcher (= 0.8.0)
gitlab-styles (~> 6.3.0)
gitlab_chronic_duration (~> 0.10.6.2)
gitlab_omniauth-ldap (~> 2.1.1)
@@ -1479,7 +1473,7 @@ DEPENDENCIES
google-protobuf (~> 3.17.1)
gpgme (~> 2.0.19)
grape (~> 1.5.2)
- grape-entity (~> 0.9.0)
+ grape-entity (~> 0.10.0)
grape-path-helpers (~> 1.7.0)
grape_logging (~> 1.7)
graphiql-rails (~> 1.4.10)
@@ -1512,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)
@@ -1563,7 +1557,7 @@ DEPENDENCIES
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)
@@ -1572,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)
@@ -1581,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)
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)
@@ -1611,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)
@@ -1628,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)
@@ -1650,4 +1644,4 @@ DEPENDENCIES
yajl-ruby (~> 1.4.1)
BUNDLED WITH
- 2.2.20
+ 2.2.24
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 0eb5dc16a3f..2c1f53c0b3a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/infra/libkookie/nixpkgs/unstable/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"];
@@ -1911,10 +1910,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0k0jrimdg0pij75hndkrl28hqgvsnl7sdn5k6mjv3sjwbm1p217w";
+ sha256 = "197db842msm326ib8r3gqlavf5d11r4cd9jg4wjnyar3ccyr9dn7";
type = "gem";
};
- version = "14.3.0.pre.rc1";
+ 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"];
@@ -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"];
@@ -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"];
@@ -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"];
@@ -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"];
@@ -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"];
@@ -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"];
@@ -4465,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"];
@@ -4671,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"];
@@ -5008,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"];
@@ -5351,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"];
@@ -5824,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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitoxide/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitoxide/default.nix
index b4bc0db4bac..570a4c06abf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/gitoxide/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/mercurial/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/mercurial/default.nix
index 3780be96fd6..eea3e7afb77 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/mercurial/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/sublime-merge/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/sublime-merge/default.nix
index 33716a48fb0..dd9b07f7faf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/vcsh/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/vcsh/default.nix
index 84716e76081..3f33edc9538 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/version-management/vcsh/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/entangle/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/entangle/default.nix
new file mode 100644
index 00000000000..6d8905d2c00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/flirc/99-flirc.rules b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/flirc/99-flirc.rules
new file mode 100644
index 00000000000..eb02f8a9113
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/flirc/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/flirc/default.nix
new file mode 100644
index 00000000000..6285094c461
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/handbrake/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/handbrake/default.nix
index 5007f7419ae..38f85625bd0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/handbrake/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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";
- })
- ];
-
- # 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
+ 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;
+
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,7 +225,7 @@ _EOF
CLI - `HandbrakeCLI`
GTK GUI - `ghb`
'';
- license = licenses.gpl2;
+ license = licenses.gpl2Only;
maintainers = with maintainers; [ Anton-Latukha wmertens ];
platforms = with platforms; unix;
};
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/jellyfin-media-player/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/jellyfin-media-player/default.nix
index 8c23bfc5c29..82d34d188ff 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/defusedxml/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/defusedxml/default.nix
new file mode 100644
index 00000000000..11738065ff6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/jellyfin/default.nix
index b162ca11fa8..59aaa2e8b26 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/jellyfin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/keymap/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/keymap/default.nix
new file mode 100644
index 00000000000..d7b45485d68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix
new file mode 100644
index 00000000000..064375107e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix
new file mode 100644
index 00000000000..640aec3d497
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/libretro/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/libretro/default.nix
new file mode 100644
index 00000000000..d1fc3d4afd2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/steam-library/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/steam-library/default.nix
index 5660be94987..fe772c9f732 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/steam-library/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/youtube/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/youtube/default.nix
index 7c16aa606f2..090e09d55ef 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
index 72d6533f38d..d1eb38cd0bd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/unwrapped.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/unwrapped.nix
index 1ad0dee49c7..7221e668f4e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/unwrapped.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/kodi/unwrapped.nix
@@ -38,15 +38,15 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
assert gbmSupport || waylandSupport || x11Support;
let
- kodiReleaseDate = "20211006";
- kodiVersion = "19.2";
+ kodiReleaseDate = "20211024";
+ kodiVersion = "19.3";
rel = "Matrix";
kodi_src = fetchFromGitHub {
owner = "xbmc";
repo = "xbmc";
rev = "${kodiVersion}-${rel}";
- sha256 = "sha256-w5m7xlnjQDJ4l75b3ctF0wMZ4kqi+H0X6WFLs0gV6lM=";
+ sha256 = "02bnknk87zzv9j6b6k9c0xx47q2gh399j6v25rm94g7rhzf8phbw";
};
ffmpeg = stdenv.mkDerivation rec {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/minitube/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/minitube/default.nix
index 84b5e2a1d73..62e7e21cbbb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/minitube/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/molotov/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/molotov/default.nix
index 3015bc1191b..670eef3aa3e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/molotov/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/motion/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/motion/default.nix
index 53db96e31d4..c9ea2a51d3d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/motion/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/mpv/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/mpv/default.nix
index 93c3b2203b7..97e707a587e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/mpv/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/mpv/wrapper.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/mpv/wrapper.nix
index 5225197772c..6166ae10d4e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/mpv/wrapper.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/default.nix
index ac396f4be80..bb6bfa637ce 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
index c3bcc09cd3f..c5a33af4437 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/libopenshot.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/libopenshot.nix
index 246c3d5cab8..8a98010ef64 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/smplayer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/smplayer/default.nix
index 007ef4262ef..6d4e0f18d6f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/smplayer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/sub-batch/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/sub-batch/default.nix
index 37daa870c6e..fd5b2888d63 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/sub-batch/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/ustreamer/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/ustreamer/default.nix
index 933747f3989..580c10da1d5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/ustreamer/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/vdr/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/vdr/default.nix
index 265ef82528d..c45c982d651 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/vdr/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/vdr/plugins.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/vdr/plugins.nix
index 6f701779d4d..d694ad8004e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/video/vdr/plugins.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/OVMF/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/OVMF/default.nix
index 54378dbe13d..1d1788ba0d8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/OVMF/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/OVMF/default.nix
@@ -30,8 +30,12 @@ edk2.mkDerivation projectDscPath {
hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
+ # Fails on i686 with:
+ # 'cc1: error: LTO support has not been enabled in this configuration'
+ NIX_CFLAGS_COMPILE = lib.optionals stdenv.isi686 [ "-fno-lto" ];
+
buildFlags =
- lib.optional secureBoot "-D SECURE_BOOT_ENABLE=TRUE"
+ lib.optionals secureBoot [ "-D SECURE_BOOT_ENABLE=TRUE" ]
++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ]
++ 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"];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/catatonit/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/catatonit/default.nix
index e311be68ab8..2a9fbdbd27f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/catatonit/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/catatonit/default.nix
@@ -2,13 +2,13 @@
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=";
};
nativeBuildInputs = [ autoreconfHook ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/crun/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/crun/default.nix
index 1788c970f29..2f09c3a29c7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/crun/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.2";
+ version = "1.3";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
- sha256 = "sha256-7YDU7H4dVT6qI+Gt3bkm7vqHlU0Fr7ZhF4SWcA+RhYw=";
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/ignite/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/ignite/default.nix
index 5439ad57b1a..9ab1d36fef5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/ignite/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/lima/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/lima/default.nix
index 78f47d5292c..9b6c412fa21 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/lima/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/lima/default.nix
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "lima";
- version = "0.7.1";
+ version = "0.7.2";
src = fetchFromGitHub {
owner = "lima-vm";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-CBRBcRvMFE9Pdxac3O15z0brF/5D279/Hat0CSYGRyE=";
+ sha256 = "sha256-XJZg3uX++gU65bO1uqJblXXcVPzFXROCWFTn/gfkea0=";
};
- vendorSha256 = "sha256-xlFIO33OOyLnIvbsbyHVNdyxh0vlwQOATbbZA7rsz9E=";
+ vendorSha256 = "sha256-+fx/Iy78gmhxRjXPkHYdixpaMkOwEANUsZA+KSdQkWU=";
nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/podman/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/podman/default.nix
index a945b2c79d7..705e5b5d611 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/podman/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/podman/default.nix
@@ -17,13 +17,13 @@
buildGoModule rec {
pname = "podman";
- version = "3.4.0";
+ version = "3.4.1";
src = fetchFromGitHub {
owner = "containers";
repo = "podman";
rev = "v${version}";
- sha256 = "sha256-AeddndkKyUs9i0bg0XO5QCmYgqgWREnHWsmce6VM7Oo=";
+ sha256 = "sha256-+6ALwm1Hc76rYwlQN0r8zX2n+nxBk5iW4AHWBlzAIOc=";
};
vendorSha256 = null;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/qemu/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/qemu/default.nix
index 224969cc264..48b83140e42 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/qemu/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/qemu/default.nix
@@ -92,6 +92,24 @@ stdenv.mkDerivation rec {
sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2";
revert = true;
})
+ (fetchpatch {
+ 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 {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/spike/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/spike/default.nix
index 054918dabf1..6161c006357 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/spike/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/default.nix
index 0d6d707a60d..98c7f80df8a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/default.nix
@@ -23,14 +23,14 @@ let
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" ];
@@ -94,9 +94,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
];
@@ -202,11 +199,6 @@ in stdenv.mkDerivation {
done
''}
- # https://github.com/NixOS/nixpkgs/issues/137104
- ${optionalString (enableHardening || headless) ''
- rm $libexec/components/VBoxREM.so
- ''}
-
cp -rv out/linux.*/${buildType}/bin/src "$modsrc"
'';
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/extpack.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/extpack.nix
index 5ed763fa2e7..7842e0ce89f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -12,7 +12,7 @@ fetchurl rec {
# Manually sha256sum the extensionPack file, must be hex!
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
- let value = "aaa1a1f8615d5bd2e08b158ce6f415262fbb595e169e2d415c5b1844ac258eee";
+ let value = "85d7858a95d802c41cb86e1b573dc501d782e5d040937e0d8505a37c29509774";
in assert (builtins.stringLength value) == 64; value;
meta = {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 66bd2966f5d..83dd8f6e793 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
- sha256 = "22d02ec417cd7723d7269dbdaa71c48815f580c0ca7a0606c42bd623f84873d7";
+ sha256 = "eab85206cfb9d7087982deb2635d19a4244a3c6783622a4817fb1a31e48e98e5";
};
KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/hardened.patch b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/hardened.patch
index 180ea88461e..786a476df51 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/hardened.patch
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/virtualization/virtualbox/hardened.patch
@@ -1,8 +1,8 @@
diff --git a/include/iprt/mangling.h b/include/iprt/mangling.h
-index c1daa8f..8618371 100644
+index 25b918d1..1420ff1d 100644
--- a/include/iprt/mangling.h
+++ b/include/iprt/mangling.h
-@@ -1440,6 +1440,7 @@
+@@ -1695,6 +1695,7 @@
# define RTPathStripSuffix RT_MANGLER(RTPathStripSuffix)
# define RTPathStripFilename RT_MANGLER(RTPathStripFilename)
# define RTPathStripTrailingSlash RT_MANGLER(RTPathStripTrailingSlash)
@@ -10,7 +10,7 @@ index c1daa8f..8618371 100644
# define RTPathTemp RT_MANGLER(RTPathTemp)
# define RTPathTraverseList RT_MANGLER(RTPathTraverseList)
# define RTPathUnlink RT_MANGLER(RTPathUnlink)
-@@ -1478,6 +1479,7 @@
+@@ -1734,6 +1735,7 @@
# define RTProcGetAffinityMask RT_MANGLER(RTProcGetAffinityMask)
# define RTProcGetExecutablePath RT_MANGLER(RTProcGetExecutablePath)
# define RTProcGetPriority RT_MANGLER(RTProcGetPriority)
@@ -19,13 +19,14 @@ index c1daa8f..8618371 100644
# define RTProcQueryParent RT_MANGLER(RTProcQueryParent)
# define RTProcQueryUsername RT_MANGLER(RTProcQueryUsername)
diff --git a/include/iprt/path.h b/include/iprt/path.h
-index 8bd42bc..2c23d3e 100644
+index 99060e35..ccfbeb76 100644
--- a/include/iprt/path.h
+++ b/include/iprt/path.h
-@@ -1064,6 +1064,15 @@ RTDECL(int) RTPathCalcRelative(char *pszPathDst, size_t cbPathDst,
+@@ -1221,6 +1221,15 @@ RTDECL(int) RTPathCalcRelative(char *pszPathDst, size_t cbPathDst, const char *p
+ */
RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath);
-
- /**
+
++/**
+ * Gets the path to the NixOS setuid wrappers directory.
+ *
+ * @returns iprt status code.
@@ -34,18 +35,18 @@ index 8bd42bc..2c23d3e 100644
+ */
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath);
+
-+/**
+ /**
* Gets the user home directory.
*
- * @returns iprt status code.
diff --git a/include/iprt/process.h b/include/iprt/process.h
-index 043653e..1070280 100644
+index f4f67dd4..ab882a19 100644
--- a/include/iprt/process.h
+++ b/include/iprt/process.h
-@@ -327,6 +327,16 @@ RTR3DECL(const char *) RTProcShortName(void);
+@@ -352,6 +352,16 @@ RTR3DECL(const char *) RTProcExecutablePath(void);
+ */
RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath);
-
- /**
+
++/**
+ * Gets the path to the NixOS setuid wrappers directory.
+ *
+ * @returns pszExecPath on success. NULL on buffer overflow or other errors.
@@ -55,15 +56,14 @@ index 043653e..1070280 100644
+ */
+RTR3DECL(char *) RTProcGetSuidPath(char *pszExecPath, size_t cbExecPath);
+
-+/**
+ /**
* Daemonize the current process, making it a background process.
*
- * The way this work is that it will spawn a detached / backgrounded /
diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
-index ce0f288..6193108 100644
+index 75ff8572..18a077b7 100644
--- a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
+++ b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
-@@ -1502,9 +1502,9 @@ static int supR3HardenedVerifyFsObject(PCSUPR3HARDENEDFSOBJSTATE pFsObjState, bo
+@@ -1531,9 +1531,9 @@ static int supR3HardenedVerifyFsObject(PCSUPR3HARDENEDFSOBJSTATE pFsObjState, bo
bool fBad = !fRelaxed || pFsObjState->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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/eww/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/eww/default.nix
new file mode 100644
index 00000000000..c2cc2f23cdb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/default.nix
index 7aa62e69df9..0d07ce4e8d1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/default.nix
@@ -7,11 +7,11 @@
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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/gaps.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/gaps.nix
index 8ab8c5630d0..6884e5ea7a1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/gaps.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/status-rust.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/status-rust.nix
index edb482ad15f..d0ae7b28a54 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.5";
src = fetchFromGitHub {
owner = "greshake";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-lohMrsMCAnb2p7H+xfa24Wx3LEFxCAlGHfP9A70Hg48=";
+ sha256 = "sha256-7KEG4akn6tOUrgQUZFX0Wiz8YAKFUAr8AN16Xg8CLO4=";
};
- cargoSha256 = "sha256-pe96VNTH49qgQ4yxKcAcQPN31W2k1mD9TdhNKBp4x5Q=";
+ cargoSha256 = "sha256-GTE1KJ/ZpiqwmmKYx6kNzPNNmz0QHYWrIyKN49uzdZA=";
nativeBuildInputs = [ pkg-config makeWrapper ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
index d3b685e7dcd..d01e1bfdf97 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/leftwm/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/leftwm/default.nix
index e8330ee2936..9379fb358b3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/leftwm/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/oroborus/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/oroborus/default.nix
index 0124261e423..d24abb68fb7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/oroborus/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/picom/picom-next.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/picom/picom-next.nix
new file mode 100644
index 00000000000..67b510396f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/river/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/river/default.nix
index 8cf72adbf85..e59ce5449e2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/river/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/river/default.nix
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "river";
- version = "unstable-2021-09-30";
+ version = "0.1.0";
src = fetchFromGitHub {
owner = "ifreund";
repo = pname;
- rev = "e6bb373240bc08668c8e6e14996a3f8765941158";
- sha256 = "sha256-dYruRpsud2XYrVY2f4f2dkRRSh1oU9rn2GRwAkJqW3A=";
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/sway/wrapper.nix b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/sway/wrapper.nix
index 7bcb26e0c97..827fce89702 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/sway/wrapper.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/applications/window-managers/sway/wrapper.nix
@@ -52,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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/appimage/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/appimage/default.nix
index 9df241a48ca..8a2b2324574 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/appimage/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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; };
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/bintools-wrapper/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/bintools-wrapper/default.nix
index 3d64639d33f..53f367b9b84 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/bintools-wrapper/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh
new file mode 100644
index 00000000000..5b5136e3d14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/build-dotnet-module/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/build-dotnet-module/default.nix
index 0161c101e5b..6a7b70e070b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/build-dotnet-module/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/build-dotnet-module/default.nix
@@ -1,7 +1,8 @@
-{ lib, stdenv, makeWrapper, dotnetCorePackages, dotnetPackages, cacert, linkFarmFromDrvs, fetchurl }:
+{ 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 ? []
@@ -9,6 +10,8 @@
, 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.
@@ -27,12 +30,20 @@
# 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.";
@@ -50,8 +61,35 @@ let
};
});
- package = stdenv.mkDerivation (args // {
- nativeBuildInputs = args.nativeBuildInputs or [] ++ [ dotnet-sdk dotnetPackages.Nuget cacert makeWrapper ];
+ 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;
@@ -64,18 +102,11 @@ let
export HOME=$(mktemp -d)
- nuget sources Add -Name nixos -Source "$PWD/nixos"
- nuget init "${_nugetDeps}" "$PWD/nixos"
-
- # This is required due to https://github.com/NuGet/Home/issues/4413.
- mkdir -p $HOME/.nuget/NuGet
- cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
-
- dotnet restore ${lib.escapeShellArg projectFile} \
+ dotnet restore "$projectFile" \
${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
-p:ContinuousIntegrationBuild=true \
-p:Deterministic=true \
- --source "$PWD/nixos" \
+ --source "${nuget-source}/lib" \
"''${dotnetRestoreFlags[@]}" \
"''${dotnetFlags[@]}"
@@ -85,13 +116,13 @@ let
buildPhase = args.buildPhase or ''
runHook preBuild
- dotnet build ${lib.escapeShellArg projectFile} \
+ 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} \
+ --configuration "$buildType" \
--no-restore \
"''${dotnetBuildFlags[@]}" \
"''${dotnetFlags[@]}"
@@ -99,20 +130,37 @@ let
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 ${lib.escapeShellArg projectFile} \
+ dotnet publish "$projectFile" \
-p:ContinuousIntegrationBuild=true \
-p:Deterministic=true \
--output $out/lib/${args.pname} \
- --configuration ${buildType} \
+ --configuration "$buildType" \
--no-build \
--no-self-contained \
"''${dotnetInstallFlags[@]}" \
"''${dotnetFlags[@]}"
'' + (if executables != null then ''
- for executable in ''${executables}; do
+ for executable in $executables; do
execPath="$out/lib/${args.pname}/$executable"
if [[ -f "$execPath" && -x "$execPath" ]]; then
@@ -120,7 +168,7 @@ let
--set DOTNET_ROOT "${dotnet-runtime}" \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
"''${gappsWrapperArgs[@]}" \
- ''${makeWrapperArgs}
+ "''${makeWrapperArgs[@]}"
else
echo "Specified binary \"$executable\" is either not an executable, or does not exist!"
exit 1
@@ -133,7 +181,7 @@ let
--set DOTNET_ROOT "${dotnet-runtime}" \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
"''${gappsWrapperArgs[@]}" \
- ''${makeWrapperArgs}
+ "''${makeWrapperArgs[@]}"
fi
done
'') + ''
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/buildenv/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/buildenv/default.nix
index c2186cf6bfa..006fc2aff92 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/buildenv/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/default.nix
index a42b025bc7f..dcfa5ec593d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/default.nix
@@ -31,8 +31,6 @@
, writeText
, writeTextDir
, writePython3
-, system
-, # Note: This is the cross system we're compiling for
}:
let
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/test-dummy/hello.txt b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/test-dummy/hello.txt
new file mode 100644
index 00000000000..495cc9fa8f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/docker/test-dummy/hello.txt
@@ -0,0 +1 @@
+Hello there!
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchgitlab/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchgitlab/default.nix
index 5b9dbd71c59..9ee0b3ca368 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchgitlab/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchpatch/tests.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchpatch/tests.nix
new file mode 100644
index 00000000000..4240b325d65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchurl/mirrors.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchurl/mirrors.nix
index 8dc4f4207b6..3ab4be4d8be 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/fetchurl/mirrors.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/"
-
- "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://download.gnome.org/"
+
+ "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
+ # Africa (HTTPS)
+ "https://sagemath.mirror.ac.za/spkg/upstream/"
+ "https://mirror.ufs.ac.za/sagemath/spkg/upstream/"
+
+ # America, North (HTTPS)
+ "https://mirrors.mit.edu/sage/spkg/upstream/"
+ "https://mirrors.xmission.com/sage/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/"
+ "https://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/"
+ "https://mirror.yandex.ru/mirrors/sage.math.washington.edu/spkg/upstream/"
+
+ # Australia (HTTPS)
+ "https://mirror.aarnet.edu.au/pub/sage/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/"
- "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/"
- # America, North
- "http://mirrors-usa.go-parts.com/sage/sagemath/spkg/upstream/"
- "http://mirrors.mit.edu/sage/spkg/upstream/"
+ # America, North (non-HTTPS)
"http://www.cecm.sfu.ca/sage/spkg/upstream/"
- "http://files.sagemath.org/spkg/upstream/"
- "http://mirror.clibre.uqam.ca/sage/spkg/upstream/"
- "https://mirrors.xmission.com/sage/spkg/upstream/"
- # America, South
+ # America, South (non-HTTPS)
"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/"
+ # Asia (non-HTTPS)
"http://ftp.kaist.ac.kr/sage/spkg/upstream/"
"http://ftp.riken.jp/sagemath/spkg/upstream/"
- "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://mirror.yandex.ru/mirrors/sage.math.washington.edu/spkg/upstream/"
-
- # Australia
- "http://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 (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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/java/canonicalize-jar.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/java/canonicalize-jar.nix
new file mode 100644
index 00000000000..1edd9a6e0d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/java/canonicalize-jar.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/java/canonicalize-jar.sh
new file mode 100644
index 00000000000..af010bcd2b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/libredirect/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/libredirect/default.nix
index 42525ec98a7..f87c6d23dd7 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/libredirect/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/libredirect/libredirect.c b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/libredirect/libredirect.c
index c7058ce123c..7dac4684722 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/libredirect/libredirect.c
+++ b/infra/libkookie/nixpkgs/unstable/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,32 +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)
-int mkdir(const char *path, mode_t mode)
+WRAPPER(int, mkdir)(const char *path, mode_t mode)
{
- int (*mkdir_real) (const char *path, mode_t mode) = dlsym(RTLD_NEXT, "mkdir");
+ 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)
-int mkdirat(int dirfd, const char *path, mode_t mode)
+WRAPPER(int, mkdirat)(int dirfd, const char *path, mode_t mode)
{
- int (*mkdirat_real) (int dirfd, const char *path, mode_t mode) = dlsym(RTLD_NEXT, "mkdirat");
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/default.nix
index 03be881311f..6d67b87915a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, makeWrapper, coreutils, nix-prefetch-git, fetchurl, nodejs-slim, prefetch-yarn-deps, cacert, callPackage }:
+{ stdenv, lib, makeWrapper, coreutils, nix-prefetch-git, fetchurl, nodejs-slim, prefetch-yarn-deps, cacert, callPackage, nix }:
let
yarnpkg-lockfile-tar = fetchurl {
@@ -13,7 +13,7 @@ in {
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ coreutils nix-prefetch-git nodejs-slim ];
+ buildInputs = [ coreutils nix-prefetch-git nodejs-slim nix ];
buildPhase = ''
runHook preBuild
@@ -33,7 +33,7 @@ in {
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 ]}
+ --prefix PATH : ${lib.makeBinPath [ coreutils nix-prefetch-git nix ]}
runHook postInstall
'';
@@ -49,7 +49,7 @@ in {
hash_ =
if hash != "" then { outputHashAlgo = null; outputHash = hash; }
else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
- else throw "fetchYarnDeps requires a hash";
+ else { outputHashAlgo = "sha256"; outputHash = lib.fakeSha256; };
in stdenv.mkDerivation {
inherit name;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/index.js b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/index.js
index a9c5ab29cce..e728ad89e1c 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/index.js
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/node/fetch-yarn-deps/index.js
@@ -18,6 +18,20 @@ const exec = async (...args) => {
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) => {
@@ -61,19 +75,18 @@ const downloadGit = async (fileName, url, rev) => {
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 fileName = path.basename(url)
const s = url.split('/')
downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[6])
} else if (url.startsWith('https://')) {
- const fileName = url
- .replace(/https:\/\/(.)*(.com)\//g, '') // prevents having long directory names
- .replace(/[@/%:-]/g, '_') // replace @ and : and - and % characters with underscore
-
return downloadFileHttps(fileName, url, hash)
+ } else if (url.startsWith('git:')) {
+ return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
} else if (url.startsWith('git+')) {
- const fileName = path.basename(url)
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 + '"')
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/ant-build.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/ant-build.nix
deleted file mode 100644
index 6b59241e01e..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/default.nix
index 83f755b2bec..d593ec81197 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/functions.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/functions.sh
index 120d1968542..0c4b81edf82 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/release/functions.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/default-crate-overrides.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/default-crate-overrides.nix
index 4050afe8dde..841cad09efa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/default-crate-overrides.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/default-crate-overrides.nix
@@ -22,7 +22,11 @@
, clang
, llvmPackages
, linux-pam
+, cmake
+, glib
+, freetype
, rdkafka
+, udev
, ...
}:
@@ -61,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
@@ -75,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 ];
};
@@ -112,6 +130,11 @@ in
buildInputs = [ dbus ];
};
+ libudev-sys = attrs: {
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ udev ];
+ };
+
nettle-sys = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ nettle clang ];
@@ -184,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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/hooks/cargo-check-hook.sh
index f0339afb38f..8a8e434f0ff 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/rust/hooks/cargo-check-hook.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/setup-hooks/canonicalize-jars.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/setup-hooks/canonicalize-jars.sh
new file mode 100644
index 00000000000..8c55810748e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/setup-hooks/strip.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/setup-hooks/strip.sh
index c31a50eba57..2d8e66a89fa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/setup-hooks/strip.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders.nix
index f06d2136b8c..58cdeb269d5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders.nix
@@ -465,6 +465,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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test.sh b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/references-test.sh
similarity index 67%
rename from infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test.sh
rename to infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/references-test.sh
index b7c4726a9be..473ca6e1076 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/references.nix
similarity index 73%
rename from infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/references.nix
index 204fb54fca3..a2bee51b13e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/sample.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/sample.nix
index 27aee6b73db..a4eedce8417 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/sample.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix
new file mode 100644
index 00000000000..b93b43b74aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/build-support/writers/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/build-support/writers/default.nix
index 111ec68a602..216e41f6d7e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/build-support/writers/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/execline-man-pages/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/execline-man-pages/default.nix
index 0b1cb34bb3b..ed4389cad6c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/execline-man-pages/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/execline-man-pages/default.nix
@@ -2,8 +2,8 @@
buildManPages {
pname = "execline-man-pages";
- version = "2.8.1.0.1";
- sha256 = "0d3lzxy7wv91q3nr6bw1wfmrfj285i15wmj4c8v9k9pxjg42iwwx";
+ version = "2.8.1.0.3";
+ sha256 = "1n7c75lmyrjzzcbwjl6fxhfs4k29qlr66r1q35799h942cn4li7v";
description = "Port of the documentation for the execline suite to mdoc";
maintainers = [ lib.maintainers.sternenseemann ];
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/linux-manual/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/linux-manual/default.nix
new file mode 100644
index 00000000000..27690f9b99c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-man-pages/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-man-pages/default.nix
index 583f1ff99fe..d38df8cf037 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-man-pages/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-man-pages/default.nix
@@ -2,8 +2,8 @@
buildManPages {
pname = "s6-man-pages";
- version = "2.11.0.0.1";
- sha256 = "00nxlpdf0kkdadyv84vj5w66y926pccqls8prkbip3zmcmnqgghs";
+ version = "2.11.0.0.2";
+ sha256 = "1ddab4l4wwrg2jdcrdqp1rx8dzbzbdsvx4mzayraxva4q97d1g9r";
description = "Port of the documentation for the s6 supervision suite to mdoc";
maintainers = [ lib.maintainers.sternenseemann ];
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-networking-man-pages/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-networking-man-pages/default.nix
index 453125cc682..769f34348b1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-networking-man-pages/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/documentation/s6-networking-man-pages/default.nix
@@ -2,8 +2,8 @@
buildManPages {
pname = "s6-networking-man-pages";
- version = "2.5.0.0.1";
- sha256 = "02xvyby23b2x30jxd4nw9c5629j4hdaxq9sph3qhajlhl53yiyf2";
+ version = "2.5.0.0.2";
+ sha256 = "1ix8qrivp9prw0m401d7s9vkxhw16a4sxfhrs7abf9qqhs2zkd1r";
description = "Port of the documentation for the s6-networking suite to mdoc";
maintainers = [ lib.maintainers.sternenseemann ];
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/arphic/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/arphic/default.nix
index 714af585d25..02e2a2de417 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/arphic/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/atkinson-hyperlegible/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/atkinson-hyperlegible/default.nix
new file mode 100644
index 00000000000..ef7425e12e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/corefonts/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/corefonts/default.nix
index c37d3251a9d..4b4772699cd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/corefonts/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/ibm-plex/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/ibm-plex/default.nix
index cd33a834acc..c24c507695e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/ibm-plex/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/noto-fonts/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/noto-fonts/default.nix
index 27e414b12e2..88c17e8f4a3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/noto-fonts/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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=";
- dontUnpack = true;
-
- installPhase = ''
- install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf
- '';
+ 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 ];
+ 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 ];
+ };
};
- };
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/public-sans/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/public-sans/default.nix
index 7d7a81ec7e7..88da0cb5d55 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/public-sans/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/recursive/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/recursive/default.nix
index caff63da8c7..a1d99c33b85 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/recursive/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/sarasa-gothic/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/sarasa-gothic/default.nix
index 5bc691e7244..00caa09a00b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-code-pro/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-code-pro/default.nix
index c9518b78a65..eaf82d412a1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-code-pro/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han-code-jp/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han-code-jp/default.nix
index 5960e4fb6ea..7f12fee5067 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han-code-jp/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han/default.nix
index e24bc8ae0dd..1672af411c0 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-han/default.nix
@@ -48,8 +48,13 @@ in
serif = makePackage {
family = "serif";
description = "serif";
- rev = "1.001R";
- sha256 = "0nnsb2w140ih0cnp1fh7s4csvzp9y0cavz9df2ryhv215mh9z4m0";
+ 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 {
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-sans-pro/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-sans/default.nix
similarity index 55%
rename from infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-sans-pro/default.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-sans/default.nix
index 7d5c7679ad8..c16d0d2b8b4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-sans-pro/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-serif-pro/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-serif-pro/default.nix
deleted file mode 100644
index 86a45b80efd..00000000000
--- a/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-serif/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/source-serif/default.nix
new file mode 100644
index 00000000000..855fe7e6e9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch
new file mode 100644
index 00000000000..6154b801475
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/terminus-font/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/terminus-font/default.nix
index fca357706a6..9ccf0371f19 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/terminus-font/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/victor-mono/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/victor-mono/default.nix
index 940c0d76c46..17ad7e23e8c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/fonts/victor-mono/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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.
- postFetch = ''
- tar xvf $downloadedFile --strip-components=2 ${pname}-${version}/public/VictorMonoAll.zip
-
- mkdir -p $out/share/fonts/{true,open}type/${pname}
+ url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
- unzip -j VictorMonoAll.zip \*.ttf -d $out/share/fonts/truetype/${pname}
- unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
+ postFetch = ''
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/kora-icon-theme/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/kora-icon-theme/default.nix
index 5c8f3d15b66..89fd80c468e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/numix-icon-theme/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/numix-icon-theme/default.nix
index 194a36021a9..c46cc0a6ec9 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/tela-icon-theme/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/tela-icon-theme/default.nix
index 31745f9b2f1..69f0337fcaa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/tela-icon-theme/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/tela-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "tela-icon-theme";
- version = "2021-10-08";
+ version = "2021-11-05";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "sha256-4h6c7asjUC7pqi4GkxCN13LOpVVbjBdvjUMN7sXAlNE=";
+ sha256 = "sha256-mvkgHBdZm6vF+/DS3CRLl1m14U0Lj4Xtz4J/vpJUTQM=";
};
nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/whitesur-icon-theme/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/whitesur-icon-theme/default.nix
index 27695f3cbd1..157ff6d3eac 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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-10-13";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "O7nb6X20HvnzldijP/fXqAs/2qE5JUg3DEMb84ZMQp4=";
+ sha256 = "BP5hGi3G9zNUSfeCbwYUvd3jMcWhstXiDeZCJ6Hgey8=";
};
nativeBuildInputs = [ gtk3 ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/default.nix
index bd67e2a58f1..49645ee8008 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/default.nix
@@ -1,131 +1,207 @@
{ 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";
+ 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)";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ andir fpletz lukegb ];
+ license = licenses.mpl20;
};
-in
+ certdata = stdenv.mkDerivation {
+ pname = "nss-cacert-certdata";
+ inherit version;
-stdenv.mkDerivation rec {
- pname = "nss-cacert";
- version = "3.66";
+ 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";
+ };
- src = fetchurl {
- url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
- sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
- };
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
- outputs = [ "out" "unbundled" ];
+ mkdir $out
+ cp nss/lib/ckfw/builtins/certdata.txt $out
- nativeBuildInputs = [ python3 ];
+ runHook postInstall
+ '';
+
+ inherit meta;
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "nss-cacert";
+ inherit version;
- configurePhase = ''
- ln -s nss/lib/ckfw/builtins/certdata.txt
+ src = certdata;
- cat << EOF > blacklist.txt
- ${lib.concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
- EOF
+ outputs = [ "out" "unbundled" "p11kit" ];
- # copy from the store, otherwise python will scan it for imports
- cat "${certdata2pem}" > certdata2pem.py
- '';
+ nativeBuildInputs = [ buildcatrust ];
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
+ 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 = ''
- mkdir -pv $out/etc/ssl/certs
- cp -v ca-bundle.crt $out/etc/ssl/certs
+ 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
- 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
+ install -D -t "$unbundled/etc/ssl/certs" unbundled/*.crt
'';
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
+ 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
- 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
+ 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"
+ '';
};
};
- meta = with lib; {
- homepage = "https://curl.haxx.se/docs/caextract.html";
- description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
- platforms = platforms.all;
- maintainers = with maintainers; [ andir fpletz lukegb ];
- license = licenses.mpl20;
- };
+ inherit meta;
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/test-cert-file.crt b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/test-cert-file.crt
new file mode 100644
index 00000000000..095f38817d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/update.sh b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/update.sh
index 1c286dc6206..72d581b9650 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/cacert/update.sh
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/hackage/pin.json b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/hackage/pin.json
index aaab65085fa..d5bcd2d60bf 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/hackage/pin.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
{
- "commit": "73463ac080cd55650580d58fe80e5b2dcdfe5a7e",
- "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/73463ac080cd55650580d58fe80e5b2dcdfe5a7e.tar.gz",
- "sha256": "1vwlpkrpfj6wdzlv4lwargyakyci81gri70z2jhkpvv3l6adc0gk",
- "msg": "Update from Hackage at 2021-10-15T10:42:20Z"
+ "commit": "f2537d46db49014726f8ad00dcc60f5e41213397",
+ "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/f2537d46db49014726f8ad00dcc60f5e41213397.tar.gz",
+ "sha256": "021j2xn1xk8fqs7648si42n7z6rjzp4jnags4jkfnk1f81swns6h",
+ "msg": "Update from Hackage at 2021-10-23T04:57:02Z"
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/tzdata/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/tzdata/default.nix
index aa3d9e787b6..fddd1aec61a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/tzdata/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/v2ray-domain-list-community/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/misc/v2ray-domain-list-community/default.nix
new file mode 100644
index 00000000000..bff703563d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/dracula-theme/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/dracula-theme/default.nix
index e36f567b5f8..1b6a9025eef 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/dracula-theme/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/flat-remix-gnome/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/flat-remix-gnome/default.nix
index 8e273afc769..bef378d66c3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -6,20 +6,20 @@
stdenv.mkDerivation rec {
pname = "flat-remix-gnome";
- version = "20210921";
+ version = "20211028";
src = fetchFromGitHub {
owner = "daniruiz";
repo = pname;
rev = version;
- hash = "sha256-HnbKqdDAre2jhZH1Osf3jigz/dQpx7k0fPsVaZz7xC8=";
+ 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/20210921/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/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/kde-gruvbox/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/kde-gruvbox/default.nix
new file mode 100644
index 00000000000..e0f478a53cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
new file mode 100644
index 00000000000..2f5230181d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/marwaita/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/marwaita/default.nix
index 1eb6a5f39e6..5676d03abee 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/marwaita/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/marwaita/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "marwaita";
- version = "11.2";
+ version = "11.3";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = version;
- sha256 = "1krfjk76yjyzsxkhymc1dpy3y7ykawdxzwb282wgbb480dpg8s05";
+ sha256 = "sha256-7l3fvqhMMJyv27yv/jShju0hL5AAvHk8pmISj/oyUP4=";
};
buildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/whitesur/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/whitesur/default.nix
index 83764e3c8bc..46594e4f5e1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/whitesur/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/data/themes/whitesur/default.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "whitesur-gtk-theme";
- version = "2021-09-24";
+ version = "2021-10-21";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "12dwmgq0kadjfky5bjm62vwgdlw3nmrrhqqs5iw15w0pn3mbmd5c";
+ 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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/000-openal.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/000-openal.patch
new file mode 100644
index 00000000000..f8e02a4cb0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/001-luajit.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/001-luajit.patch
new file mode 100644
index 00000000000..eff3c0a5aad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/002-libuvc.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/002-libuvc.patch
new file mode 100644
index 00000000000..48d25fe8271
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/003-freetype.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/003-freetype.patch
new file mode 100644
index 00000000000..e38d329b026
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/clone-sources.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/clone-sources.nix
new file mode 100644
index 00000000000..2ade63e70bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/default.nix
similarity index 57%
rename from infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan/default.nix
index a0d037725ed..8420df5e7e2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/arcan.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/default.nix
index 39d3e489c59..9d9f28a7953 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/durden.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/durden/default.nix
similarity index 85%
rename from infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/durden.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/durden/default.nix
index f6837f96fb6..69aae1d216a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/durden.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/pipeworld.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/pipeworld/default.nix
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/pipeworld.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/pipeworld/default.nix
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/prio.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/prio/default.nix
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/prio.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/prio/default.nix
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/wrapper.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/wrapper.nix
index e394e2e0897..b61c5a5becd 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/wrapper.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/xarcan.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/xarcan/default.nix
similarity index 100%
rename from infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/xarcan.nix
rename to infra/libkookie/nixpkgs/unstable/pkgs/desktops/arcan/xarcan/default.nix
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/file-roller/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/file-roller/default.nix
index a2642865200..c4c489dae08 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/file-roller/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-clocks/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
index d9a749a24b0..2e8ec02bd84 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index 1f2cb9dc52e..5f69b30217e 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-connections";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- hash = "sha256-M5/1VaEI0gt6sPO/GCmWMWAYYOeO+peLpqudGO3DtGA=";
+ hash = "sha256-ia9eWM2D6mLl+abwMadKOFUIW6KS8OqFgGQIs6+DTug=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 7ddf227a8fb..0b29f89d463 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "gnome-maps";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-G0CC22wHDp3LCFJZ6+PIpCG44eiyezKEq2BXULudjJI=";
+ sha256 = "sha256-XtyUpXlHDO1HztKSxUq6Z8vnBIGOF0BsCQwB1Dlb4a0=";
};
doCheck = true;
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-todo/default.nix
index cfa77fadb79..e486279508c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-todo/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/apps/gnome-todo/default.nix
@@ -33,6 +33,14 @@ stdenv.mkDerivation rec {
sha256 = "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras";
};
+ patches = [
+ # fix build race bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257667
+ (fetchpatch {
+ url = "https://cgit.freebsd.org/ports/patch/?id=a4faaf6cf7835014b5f69a337b544ea4ee7f9655";
+ sha256 = "sha256-IMBfqtrqBw3DdmJG0qchZFR6Am1PICMnM5P6BcS8oqI=";
+ })
+ ];
+
nativeBuildInputs = [
meson
ninja
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/default.nix
index 617ef1cc38f..6f996552064 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -3,6 +3,7 @@
, ninja
, gettext
, fetchurl
+, fetchpatch
, pkg-config
, gtk3
, glib
@@ -46,12 +47,30 @@ stdenv.mkDerivation rec {
sha256 = "s50YJUkllbC3TF1qZoaoV/lBnfpMAvgBPCl7yHDibdA=";
};
- patches = lib.optionals withPantheon [
- # Make this respect dark mode settings from Pantheon
+ 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
- # The patch currently differs from upstream (updated for epiphany 40 and 41).
- ./pantheon-dark-style.patch
- ./pantheon-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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/pantheon-dark-style.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/pantheon-dark-style.patch
deleted file mode 100644
index 56ac5c1e5b2..00000000000
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/pantheon-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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/pantheon-navigation-buttons.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/pantheon-navigation-buttons.patch
deleted file mode 100644
index b7b3b620535..00000000000
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/epiphany/pantheon-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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index aabe9af1482..9c1fd1658ec 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "evolution-data-server";
- version = "3.42.0";
+ 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 = "6P3TvEegfW+KMFK7yuiA8g9tvE9pc6jpDQAWm7mbFjU=";
+ sha256 = "5uZ/KnfQ/z5tpQsD3F+iZucWYmvNou9EFE4xfjXy9Sg=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index d7a898c1c45..d60b64b78aa 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -68,11 +68,11 @@
stdenv.mkDerivation rec {
pname = "gnome-control-center";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-pWliIq01P8+aB8QG4ofsyROOJQZFyypZQaiP8GhWWME=";
+ sha256 = "sha256-6gxxSExlzizBE3b5sB5iEfpKf/0zT0MH/FLJPw/d1Mc=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index 195a0c4f016..5f3ef81d905 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation rec {
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.linux;
+ mainProgram = "gnome-disks";
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index fac50cd2b34..2ab3091edec 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-remote-desktop";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- hash = "sha256-apvIscaHRvSjqsH+dMRKcuJqi7S+HxynMCdwWstlK14=";
+ hash = "sha256-wOiJsO2BGxGAm777FzOElNj1L/USC+bj/9O65angX98=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-software/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-software/default.nix
index 4d9a5c40765..7ee3a51aba2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -42,11 +42,11 @@ in
stdenv.mkDerivation rec {
pname = "gnome-software";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "AkC3bsnfYi2b7A6zjkrFY8rt5oCLrZO4gmPYCXD/OcE=";
+ sha256 = "eil3Ziga8tvsyssQJMcT7ISYxoJ++RJG6d6Grpof4Xs=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 48e65009ade..1c905eec41b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -27,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "gnome-terminal";
- version = "3.42.0";
+ version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "tQ6eVmQjDmyikLzziBKltl4LqsZqSG7iEIlM9nX3Lgs=";
+ sha256 = "wxmxQFUBuMdpPmFvSOztQWldLnhhSMpfnie8fZj0rrE=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/nautilus/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/nautilus/default.nix
index 2a964964a09..4f7df313ad5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -34,13 +34,13 @@
stdenv.mkDerivation rec {
pname = "nautilus";
- version = "41.0";
+ version = "41.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "+blBrcEEcAxn6kB2YiMV8fa3fc7BVMN/PUwLKDlQoeU=";
+ sha256 = "PmMwmIU3EaPpaxL+kiizIBgW5VSygj8WHn2QGoiAWC8=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index f08fc7ec0df..29a60e5513a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/collisions.json b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/collisions.json
index 2b2f6eb2776..4cb43d178b5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/collisions.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/collisions.json
@@ -91,5 +91,19 @@
"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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/default.nix
index 2937cf6ac79..f4f6fba89c2 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/default.nix
@@ -59,8 +59,9 @@ in rec {
gnome38Extensions = mapUuidNames (produceExtensionsList "38");
gnome40Extensions = mapUuidNames (produceExtensionsList "40");
+ gnome41Extensions = mapUuidNames (produceExtensionsList "41");
- gnomeExtensions = lib.trivial.pipe gnome40Extensions [
+ gnomeExtensions = lib.trivial.pipe (gnome40Extensions // gnome41Extensions) [
# Apply some custom patches for automatically packaged extensions
(callPackage ./extensionOverrides.nix {})
# Add all manually packaged extensions
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensionRenames.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensionRenames.nix
index c7bc0b65ab4..6d290948064 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/infra/libkookie/nixpkgs/unstable/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";
@@ -38,23 +49,14 @@
"extension-list@tu.berry" = "extension-list";
"screen-lock@garciabaameiro.com" = "screen-lock"; # Don't know why they got 'extension-list' as slug
- "floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
- "floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
-
- # ############################################################################
- # 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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensions.json b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensions.json
index e05c4ce74bc..8268db6d07b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensions.json
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/extensions.json
@@ -1,65 +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": "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=="}}}
-, {"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="}}}
-, {"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": "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"}}}
-, {"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": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"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"}}}
+[ {"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": "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=="}}}
-, {"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": "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 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="}}}
-, {"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=="}}}
-, {"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=="}}}
+, {"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="}, "40": {"version": "70", "sha256": "0i84pd1z69hvi5h63cnfm89j9vida86cnzfcl0khvzplm41cjchj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL21pY2hlbGVnLmdpdGh1Yi5pby9kYXNoLXRvLWRvY2svIiwKICAidXVpZCI6ICJkYXNoLXRvLWRvY2tAbWljeGd4LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3MAp9"}}}
+, {"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": "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="}}}
+, {"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": "99", "sha256": "0zdw99g9r3vgx8qy68815md4v4h9pndy6c5pg5x05959ayxr5rzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiA5OQp9"}, "40": {"version": "99", "sha256": "0zdw99g9r3vgx8qy68815md4v4h9pndy6c5pg5x05959ayxr5rzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiA5OQp9"}}}
+, {"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": "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": "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"}}}
-, {"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": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "40": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}}}
+, {"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": "27", "sha256": "159iiyw0sblq8jwkm1qfcakgdy3rvk07vzz8q6yj2davp64wpg5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
+, {"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": "12", "sha256": "0z7p6xl6axckl6f0gyqaya3l5i4d9mnzkqdylpfhywswb5idabra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9BY3Rpdml0aWVzQHNoYXkuc2hheWVsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "0z7p6xl6axckl6f0gyqaya3l5i4d9mnzkqdylpfhywswb5idabra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9BY3Rpdml0aWVzQHNoYXkuc2hheWVsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"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=="}}}
@@ -70,10 +71,10 @@
, {"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": "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"}}}
+, {"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="}}}
+, {"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="}}}
@@ -84,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": "14", "sha256": "0q4fz7n6k70wlbd314xpr5zfkv3l35z3hc5kz4fwg859q3yvrd55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"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="}}}
@@ -108,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="}}}
@@ -122,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. 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"}}}
-, {"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="}}}
-, {"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": "26", "sha256": "18gm70y6qxgcmp0ly1d8rbnn5a21xcgzv0awnp85gsmj3cylyd6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hc2EtYXBvZCIsCiAgInV1aWQiOiAibmFzYV9hcG9kQGVsaW52ZW50aW9uLm92aCIsCiAgInZlcnNpb24iOiAyNgp9"}}}
+, {"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": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
+, {"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": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "40": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
+, {"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": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"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=="}}}
-, {"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="}}}
@@ -164,35 +165,36 @@
, {"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": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
+, {"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": "23", "sha256": "16c3m7n72743n9pmh5z8rh8vn8vr067zjd9820xj8aidfdfwpflg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
-, {"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": "45", "sha256": "16rq3dsjkj93lyx7zsim86k6zaa735604di3dcacvbzpaxf5rj96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "45", "sha256": "16rq3dsjkj93lyx7zsim86k6zaa735604di3dcacvbzpaxf5rj96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"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": "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"}}}
-, {"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="}}}
-, {"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="}, "40": {"version": "29", "sha256": "1vih9b4g2xxfasf9f51br4wf2fmdks7nyh6pfdi347i3xkx96zpy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
-, {"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": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
+, {"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"}}}
@@ -201,12 +203,12 @@
, {"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": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"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": "21", "sha256": "0dhcawzc2ljxjc31jnk7ihbvngw9sbbcgk7qvhz5syjvsbwzc8c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFycmFuZ2VXaW5kb3dzIiwKICAidXVpZCI6ICJhcnJhbmdlV2luZG93c0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"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="}}}
-, {"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=="}}}
+, {"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="}}}
@@ -215,174 +217,175 @@
, {"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": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"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": "9", "sha256": "0yv290i2jyxdzp96lmv06n52pb09lgpaaqfcrdlg89zj2wqmkhjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aXRsZSBiYXJzIGZvciBub24tR1RLIGFwcHMgd2l0aCBtaW5pbWFsIGludGVyZmVyZW5jZSB3aXRoIHRoZSBkZWZhdWx0IHdvcmtmbG93IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrdGl0bGViYXIiLAogICJuYW1lIjogIkdUSyBUaXRsZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrdGl0bGViYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZlbGl0YXNhbGkvZ3RrdGl0bGViYXIiLAogICJ1dWlkIjogImd0a3RpdGxlYmFyQHZlbGl0YXNhbGkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"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": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}}}
+, {"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": "9", "sha256": "08r7w1mq573hy6vqllydvsrmc91bqmy9ih8li689v225drd95wk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"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": "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": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
+, {"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": "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"}}}
+, {"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=="}}}
+, {"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": "10", "sha256": "08sjlxfw19905lbxc8jkb3z8m5kqq7gfxcd57w64wb5xhpwrf379", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWtpaXJ1aS9oaWRlLXVuaXZlcnNhbC1hY2Nlc3MiLAogICJ1dWlkIjogImhpZGUtdW5pdmVyc2FsLWFjY2Vzc0Bha2lpcnVpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "08sjlxfw19905lbxc8jkb3z8m5kqq7gfxcd57w64wb5xhpwrf379", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWtpaXJ1aS9oaWRlLXVuaXZlcnNhbC1hY2Nlc3MiLAogICJ1dWlkIjogImhpZGUtdW5pdmVyc2FsLWFjY2Vzc0Bha2lpcnVpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"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 !!!! 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": "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": "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": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"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": "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": "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=="}}}
-, {"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"}}}
+, {"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": "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": "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": "12", "sha256": "1sjld6h3glhhhfdcv4r5v17xc7jbvqc099m5a851vdw2587gnwkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcblxuYWRkIGNvaW5zIGJ5IEJpbmFuY2Ugc3ltYm9scywgZm9yIGV4YW1wbGU6IFwiQlRDVVNEVFwiXG5jb21wbGV0ZSBsaXN0IG9uIGJpbmFuY2U6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWwiLAogICJuYW1lIjogIkNyeXB0byBQcmljZSBUcmFja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNyeXB0by10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiAxMgp9"}}}
-, {"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": "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": "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": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
-, {"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": "58", "sha256": "1zzhf4awjqxr8pjkaw3bc968zf58k90isjar4rl69i9injbgcx11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3IgaW5zdGFudCBhY3Rpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb24sIGVzcGVjaWFsbHkgb3B0aW1pemVkIGZvciBEaWN0aW9uYXJ5IGxvb2t1cFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1OAp9"}}}
+, {"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": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"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.\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="}}}
+, {"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": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"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\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"}}}
-, {"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="}}}
-, {"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=="}}}
-, {"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"}}}
+, {"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": "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=="}}}
+, {"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"}, "40": {"version": "7", "sha256": "1rl6yl2yrq36n3rv2aiwy1pfxyllni66aydfy1xn6fq83bxp1w3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"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": "12", "sha256": "11bq9ak6qyfaf610qi5fdniwcxryjds4m6r09pgkhydaam9am2lh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"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"}}}
-, {"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="}}}
-, {"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"}}}
+, {"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": "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=="}}}
+, {"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": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
+, {"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": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
+, {"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. 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"}}}
-, {"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="}}}
+, {"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, 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": "16", "sha256": "01z0ddq6f1ab6wzw25x6i3150gdfgiqc47srj1kdk8gapi3kzb2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "01z0ddq6f1ab6wzw25x6i3150gdfgiqc47srj1kdk8gapi3kzb2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
-, {"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="}}}
+, {"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": "21", "sha256": "09a1sa7fvq74zcpndrspcaxbn65lzpbm8z0gl9qvzix2xkhcgn6y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"version": "21", "sha256": "09a1sa7fvq74zcpndrspcaxbn65lzpbm8z0gl9qvzix2xkhcgn6y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
+, {"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": "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": "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="}}}
+, {"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": "8", "sha256": "0sjiiyr56b4vj75kn4mi8zj3vx0i1gsxk50n9h0bbxxmhjagz6cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3JlbW92ZS1hcHAtbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlJlbW92ZUFwcE1lbnVARHJhZ29uOG95LmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0sjiiyr56b4vj75kn4mi8zj3vx0i1gsxk50n9h0bbxxmhjagz6cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3JlbW92ZS1hcHAtbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlJlbW92ZUFwcE1lbnVARHJhZ29uOG95LmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"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"}}}
@@ -393,102 +396,102 @@
, {"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:", "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=="}}}
+, {"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": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"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": "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="}}}
+, {"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": "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": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}}}
+, {"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": "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 apply factor, if you prefer a different color scheme\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 English, Spanish and Romanian.\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;'\n", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "6", "sha256": "1xv3c9mwxv8p83l0shnddab7mwxddjx1y0a2fb4klq1vrymamk1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBhcHBseSBmYWN0b3IsIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIEVuZ2xpc2gsIFNwYW5pc2ggYW5kIFJvbWFuaWFuLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lvbnV0Ym9ydGlzL2dub21lLWJlZHRpbWUtbW9kZSIsCiAgInV1aWQiOiAiZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "1xv3c9mwxv8p83l0shnddab7mwxddjx1y0a2fb4klq1vrymamk1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBhcHBseSBmYWN0b3IsIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIEVuZ2xpc2gsIFNwYW5pc2ggYW5kIFJvbWFuaWFuLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lvbnV0Ym9ydGlzL2dub21lLWJlZHRpbWUtbW9kZSIsCiAgInV1aWQiOiAiZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"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": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"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": "11", "sha256": "1896jds78iwja8h8jlgjz3jzxqv94ippyqyxmd7mymc63z23qyil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "1896jds78iwja8h8jlgjz3jzxqv94ippyqyxmd7mymc63z23qyil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"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": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"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": "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="}}}
+, {"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=="}}}
+, {"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": "7", "sha256": "1jlr37qcj1gqnaivjrc5qq7hr62r7nfj6v8rh3mj6946a70sy6gw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNoYW5nZV9kZXNrdG9wX2JhY2tncm91bmRfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1jlr37qcj1gqnaivjrc5qq7hr62r7nfj6v8rh3mj6946a70sy6gw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNoYW5nZV9kZXNrdG9wX2JhY2tncm91bmRfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"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": "8", "sha256": "0af7fwsfp6pvhx5ipzzjmwwdjb77sgysyhmy5im8492a31p43f2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sc25vdy90cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkQGxzbm93LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"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": "10", "sha256": "0syw56wbchxpkrkc7jkwd4sq5dw7j88ai6sy2q0hvgj87fyx6wm7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"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": "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"}}}
+, {"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": "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"}}}
+, {"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": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"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 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"}}}
+, {"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 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"}}}
+, {"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": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"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": "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": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"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": "6", "sha256": "1gpv6d4jxsx842wjlj7g9fz870jl9fcwp0fhxbrsgp8jhk6jnpcq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"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": "8", "sha256": "1ybbjm4m6zix1f762jnhaa4jl15qrlc83m9fcmmsvi9rlqnxnlha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuWW91IGNhbiBmaW5kIG1vcmUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9ibG9iL21haW4vUkVBRE1FLm1kIGFuZCByZXBvcnQgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlL2lzc3VlcyAuIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZSIsCiAgInV1aWQiOiAiaG90ZWRnZUBqb25hdGhhbi5qZG9kYS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"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": "3", "sha256": "1i6dd0qrp3127zpg25732zfzg2g4hjnl4n9n51pq95wyhrlp8zz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS93aXJlbGVzcy1oaWQiLAogICJ1dWlkIjogIndpcmVsZXNzLWhpZEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1i6dd0qrp3127zpg25732zfzg2g4hjnl4n9n51pq95wyhrlp8zz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS93aXJlbGVzcy1oaWQiLAogICJ1dWlkIjogIndpcmVsZXNzLWhpZEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"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 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 & 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)\n", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "16", "sha256": "1x9qcdaa9gc2ydzm5mv6fbis1gqchs3mhlgr24m4sx656qgc88vc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIE1heGltaXplL3VubWF4aW1pemUvaGFsZi10aWxpbmcgdXNpbmcgMy1maW5nZXIgdmVydGljYWwgJiBob3Jpem9udGFsIGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
+, {"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": "6", "sha256": "0505zv1sbdd00pk1nfsjwqycq4mzih19r128aqpm35q4wj6frpn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIG9yIHdvcmtzcGFjZXMgYnkgc2Nyb2xsaW5nIEdub21lIFNoZWxsIHRvcGJhciB3aXRoIG1vdXNlIChib3RoIGluIG92ZXJ2aWV3IGFuZCB3b3Jrc3BhY2UgbW9kZXMpLiIsCiAgImdldHRleHQtZG9tYWluIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgIm5hbWUiOiAiU2Nyb2xsIFBhbmVsIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICI0LjEuNCtnaXQtMzdmMGM3YyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJpby5naXRodWIubXJlZGl0b3IuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5zY3JvbGwtcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21yRURpdG9yL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JvbGwtcGFuZWwiLAogICJ1dWlkIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"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": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"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.", "link": "https://extensions.gnome.org/extension/4290/disable-workspace-switch-animation-for-gnome-40/", "shell_version_map": {"40": {"version": "3", "sha256": "13jbmsq3h5d5isp57pyrkds4dr6isvnsglg0ivhkjblnx0cqyk94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYWxhbnRvbnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWluc3RhbnQtd29ya3NwYWNlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpbnN0YW50d29ya3NwYWNlc3dpdGNoZXJAYW1hbGFudG9ueS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"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="}}}
@@ -496,12 +499,12 @@
, {"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": "8", "sha256": "1znmrvrvbxd5xyiyrm43rrb3lxmjv1xnwi17m7a4ly36mjww9llv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLiIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25vcm9hZHNsZWZ0MDAwL2dub21lLW5ldHdvcmstc3RhdHMiLAogICJ1dWlkIjogIm5ldHdvcmstc3RhdHNAZ25vbWUubm9yb2Fkc2xlZnQueHl6IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"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": "3", "sha256": "0p2v36bliaa6i85b4r0g38ih9fidn95dwmyhc3dygvynjzvvv56b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2tpcmJ5a2V2aW5zb24vZm9yY2Utc2hvdy1vc2siLAogICJ1dWlkIjogImZvcmNlLXNob3ctb3NrQGJydWgubHRkIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"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": "3", "sha256": "0hd0rqkrly27c2bqg7403ng192blrcidb2hrykx4i170i2x604fv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FubmV4aGFjay9jb25zZXJ2YXRpb24tbW9kZS1sZW5vdm8iLAogICJ1dWlkIjogImlkZWFwYWQtbW9kZUBhbm5leGhhY2suaW5jZXB0aXZlLnJ1IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"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": "2", "sha256": "16kh8zp97905r3w0jx57r27x6lhkmrxavkj57nvp1zvhyhdc8mh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWxsb3dsb2NrZWRyZW1vdGVkZXNrdG9wQGthbWVucy51cyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "16kh8zp97905r3w0jx57r27x6lhkmrxavkj57nvp1zvhyhdc8mh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWxsb3dsb2NrZWRyZW1vdGVkZXNrdG9wQGthbWVucy51cyIsCiAgInZlcnNpb24iOiAyCn0="}}}
@@ -509,15 +512,15 @@
, {"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": "18", "sha256": "009dk4v4qdls17fycgbjl7k72z1myymzl862m379gkwipyd9q00b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "009dk4v4qdls17fycgbjl7k72z1myymzl862m379gkwipyd9q00b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbiBzYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"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"}}}
@@ -525,43 +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": "8", "sha256": "04adx4043d3ni510h44pi3gr0k15a4n0zwr4k5fxisr4yjl1510w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "9", "sha256": "16yribhgvw25phq9n3m5vh717kkbkyjsnzxrmsawxmyh7zi9y9lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogOQp9"}}}
-, {"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 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="}}}
+, {"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": "7", "sha256": "06x44rg72n5nzn1b28hzq5pzp5ci8cr2dd1yfmlz4fvxlhm4zn64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJnbm9tZS1jbGlwYm9hcmRAYjAwZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"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": "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\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"}}}
+, {"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": "18", "sha256": "1j1d3pmmpn1gk4l8wk9384nz1azd9gdcrpks23k4v7icbbaq9v6a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1tYXJhbmFuL2ZvcmdlIiwKICAidXVpZCI6ICJmb3JnZUBqbW1hcmFuYW4uY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "19", "sha256": "1fphxpxpxxfcv4225h47a50dbxkrqf4y45q49a4rvn9gdrmlh79z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
+, {"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="}}}
-, {"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"}}}
-, {"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="}}}
-, {"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"}}}
-, {"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"}}}
+, {"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=="}}}
+, {"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": "2", "sha256": "1wbxmwpmzlksrf04ccsn3qqwprxl9sa0d4vc4jwidnn9vq7gkack", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZzaW1rdXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgInV1aWQiOiAiZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51QHZzaW1rdXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"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": {"40": {"version": "3", "sha256": "0dvj64dap77n973ksshfmdfw7rmijhwdwp0g2rga4f6did3xaqq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbHVuZGFsL3RhY3RpbGUiLAogICJ1dWlkIjogInRhY3RpbGVAbHVuZGFsLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
index d57ccdcff83..8332d0afa4a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/system-monitor/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/system-monitor/default.nix
index 439f02622a6..d770acfec16 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/system-monitor/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/update-extensions.py b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/update-extensions.py
index f109e315c94..0582d3ca942 100755
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/extensions/update-extensions.py
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/aisleriot/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/aisleriot/default.nix
index 18bfea263f9..991bbb786b1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/gnome-chess/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/gnome-chess/default.nix
index a2dbd9257a2..e47e77d9c0a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/gnome-chess/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/gnome-chess/default.nix
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "gnome-chess";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-chess/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "8MKVFSLw5YX6aDdipBk9q2ujLtjOiSB/gIJ7VgRVaO8=";
+ sha256 = "62GYhlljlrQDOj8oo8LjAEtU6+Gzi0DWQiwXufLMF9A=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/tali/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/tali/default.nix
index a818d8c115c..a940a6f2cd6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/tali/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/games/tali/default.nix
@@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "tali";
- version = "40.3";
+ version = "40.4";
src = fetchurl {
url = "mirror://gnome/sources/tali/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "neLxCreZjHprLKYvs3nBgby8HtYqp6gkG8VVHVF4/iE=";
+ sha256 = "AsrMdvTuQjD2eqAK2hlOnFSPidJ6DnLyANi9U67nGhc=";
};
nativeBuildInputs = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-applets/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-applets/default.nix
index f581017dd56..2cdafcc23b3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-applets/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-autoar/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
index e8bfaffb45e..526e6776f7f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
@@ -1,7 +1,6 @@
{ stdenv
, lib
, fetchurl
-, fetchpatch
, meson
, ninja
, pkg-config
@@ -15,28 +14,15 @@
stdenv.mkDerivation rec {
pname = "gnome-autoar";
- version = "0.4.0";
+ version = "0.4.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "6oxtUkurxxKsWeHQ46yL8BN0gtrfM8lP6RE3lKG8RHQ=";
+ sha256 = "ZGvVDrrZLZHBvokJehU2QVYVdELKwUcd7X7LJ9mpFQ4=";
};
- patches = [
- # Make compatible with older Meson.
- # https://gitlab.gnome.org/GNOME/gnome-autoar/-/merge_requests/26
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/gnome-autoar/-/commit/2d90da6174c03aad546802234a3d77fa0b714e6b.patch";
- sha256 = "CysDpBJmVPm4gOSV2h041MY2yApfAy8+4QC7Jlka1xE=";
- })
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/gnome-autoar/-/commit/ac21bd0c50584a1905a0da65d4bf9a6926ecd483.patch";
- sha256 = "aTu6eKFSKjljk0TYkhFjPcD8eJCIk8TR0YhZYO9JE1k=";
- })
- ];
-
nativeBuildInputs = [
gobject-introspection
meson
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-panel/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-panel/default.nix
index 2e33be766b8..aa472230e9c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gnome-panel/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gpaste/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gpaste/default.nix
index 12abe49b918..98670c99311 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gpaste/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/gpaste/default.nix
@@ -17,14 +17,14 @@
}:
stdenv.mkDerivation rec {
- version = "3.42.0";
+ version = "3.42.1";
pname = "gpaste";
src = fetchFromGitHub {
owner = "Keruspe";
repo = "GPaste";
rev = "v${version}";
- sha256 = "sha256-YsAA487Q2BwDh4V2TPN/YwAFCw+F11OKMjatcNR98/c=";
+ sha256 = "sha256-yoJ/k9cXXF5ELKF0JXGtxsUjfQ/S1sccLRQOQG7YMXo=";
};
patches = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
index dd65f858b6d..46de584d5b1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/metacity/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/metacity/default.nix
index 702b7ffb38b..8dcef792265 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/metacity/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/nautilus-python/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/nautilus-python/default.nix
index 40c1d4c767a..ed1fd365ebc 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/nautilus-python/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
new file mode 100644
index 00000000000..ba82937d6c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lumina/lumina/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lumina/lumina/default.nix
index d31f16e235a..b56e9c4bc2f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lumina/lumina/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libfm-qt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libfm-qt/default.nix
index c28d069d5f1..fd7c7758f2b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/liblxqt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/liblxqt/default.nix
index b7aa5d95eaf..8e17437b472 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libqtxdg/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libqtxdg/default.nix
index 7abaed7c09a..b6294e20dce 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libqtxdg/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libsysstat/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libsysstat/default.nix
index 8da7675d485..bd5b6679259 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/libsysstat/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lximage-qt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lximage-qt/default.nix
index 10e40f4ed9d..510339b46f5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-about/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-about/default.nix
index 08e21736125..abab373430b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-admin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-admin/default.nix
index a3fd034e336..120014b25f6 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-admin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 348ee3423de..a6560198f6b 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index fb2ed9e37d7..15bc1941af3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-config/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-config/default.nix
index 745c4e71b5e..d46e8e05e09 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-config/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-config/default.nix
@@ -19,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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
index 6dab1cbf736..13983bb0881 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
index 093706fd6ee..baa9784e4ef 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
index a6fbfc2f562..7f5f1e74f35 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-panel/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-panel/default.nix
index 34578e6bc5f..b9b9936893f 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index 0a84799d372..51e46b00ce8 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
index 3713bcf0bb5..90f03f6b3a1 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
index 3095b239926..05119e9da40 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-runner/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 32d9194be67..b1d8ad35272 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-session/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-session/default.nix
index b62ca157eeb..cbda2a7185a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-session/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-sudo/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-sudo/default.nix
index 4daf40197e8..bef00af4feb 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-sudo/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-themes/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-themes/default.nix
index 985e84d03c2..7f7278528c4 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/lxqt-themes/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index 662930e4e37..314a7554319 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index ba913cd147f..9f06d9f76d3 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qps/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qps/default.nix
index 0a4918190b0..f8f13403775 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qps/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qterminal/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qterminal/default.nix
index d383703199a..e93e404762a 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qtermwidget/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qtermwidget/default.nix
index 94a9c651cc8..20602573d28 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/screengrab/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/screengrab/default.nix
index 0ed305403b1..2e1c568a489 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-panel/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-panel/default.nix
index 8da5f893923..7c1be60b20d 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-panel/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-themes/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-themes/default.nix
index 21c7b23537e..27450197623 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-themes/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 ];
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-tweak/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-tweak/default.nix
index 5aebd6aef43..e379f5369f5 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/mate/mate-tweak/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/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 = [
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/default.nix b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 86580bd4c30..a7e5af3370c 100644
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, nix-update-script
, appstream
, appstream-glib
@@ -30,24 +31,15 @@
stdenv.mkDerivation rec {
pname = "appcenter";
- version = "3.8.0";
+ version = "3.8.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "07lkdpnjj9pxbq8h794qjiidvnysvzx0132w98r1wg9k7ca170bj";
+ 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
- # The homepage banner does not show up on first run,
- # has issues with app icon and mouse scrolling.
- ./drop-homepage-banner.patch
- ];
-
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
@@ -100,5 +92,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.appcenter";
};
}
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
deleted file mode 100644
index 3e7aa3efc12..00000000000
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
+++ /dev/null
@@ -1,234 +0,0 @@
-From b1e09653d755ca6ffd03a1e3e67750e6bcc2bc6f Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Wed, 22 Sep 2021 11:54:48 +0800
-Subject: [PATCH 2/2] Drop homepage banner
-
----
- src/Views/Homepage.vala | 181 +---------------------------------------
- 1 file changed, 1 insertion(+), 180 deletions(-)
-
-diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
-index 576fc02c..80a1d221 100644
---- a/src/Views/Homepage.vala
-+++ b/src/Views/Homepage.vala
-@@ -31,67 +31,12 @@ public class AppCenter.Homepage : AbstractView {
- public bool viewing_package { get; private set; default = false; }
-
- public AppStream.Category currently_viewed_category;
-- private Hdy.Carousel banner_carousel;
-- private Gtk.Revealer banner_revealer;
-- private Gtk.FlowBox recently_updated_carousel;
-- private Gtk.Revealer recently_updated_revealer;
--
-- private uint banner_timeout_id;
-
- construct {
-- banner_carousel = new Hdy.Carousel () {
-- allow_long_swipes = true
-- };
--
-- var banner_event_box = new Gtk.EventBox ();
-- banner_event_box.events |= Gdk.EventMask.ENTER_NOTIFY_MASK;
-- banner_event_box.events |= Gdk.EventMask.LEAVE_NOTIFY_MASK;
-- banner_event_box.add (banner_carousel);
--
-- var banner_dots = new Hdy.CarouselIndicatorDots () {
-- carousel = banner_carousel
-- };
--
-- var banner_grid = new Gtk.Grid () {
-- orientation = Gtk.Orientation.VERTICAL
-- };
-- banner_grid.add (banner_event_box);
-- banner_grid.add (banner_dots);
--
-- banner_revealer = new Gtk.Revealer ();
-- banner_revealer.add (banner_grid);
--
-- var recently_updated_label = new Granite.HeaderLabel (_("Recently Updated")) {
-- margin_start = 12
-- };
--
-- recently_updated_carousel = new Gtk.FlowBox () {
-- activate_on_single_click = true,
-- column_spacing = 12,
-- row_spacing = 12,
-- homogeneous = true,
-- max_children_per_line = 5,
-- min_children_per_line = 3
-- };
--
-- var recently_updated_grid = new Gtk.Grid () {
-- margin_end = 12,
-- margin_start = 12
-- };
-- recently_updated_grid.attach (recently_updated_label, 0, 0);
-- recently_updated_grid.attach (recently_updated_carousel, 0, 1);
--
-- recently_updated_revealer = new Gtk.Revealer ();
-- recently_updated_revealer.add (recently_updated_grid );
--
-- var categories_label = new Granite.HeaderLabel (_("Categories")) {
-- margin_start = 24,
-- margin_top = 24
-- };
--
- category_flow = new Widgets.CategoryFlowBox () {
- margin_start = 12,
- margin_end =12,
-+ margin_top = 12,
- valign = Gtk.Align.START
- };
-
-@@ -99,9 +44,6 @@ public class AppCenter.Homepage : AbstractView {
- column_spacing = 24,
- orientation = Gtk.Orientation.VERTICAL
- };
-- grid.add (banner_revealer);
-- grid.add (recently_updated_revealer);
-- grid.add (categories_label);
- grid.add (category_flow);
-
- scrolled_window = new Gtk.ScrolledWindow (null, null) {
-@@ -111,19 +53,6 @@ public class AppCenter.Homepage : AbstractView {
-
- add (scrolled_window);
-
-- var local_package = App.local_package;
-- if (local_package != null) {
-- var banner = new Widgets.Banner (local_package);
--
-- banner_carousel.prepend (banner);
--
-- banner.clicked.connect (() => {
-- show_package (local_package);
-- });
-- }
--
-- load_banners_and_carousels.begin ();
--
- category_flow.child_activated.connect ((child) => {
- var item = child as Widgets.CategoryItem;
- if (item != null) {
-@@ -159,94 +88,8 @@ public class AppCenter.Homepage : AbstractView {
- }
- }
- }
--
-- return GLib.Source.REMOVE;
- });
- });
--
-- banner_event_box.enter_notify_event.connect (() => {
-- banner_timeout_stop ();
-- });
--
-- banner_event_box.leave_notify_event.connect (() => {
-- banner_timeout_start ();
-- });
--
-- recently_updated_carousel.child_activated.connect ((child) => {
-- var package_row_grid = (AppCenter.Widgets.ListPackageRowGrid) child.get_child ();
--
-- show_package (package_row_grid.package);
-- });
-- }
--
-- private async void load_banners_and_carousels () {
-- unowned var fp_client = AppCenterCore.FlatpakBackend.get_default ();
-- var packages_by_release_date = fp_client.get_featured_packages_by_release_date ();
-- var packages_in_banner = new Gee.LinkedList ();
--
-- int package_count = 0;
-- foreach (var package in packages_by_release_date) {
-- if (package_count >= MAX_PACKAGES_IN_BANNER) {
-- break;
-- }
--
-- var installed = false;
-- foreach (var origin_package in package.origin_packages) {
-- try {
-- if (yield origin_package.backend.is_package_installed (origin_package)) {
-- installed = true;
-- break;
-- }
-- } catch (Error e) {
-- continue;
-- }
-- }
--
-- if (!installed) {
-- packages_in_banner.add (package);
-- package_count++;
-- }
-- }
--
-- foreach (var package in packages_in_banner) {
-- var banner = new Widgets.Banner (package);
-- banner.clicked.connect (() => {
-- show_package (package);
-- });
--
-- banner_carousel.add (banner);
-- }
--
-- banner_carousel.show_all ();
-- banner_revealer.reveal_child = true;
-- banner_timeout_start ();
--
-- foreach (var package in packages_by_release_date) {
-- if (recently_updated_carousel.get_children ().length () >= MAX_PACKAGES_IN_CAROUSEL) {
-- break;
-- }
--
-- var installed = false;
-- foreach (var origin_package in package.origin_packages) {
-- try {
-- if (yield origin_package.backend.is_package_installed (origin_package)) {
-- installed = true;
-- break;
-- }
-- } catch (Error e) {
-- continue;
-- }
-- }
--
-- if (!installed && !(package in packages_in_banner) && !package.is_explicit) {
-- var package_row = new AppCenter.Widgets.ListPackageRowGrid (package);
-- recently_updated_carousel.add (package_row);
-- }
-- }
-- recently_updated_carousel.show_all ();
-- recently_updated_revealer.reveal_child = recently_updated_carousel.get_children ().length () > 0;
--
-- page_loaded ();
- }
-
- public override void show_package (
-@@ -307,26 +150,4 @@ public class AppCenter.Homepage : AbstractView {
- var apps = client.get_applications_for_category (category);
- app_list_view.add_packages (apps);
- }
--
-- private void banner_timeout_start () {
-- banner_timeout_id = Timeout.add (MILLISECONDS_BETWEEN_BANNER_ITEMS, () => {
-- var new_index = (uint) banner_carousel.position + 1;
-- var max_index = banner_carousel.n_pages - 1; // 0-based index
--
-- if (banner_carousel.position >= max_index) {
-- new_index = 0;
-- }
--
-- banner_carousel.switch_child (new_index, Granite.TRANSITION_DURATION_OPEN);
--
-- return Source.CONTINUE;
-- });
-- }
--
-- private void banner_timeout_stop () {
-- if (banner_timeout_id != 0) {
-- Source.remove (banner_timeout_id);
-- banner_timeout_id = 0;
-- }
-- }
- }
diff --git a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch b/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
deleted file mode 100644
index aa8cde89616..00000000000
--- a/infra/libkookie/nixpkgs/unstable/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From 5d3f20b49a89b55e39339a0f90ae7f846356b0e1 Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Wed, 22 Sep 2021 11:54:24 +0800
-Subject: [PATCH 1/2] Drop PackageKitBackend and UbuntuDriversBackend
-
----
- src/Application.vala | 14 ---------
- src/Core/BackendAggregator.vala | 2 --
- src/Core/UpdateManager.vala | 56 ---------------------------------
- src/MainWindow.vala | 17 ----------
- 4 files changed, 89 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 (
-- "