diff --git a/third_party/nixpkgs/.github/CODEOWNERS b/third_party/nixpkgs/.github/CODEOWNERS
index 7dc14a61cb..719f61203d 100644
--- a/third_party/nixpkgs/.github/CODEOWNERS
+++ b/third_party/nixpkgs/.github/CODEOWNERS
@@ -6,6 +6,13 @@
#
# For documentation on this file, see https://help.github.com/articles/about-codeowners/
# Mentioned users will get code review requests.
+#
+# IMPORTANT NOTE: in order to actually get pinged, commit access is required.
+# This also holds true for GitHub teams. Since almost none of our teams have write
+# permissions, you need to list all members of the team with commit access individually.
+# We still add the team to the list next to its members, this helps keeping things
+# in sync. (Put non team members before the team to distinguish them.)
+# See https://github.com/NixOS/nixpkgs/issues/124085 for more details
# This file
/.github/CODEOWNERS @edolstra
@@ -210,11 +217,11 @@
/pkgs/top-level/php-packages.nix @jtojnar @NixOS/php @aanderse @etu @globin @ma27 @talyz
# Podman, CRI-O modules and related
-/nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq
-/nixos/modules/virtualisation/cri-o.nix @NixOS/podman @zowoq
-/nixos/modules/virtualisation/podman.nix @NixOS/podman @zowoq
-/nixos/tests/cri-o.nix @NixOS/podman @zowoq
-/nixos/tests/podman.nix @NixOS/podman @zowoq
+/nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq @adisbladis
+/nixos/modules/virtualisation/cri-o.nix @NixOS/podman @zowoq @adisbladis
+/nixos/modules/virtualisation/podman.nix @NixOS/podman @zowoq @adisbladis
+/nixos/tests/cri-o.nix @NixOS/podman @zowoq @adisbladis
+/nixos/tests/podman.nix @NixOS/podman @zowoq @adisbladis
# Docker tools
/pkgs/build-support/docker @roberth @utdemir
@@ -230,6 +237,10 @@
/pkgs/development/go-modules @kalbasit @Mic92 @zowoq
/pkgs/development/go-packages @kalbasit @Mic92 @zowoq
+# GNOME
+/pkgs/desktops/gnome @NixOS/GNOME @jtojnar @hedning
+/pkgs/desktops/gnome/extensions @piegamesde @NixOS/GNOME @jtojnar @hedning
+
# Cinnamon
/pkgs/desktops/cinnamon @mkg20001
diff --git a/third_party/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md b/third_party/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
index bfc07096aa..268b1594de 100644
--- a/third_party/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
+++ b/third_party/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
@@ -20,12 +20,17 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
- [ ] aarch64-linux
- [ ] 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 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/`)
-- [21.11 Release Notes (or backporting 21.05 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2111-release-notes)
+- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
+- [ ] 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 rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
+- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
+- [22.05 Release Notes (or backporting 21.11 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2205-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
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module
+ - [ ] (Release notes changes) Ran `nixos/doc/manual/md-to-db.sh` to update generated release notes
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
diff --git a/third_party/nixpkgs/.github/labeler.yml b/third_party/nixpkgs/.github/labeler.yml
index 780843a2a5..e23cd9598f 100644
--- a/third_party/nixpkgs/.github/labeler.yml
+++ b/third_party/nixpkgs/.github/labeler.yml
@@ -143,6 +143,8 @@
- doc/languages-frameworks/vim.section.md
- pkgs/applications/editors/vim/**/*
- pkgs/misc/vim-plugins/**/*
+ - nixos/modules/programs/neovim.nix
+ - pkgs/applications/editors/neovim/**/*
"6.topic: xfce":
- nixos/doc/manual/configuration/xfce.xml
diff --git a/third_party/nixpkgs/.github/workflows/basic-eval.yml b/third_party/nixpkgs/.github/workflows/basic-eval.yml
index b7bbbd40b4..67634af51f 100644
--- a/third_party/nixpkgs/.github/workflows/basic-eval.yml
+++ b/third_party/nixpkgs/.github/workflows/basic-eval.yml
@@ -15,6 +15,6 @@ jobs:
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
steps:
- uses: actions/checkout@v2
- - uses: cachix/install-nix-action@v14
+ - uses: cachix/install-nix-action@v16
# explicit list of supportedSystems is needed until aarch64-darwin becomes part of the trunk jobset
- run: nix-build pkgs/top-level/release.nix -A tarball.nixpkgs-basic-release-checks --arg supportedSystems '[ "aarch64-darwin" "aarch64-linux" "x86_64-linux" "x86_64-darwin" ]'
diff --git a/third_party/nixpkgs/.github/workflows/editorconfig.yml b/third_party/nixpkgs/.github/workflows/editorconfig.yml
index 1934a24c65..445f0fcbaf 100644
--- a/third_party/nixpkgs/.github/workflows/editorconfig.yml
+++ b/third_party/nixpkgs/.github/workflows/editorconfig.yml
@@ -11,36 +11,32 @@ on:
jobs:
tests:
runs-on: ubuntu-latest
- if: github.repository_owner == 'NixOS'
+ if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip editorconfig]')"
steps:
- name: Get list of changed files from PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- echo 'PR_DIFF<> $GITHUB_ENV
gh api \
repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
| jq '.[] | select(.status != "removed") | .filename' \
- >> $GITHUB_ENV
- echo 'EOF' >> $GITHUB_ENV
+ > "$HOME/changed_files"
+ - name: print list of changed files
+ run: |
+ cat "$HOME/changed_files"
- uses: actions/checkout@v2
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- if: env.PR_DIFF
- - uses: cachix/install-nix-action@v14
- if: env.PR_DIFF
+ - uses: cachix/install-nix-action@v16
with:
# nixpkgs commit is pinned so that it doesn't break
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/f93ecc4f6bc60414d8b73dbdf615ceb6a2c604df.tar.gz
- name: install editorconfig-checker
run: nix-env -iA editorconfig-checker -f ''
- if: env.PR_DIFF
- name: Checking EditorConfig
- if: env.PR_DIFF
run: |
- echo "$PR_DIFF" | xargs editorconfig-checker -disable-indent-size
+ cat "$HOME/changed_files" | xargs -r editorconfig-checker -disable-indent-size
- if: ${{ failure() }}
run: |
echo "::error :: Hey! It looks like your changes don't follow our editorconfig settings. Read https://editorconfig.org/#download to configure your editor so you never see this error again."
-
diff --git a/third_party/nixpkgs/.github/workflows/manual-nixos.yml b/third_party/nixpkgs/.github/workflows/manual-nixos.yml
index 01bbe1b12b..b9181c5f3b 100644
--- a/third_party/nixpkgs/.github/workflows/manual-nixos.yml
+++ b/third_party/nixpkgs/.github/workflows/manual-nixos.yml
@@ -18,7 +18,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- - uses: cachix/install-nix-action@v14
+ - uses: cachix/install-nix-action@v16
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
diff --git a/third_party/nixpkgs/.github/workflows/manual-nixpkgs.yml b/third_party/nixpkgs/.github/workflows/manual-nixpkgs.yml
index d0c3f59591..3bdbd7f78f 100644
--- a/third_party/nixpkgs/.github/workflows/manual-nixpkgs.yml
+++ b/third_party/nixpkgs/.github/workflows/manual-nixpkgs.yml
@@ -18,7 +18,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- - uses: cachix/install-nix-action@v14
+ - uses: cachix/install-nix-action@v16
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
diff --git a/third_party/nixpkgs/.github/workflows/nixos-manual.yml b/third_party/nixpkgs/.github/workflows/nixos-manual.yml
index 70f61a1a3a..e1c5b4dc93 100644
--- a/third_party/nixpkgs/.github/workflows/nixos-manual.yml
+++ b/third_party/nixpkgs/.github/workflows/nixos-manual.yml
@@ -19,7 +19,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- - uses: cachix/install-nix-action@v14
+ - uses: cachix/install-nix-action@v16
- name: Check DocBook files generated from Markdown are consistent
run: |
nixos/doc/manual/md-to-db.sh
diff --git a/third_party/nixpkgs/.github/workflows/periodic-merge-24h.yml b/third_party/nixpkgs/.github/workflows/periodic-merge-24h.yml
index 9032b3d7d9..b8535fdf95 100644
--- a/third_party/nixpkgs/.github/workflows/periodic-merge-24h.yml
+++ b/third_party/nixpkgs/.github/workflows/periodic-merge-24h.yml
@@ -32,6 +32,10 @@ jobs:
into: staging-next-21.05
- from: staging-next-21.05
into: staging-21.05
+ - from: release-21.11
+ into: staging-next-21.11
+ - from: staging-next-21.11
+ into: staging-21.11
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v2
diff --git a/third_party/nixpkgs/.gitignore b/third_party/nixpkgs/.gitignore
index 1a41704c9b..85b94d8825 100644
--- a/third_party/nixpkgs/.gitignore
+++ b/third_party/nixpkgs/.gitignore
@@ -3,8 +3,10 @@
.*.swp
.*.swo
.idea/
+outputs/
result
result-*
+source/
/doc/NEWS.html
/doc/NEWS.txt
/doc/manual.html
@@ -21,3 +23,6 @@ __pycache__
# generated by pkgs/common-updater/update-script.nix
update-git-commits.txt
+
+# JetBrains IDEA module declaration file
+/nixpkgs.iml
diff --git a/third_party/nixpkgs/.version b/third_party/nixpkgs/.version
index 835ab5d189..a01c758c18 100644
--- a/third_party/nixpkgs/.version
+++ b/third_party/nixpkgs/.version
@@ -1 +1 @@
-21.11
\ No newline at end of file
+22.05
diff --git a/third_party/nixpkgs/CONTRIBUTING.md b/third_party/nixpkgs/CONTRIBUTING.md
index 0219aec7f5..e3a18c6e7e 100644
--- a/third_party/nixpkgs/CONTRIBUTING.md
+++ b/third_party/nixpkgs/CONTRIBUTING.md
@@ -53,10 +53,10 @@ For package version upgrades and such a one-line commit message is usually suffi
Follow these steps to backport a change into a release branch in compliance with the [commit policy](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches).
1. Take note of the commits in which the change was introduced into `master` branch.
-2. Check out the target _release branch_, e.g. `release-20.09`. Do not use a _channel branch_ like `nixos-20.09` or `nixpkgs-20.09`.
+2. Check out the target _release branch_, e.g. `release-21.11`. Do not use a _channel branch_ like `nixos-21.11` or `nixpkgs-21.11-darwin`.
3. Create a branch for your change, e.g. `git checkout -b backport`.
4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe ` and add a reason. Otherwise use `git cherry-pick -x `. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
-5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.09`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.09]`.
+5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-21.11`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[21.11]`.
6. When the backport pull request is merged and you have the necessary privileges you can also replace the label `9.needs: port to stable` with `8.has: port to stable` on the original pull request. This way maintainers can keep track of missing backports easier.
## Criteria for Backporting changes
@@ -68,17 +68,17 @@ Anything that does not cause user or downstream dependency regressions can be ba
- Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
- Security critical applications (E.g. `firefox`)
-## Generating 21.11 Release Notes
+## Generating 22.05 Release Notes
-(This section also applies to backporting 21.05 release notes: substitute "rl-2111" for "rl-2105".)
+(This section also applies to backporting 21.11 release notes: substitute "rl-2205" for "rl-2111".)
Documentation in nixpkgs is transitioning to a markdown-centric workflow. Release notes now require a translation step to convert from markdown to a compatible docbook document.
-Steps for updating 21.11 Release notes:
+Steps for updating 22.05 Release notes:
-1. Edit `nixos/doc/manual/release-notes/rl-2111.section.md` with the desired changes
-2. Run `./nixos/doc/manual/md-to-db.sh` to render `nixos/doc/manual/from_md/release-notes/rl-2111.section.xml`
-3. Include changes to `rl-2111.section.md` and `rl-2111.section.xml` in the same commit.
+1. Edit `nixos/doc/manual/release-notes/rl-2205.section.md` with the desired changes
+2. Run `./nixos/doc/manual/md-to-db.sh` to render `nixos/doc/manual/from_md/release-notes/rl-2205.section.xml`
+3. Include changes to `rl-2205.section.md` and `rl-2205.section.xml` in the same commit.
## Reviewing contributions
diff --git a/third_party/nixpkgs/README.md b/third_party/nixpkgs/README.md
index 0b76b4bcdc..e0970f85ff 100644
--- a/third_party/nixpkgs/README.md
+++ b/third_party/nixpkgs/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.
@@ -46,14 +46,14 @@ Nixpkgs and NixOS are built and tested by our continuous integration
system, [Hydra](https://hydra.nixos.org/).
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
-* [Continuous package builds for the NixOS 21.05 release](https://hydra.nixos.org/jobset/nixos/release-21.05)
+* [Continuous package builds for the NixOS 21.11 release](https://hydra.nixos.org/jobset/nixos/release-21.11)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
-* [Tests for the NixOS 21.05 release](https://hydra.nixos.org/job/nixos/release-21.05/tested#tabs-constituents)
+* [Tests for the NixOS 21.11 release](https://hydra.nixos.org/job/nixos/release-21.11/tested#tabs-constituents)
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/third_party/nixpkgs/doc/builders/images/dockertools.section.md b/third_party/nixpkgs/doc/builders/images/dockertools.section.md
index bfe1d17a60..7ff4b2aeb3 100644
--- a/third_party/nixpkgs/doc/builders/images/dockertools.section.md
+++ b/third_party/nixpkgs/doc/builders/images/dockertools.section.md
@@ -151,6 +151,12 @@ Create a Docker image with many of the store paths being on their own layer to i
: Shell commands to run while creating the archive for the final layer in a fakeroot environment. Unlike `extraCommands`, you can run `chown` to change the owners of the files in the archive, changing fakeroot's state instead of the real filesystem. The latter would require privileges that the build user does not have. Static binaries do not interact with the fakeroot environment. By default all files in the archive will be owned by root.
+`enableFakechroot` _optional_
+
+: Whether to run in `fakeRootCommands` in `fakechroot`, making programs behave as though `/` is the root of the image being created, while files in the Nix store are available as usual. This allows scripts that perform installation in `/` to work as expected. Considering that `fakechroot` is implemented via the same mechanism as `fakeroot`, the same caveats apply.
+
+ *Default:* `false`
+
### Behavior of `contents` in the final image {#dockerTools-buildLayeredImage-arg-contents}
Each path directly listed in `contents` will have a symlink in the root of the image.
diff --git a/third_party/nixpkgs/doc/builders/trivial-builders.chapter.md b/third_party/nixpkgs/doc/builders/trivial-builders.chapter.md
index 46620e1b45..c3a3572cd9 100644
--- a/third_party/nixpkgs/doc/builders/trivial-builders.chapter.md
+++ b/third_party/nixpkgs/doc/builders/trivial-builders.chapter.md
@@ -47,6 +47,28 @@ These functions write `text` to the Nix store. This is useful for creating scrip
Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
+## `writeShellApplication` {#trivial-builder-writeShellApplication}
+
+This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck).
+
+For example, look at the following code:
+
+```nix
+writeShellApplication {
+ name = "show-nixos-org";
+
+ runtimeInputs = [ curl w3m ];
+
+ text = ''
+ curl -s 'https://nixos.org' | w3m -dump -T text/html
+ '';
+}
+```
+
+Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH
+was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict
+validation.
+
## `symlinkJoin` {#trivial-builder-symlinkJoin}
This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
diff --git a/third_party/nixpkgs/doc/contributing/coding-conventions.chapter.md b/third_party/nixpkgs/doc/contributing/coding-conventions.chapter.md
index 7a8e7741a3..79d90c23a4 100644
--- a/third_party/nixpkgs/doc/contributing/coding-conventions.chapter.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/doc/functions/library/attrsets.xml b/third_party/nixpkgs/doc/functions/library/attrsets.xml
index 9d36becd49..a30f4edf4c 100644
--- a/third_party/nixpkgs/doc/functions/library/attrsets.xml
+++ b/third_party/nixpkgs/doc/functions/library/attrsets.xml
@@ -166,7 +166,7 @@ lib.attrsets.setAttrByPath [ "a" "b" ] 3
- Like [](#function-library-lib.attrsets.attrByPath) except without a default, and it will throw if the value doesn't exist.
+ Like except without a default, and it will throw if the value doesn't exist.
@@ -1480,7 +1480,7 @@ lib.attrsets.zipAttrsWith
- Merge sets of attributes and combine each attribute value in to a list. Similar to [](#function-library-lib.attrsets.zipAttrsWith) where the merge function returns a list of all values.
+ Merge sets of attributes and combine each attribute value in to a list. Similar to where the merge function returns a list of all values.
diff --git a/third_party/nixpkgs/doc/languages-frameworks/beam.section.md b/third_party/nixpkgs/doc/languages-frameworks/beam.section.md
index fb608932df..9b09d0329c 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/beam.section.md
+++ b/third_party/nixpkgs/doc/languages-frameworks/beam.section.md
@@ -291,10 +291,10 @@ let
# define packages to install
basePackages = [
git
- # replace with beam.packages.erlang.elixir_1_11 if you need
+ # replace with beam.packages.erlang.elixir_1_13 if you need
beam.packages.erlang.elixir
nodejs
- postgresql_13
+ postgresql_14
# only used for frontend dependencies
# you are free to use yarn2nix as well
nodePackages.node2nix
@@ -312,10 +312,11 @@ let
mkdir -p .nix-mix .nix-hex
export MIX_HOME=$PWD/.nix-mix
export HEX_HOME=$PWD/.nix-mix
+ # make hex from Nixpkgs available
+ # `mix local.hex` will install hex into MIX_HOME and should take precedence
+ export MIX_PATH="${beam.packages.erlang.hex}/lib/erlang/lib/hex/ebin"
export PATH=$MIX_HOME/bin:$HEX_HOME/bin:$PATH
- # TODO: not sure how to make hex available without installing it afterwards.
- mix local.hex --if-missing
- export LANG=en_US.UTF-8
+ export LANG=C.UTF-8
# keep your shell history in iex
export ERL_AFLAGS="-kernel shell_history enabled"
diff --git a/third_party/nixpkgs/doc/languages-frameworks/crystal.section.md b/third_party/nixpkgs/doc/languages-frameworks/crystal.section.md
index cbe31f9f0b..cbabba24f0 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/crystal.section.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/doc/languages-frameworks/dhall.section.md b/third_party/nixpkgs/doc/languages-frameworks/dhall.section.md
index d1adcbf736..4b49908b0b 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/dhall.section.md
+++ b/third_party/nixpkgs/doc/languages-frameworks/dhall.section.md
@@ -50,7 +50,7 @@ expression does not protect the Prelude import with a semantic integrity
check, so the first step is to freeze the expression using `dhall freeze`,
like this:
-```bash
+```ShellSession
$ dhall freeze --inplace ./true.dhall
```
@@ -113,7 +113,7 @@ in
… which we can then build using this command:
-```bash
+```ShellSession
$ nix build --file ./example.nix dhallPackages.true
```
@@ -121,7 +121,7 @@ $ nix build --file ./example.nix dhallPackages.true
The above package produces the following directory tree:
-```bash
+```ShellSession
$ tree -a ./result
result
├── .cache
@@ -135,7 +135,7 @@ result
* `source.dhall` contains the result of interpreting our Dhall package:
- ```bash
+ ```ShellSession
$ cat ./result/source.dhall
True
```
@@ -143,7 +143,7 @@ result
* The `.cache` subdirectory contains one binary cache product encoding the
same result as `source.dhall`:
- ```bash
+ ```ShellSession
$ dhall decode < ./result/.cache/dhall/122027abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
True
```
@@ -151,7 +151,7 @@ result
* `binary.dhall` contains a Dhall expression which handles fetching and decoding
the same cache product:
- ```bash
+ ```ShellSession
$ cat ./result/binary.dhall
missing sha256:27abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
$ cp -r ./result/.cache .cache
@@ -168,7 +168,7 @@ to conserve disk space when they are used exclusively as dependencies. For
example, if we build the Prelude package it will only contain the binary
encoding of the expression:
-```bash
+```ShellSession
$ nix build --file ./example.nix dhallPackages.Prelude
$ tree -a result
@@ -199,7 +199,7 @@ Dhall overlay like this:
… and now the Prelude will contain the fully decoded result of interpreting
the Prelude:
-```bash
+```ShellSession
$ nix build --file ./example.nix dhallPackages.Prelude
$ tree -a result
@@ -302,7 +302,7 @@ Additionally, `buildDhallGitHubPackage` accepts the same arguments as
You can use the `dhall-to-nixpkgs` command-line utility to automate
packaging Dhall code. For example:
-```bash
+```ShellSession
$ nix-env --install --attr haskellPackages.dhall-nixpkgs
$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs
@@ -329,12 +329,12 @@ The utility takes care of automatically detecting remote imports and converting
them to package dependencies. You can also use the utility on local
Dhall directories, too:
-```bash
+```ShellSession
$ dhall-to-nixpkgs directory ~/proj/dhall-semver
{ buildDhallDirectoryPackage, Prelude }:
buildDhallDirectoryPackage {
name = "proj";
- src = /Users/gabriel/proj/dhall-semver;
+ src = ~/proj/dhall-semver;
file = "package.dhall";
source = false;
document = false;
@@ -342,6 +342,37 @@ $ dhall-to-nixpkgs directory ~/proj/dhall-semver
}
```
+### Remote imports as fixed-output derivations {#ssec-dhall-remote-imports-as-fod}
+
+`dhall-to-nixpkgs` has the ability to fetch and build remote imports as
+fixed-output derivations by using their Dhall integrity check. This is
+sometimes easier than manually packaging all remote imports.
+
+This can be used like the following:
+
+```ShellSession
+$ dhall-to-nixpkgs directory --fixed-output-derivations ~/proj/dhall-semver
+{ buildDhallDirectoryPackage, buildDhallUrl }:
+ buildDhallDirectoryPackage {
+ name = "proj";
+ src = ~/proj/dhall-semver;
+ file = "package.dhall";
+ source = false;
+ document = false;
+ dependencies = [
+ (buildDhallUrl {
+ url = "https://prelude.dhall-lang.org/v17.0.0/package.dhall";
+ hash = "sha256-ENs8kZwl6QRoM9+Jeo/+JwHcOQ+giT2VjDQwUkvlpD4=";
+ dhallHash = "sha256:10db3c919c25e9046833df897a8ffe2701dc390fa0893d958c3430524be5a43e";
+ })
+ ];
+ }
+```
+
+Here, `dhall-semver`'s `Prelude` dependency is fetched and built with the
+`buildDhallUrl` helper function, instead of being passed in as a function
+argument.
+
## Overriding dependency versions {#ssec-dhall-overriding-dependency-versions}
Suppose that we change our `true.dhall` example expression to depend on an older
@@ -359,7 +390,7 @@ in Prelude.Bool.not False
If we try to rebuild that expression the build will fail:
-```
+```ShellSession
$ nix build --file ./example.nix dhallPackages.true
builder for '/nix/store/0f1hla7ff1wiaqyk1r2ky4wnhnw114fi-true.drv' failed with exit code 1; last 10 log lines:
@@ -385,7 +416,7 @@ importing the URL.
However, we can override the default Prelude version by using `dhall-to-nixpkgs`
to create a Dhall package for our desired Prelude:
-```bash
+```ShellSession
$ dhall-to-nixpkgs github https://github.com/dhall-lang/dhall-lang.git \
--name Prelude \
--directory Prelude \
@@ -396,7 +427,7 @@ $ dhall-to-nixpkgs github https://github.com/dhall-lang/dhall-lang.git \
… and then referencing that package in our Dhall overlay, by either overriding
the Prelude globally for all packages, like this:
-```bash
+```nix
dhallOverrides = self: super: {
true = self.callPackage ./true.nix { };
@@ -407,7 +438,7 @@ the Prelude globally for all packages, like this:
… or selectively overriding the Prelude dependency for just the `true` package,
like this:
-```bash
+```nix
dhallOverrides = self: super: {
true = self.callPackage ./true.nix {
Prelude = self.callPackage ./Prelude.nix { };
diff --git a/third_party/nixpkgs/doc/languages-frameworks/dotnet.section.md b/third_party/nixpkgs/doc/languages-frameworks/dotnet.section.md
index 9bf96f3198..f3d9fb8757 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/dotnet.section.md
+++ b/third_party/nixpkgs/doc/languages-frameworks/dotnet.section.md
@@ -71,15 +71,19 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given
To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
-* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions.
+* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well.
* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. This file should be generated using `nuget-to-nix` tool, which is available in nixpkgs.
* `executables` is used to specify which executables get wrapped to `$out/bin`, relative to `$out/lib/$pname`. If this is unset, all executables generated will get installed. If you do not want to install any, set this to `[]`.
* `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies.
* `buildType` is used to change the type of build. Possible values are `Release`, `Debug`, etc. By default, this is set to `Release`.
* `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used.
-* `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used.
+* `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/third_party/nixpkgs/doc/languages-frameworks/ocaml.section.md b/third_party/nixpkgs/doc/languages-frameworks/ocaml.section.md
index 5ffc23173d..d266a03226 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/ocaml.section.md
+++ b/third_party/nixpkgs/doc/languages-frameworks/ocaml.section.md
@@ -1,5 +1,31 @@
# OCaml {#sec-language-ocaml}
+## User guide {#sec-language-ocaml-user-guide}
+
+OCaml libraries are available in attribute sets of the form `ocaml-ng.ocamlPackages_X_XX` where X is to be replaced with the desired compiler version. For example, ocamlgraph compiled with OCaml 4.12 can be found in `ocaml-ng.ocamlPackages_4_12.ocamlgraph`. The compiler itself is also located in this set, under the name `ocaml`.
+
+If you don't care about the exact compiler version, `ocamlPackages` is a top-level alias pointing to a recent version of OCaml.
+
+OCaml applications are usually available top-level, and not inside `ocamlPackages`. Notable exceptions are build tools that must be built with the same compiler version as the compiler you intend to use like `dune` or `ocaml-lsp`.
+
+To open a shell able to build a typical OCaml project, put the dependencies in `buildInputs` and add `ocamlPackages.ocaml` and `ocamlPackages.findlib` to `nativeBuildInputs` at least.
+For example:
+```nix
+let
+ pkgs = import {};
+ # choose the ocaml version you want to use
+ ocamlPackages = pkgs.ocaml-ng.ocamlPackages_4_12;
+in
+pkgs.mkShell {
+ # build tools
+ nativeBuildInputs = with ocamlPackages; [ ocaml findlib dune_2 ocaml-lsp ];
+ # dependencies
+ buildInputs = with ocamlPackages; [ ocamlgraph ];
+}
+```
+
+## Packaging guide {#sec-language-ocaml-packaging}
+
OCaml libraries should be installed in `$(out)/lib/ocaml/${ocaml.version}/site-lib/`. Such directories are automatically added to the `$OCAMLPATH` environment variable when building another package that depends on them or when opening a `nix-shell`.
Given that most of the OCaml ecosystem is now built with dune, nixpkgs includes a convenience build support function called `buildDunePackage` that will build an OCaml package using dune, OCaml and findlib and any additional dependencies provided as `buildInputs` or `propagatedBuildInputs`.
diff --git a/third_party/nixpkgs/doc/languages-frameworks/python.section.md b/third_party/nixpkgs/doc/languages-frameworks/python.section.md
index cc1a7083dc..5346692188 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/python.section.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/doc/languages-frameworks/rust.section.md b/third_party/nixpkgs/doc/languages-frameworks/rust.section.md
index 26eb9e26bd..7959685af6 100644
--- a/third_party/nixpkgs/doc/languages-frameworks/rust.section.md
+++ b/third_party/nixpkgs/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}
@@ -186,6 +186,33 @@ added. To find the correct hash, you can first use `lib.fakeSha256` or
`lib.fakeHash` as a stub hash. Building the package (and thus the
vendored dependencies) will then inform you of the correct hash.
+### Cargo features {#cargo-features}
+
+You can disable default features using `buildNoDefaultFeatures`, and
+extra features can be added with `buildFeatures`.
+
+If you want to use different features for check phase, you can use
+`checkNoDefaultFeatures` and `checkFeatures`. They are only passed to
+`cargo test` and not `cargo build`. If left unset, they default to
+`buildNoDefaultFeatures` and `buildFeatures`.
+
+For example:
+
+```nix
+rustPlatform.buildRustPackage rec {
+ pname = "myproject";
+ version = "1.0.0";
+
+ buildNoDefaultFeatures = true;
+ buildFeatures = [ "color" "net" ];
+
+ # disable network features in tests
+ checkFeatures = [ "color" ];
+
+ # ...
+}
+```
+
### Cross compilation {#cross-compilation}
By default, Rust packages are compiled for the host platform, just like any
@@ -261,7 +288,7 @@ rustPlatform.buildRustPackage {
Please note that the code will be compiled twice here: once in `release` mode
for the `buildPhase`, and again in `debug` mode for the `checkPhase`.
-Test flags, e.g., `--features xxx/yyy`, can be passed to `cargo test` via the
+Test flags, e.g., `--package foo`, can be passed to `cargo test` via the
`cargoTestFlags` attribute.
Another attribute, called `checkFlags`, is used to pass arguments to the test
@@ -411,7 +438,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
@@ -421,18 +448,20 @@ you of the correct hash.
* `cargoBuildHook`: use Cargo to build a crate. If the crate to be
built is a crate in e.g. a Cargo workspace, the relative path to the
crate to build can be set through the optional `buildAndTestSubdir`
- environment variable. Additional Cargo build flags can be passed
- through `cargoBuildFlags`.
+ environment variable. Features can be specified with
+ `cargoBuildNoDefaultFeatures` and `cargoBuildFeatures`. Additional
+ Cargo build flags can be passed through `cargoBuildFlags`.
* `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
- the tests using `checkFlags` and `checkFlagsArray`. By default,
- tests are run in parallel. This can be disabled by setting
- `dontUseCargoParallelTests`.
+ can be set using `cargoCheckType`. Features can be specified with
+ `cargoCheckNoDefaultFeaatures` and `cargoCheckFeatures`. Additional
+ flags can be passed to the tests using `checkFlags` and
+ `checkFlagsArray`. By default, tests are run in parallel. This can
+ be disabled by setting `dontUseCargoParallelTests`.
* `cargoInstallHook`: install binaries and static/shared libraries
that were built using `cargoBuildHook`.
@@ -447,7 +476,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 +701,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 +758,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 +771,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,11 +900,87 @@ rustc 1.26.0-nightly (188e693b3 2018-03-26)
To see that you are using nightly.
-## Using the Rust nightlies overlay {#using-the-rust-nightlies-overlay}
+## Using community Rust overlays {#using-community-rust-overlays}
-Mozilla provides an overlay for nixpkgs to bring a nightly version of Rust into scope.
-This overlay can _also_ be used to install recent unstable or stable versions
-of Rust, if desired.
+There are two community maintained approaches to Rust toolchain management:
+- [oxalica's Rust overlay](https://github.com/oxalica/rust-overlay)
+- [fenix](https://github.com/nix-community/fenix)
+
+Oxalica's overlay allows you to select a particular Rust version and components.
+See [their documentation](https://github.com/oxalica/rust-overlay#rust-overlay) for more
+detailed usage.
+
+Fenix is an alternative to `rustup` and can also be used as an overlay.
+
+Both oxalica's overlay and fenix better integrate with nix and cache optimizations.
+Because of this and ergonomics, either of those community projects
+should be preferred to the Mozilla's Rust overlay (`nixpkgs-mozilla`).
+
+### How to select a specific `rustc` and toolchain version {#how-to-select-a-specific-rustc-and-toolchain-version}
+
+You can consume the oxalica overlay and use it to grab a specific Rust toolchain version.
+Here is an example `shell.nix` showing how to grab the current stable toolchain:
+```nix
+{ pkgs ? import {
+ overlays = [
+ (import (fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
+ ];
+ }
+}:
+pkgs.mkShell {
+ nativeBuildInputs = with pkgs; [
+ pkg-config
+ rust-bin.stable.latest.minimal
+ ];
+}
+```
+
+You can try this out by:
+1. Saving that to `shell.nix`
+2. Executing `nix-shell --pure --command 'rustc --version'`
+
+As of writing, this prints out `rustc 1.56.0 (09c42c458 2021-10-18)`.
+
+### How to use an overlay toolchain in a derivation {#how-to-use-an-overlay-toolchain-in-a-derivation}
+
+You can also use an overlay's Rust toolchain with `buildRustPackage`.
+The below snippet demonstrates invoking `buildRustPackage` with an oxalica overlay selected Rust toolchain:
+```nix
+with import {
+ overlays = [
+ (import (fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
+ ];
+};
+
+rustPlatform.buildRustPackage rec {
+ pname = "ripgrep";
+ version = "12.1.1";
+ nativeBuildInputs = [
+ rust-bin.stable.latest.minimal
+ ];
+
+ src = fetchFromGitHub {
+ owner = "BurntSushi";
+ repo = "ripgrep";
+ rev = version;
+ sha256 = "1hqps7l5qrjh9f914r5i6kmcz6f1yb951nv4lby0cjnp5l253kps";
+ };
+
+ cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
+
+ meta = with lib; {
+ description = "A fast line-oriented regex search tool, similar to ag and ack";
+ homepage = "https://github.com/BurntSushi/ripgrep";
+ license = licenses.unlicense;
+ maintainers = [ maintainers.tailhook ];
+ };
+}
+```
+
+Follow the below steps to try that snippet.
+1. create a new directory
+1. save the above snippet as `default.nix` in that directory
+1. cd into that directory and run `nix-build`
### Rust overlay installation {#rust-overlay-installation}
@@ -883,27 +988,15 @@ You can use this overlay by either changing your local nixpkgs configuration,
or by adding the overlay declaratively in a nix expression, e.g. in `configuration.nix`.
For more information see [the manual on installing overlays](#sec-overlays-install).
-#### Imperative rust overlay installation {#imperative-rust-overlay-installation}
-
-Clone [nixpkgs-mozilla](https://github.com/mozilla/nixpkgs-mozilla),
-and create a symbolic link to the file
-[rust-overlay.nix](https://github.com/mozilla/nixpkgs-mozilla/blob/master/rust-overlay.nix)
-in the `~/.config/nixpkgs/overlays` directory.
-
-```ShellSession
-$ git clone https://github.com/mozilla/nixpkgs-mozilla.git
-$ mkdir -p ~/.config/nixpkgs/overlays
-$ ln -s $(pwd)/nixpkgs-mozilla/rust-overlay.nix ~/.config/nixpkgs/overlays/rust-overlay.nix
-```
-
-### Declarative rust overlay installation {#declarative-rust-overlay-installation}
+### Declarative Rust overlay installation {#declarative-rust-overlay-installation}
+This snippet shows how to use oxalica's Rust overlay.
Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
```nix
{ pkgs ? import {
overlays = [
- (import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
+ (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
# Further overlays go here
];
};
@@ -911,36 +1004,3 @@ Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.
```
Note that this will fetch the latest overlay version when rebuilding your system.
-
-### Rust overlay usage {#rust-overlay-usage}
-
-The overlay contains attribute sets corresponding to different versions of the rust toolchain, such as:
-
-* `latest.rustChannels.stable`
-* `latest.rustChannels.nightly`
-* a function `rustChannelOf`, called as `(rustChannelOf { date = "2018-04-11"; channel = "nightly"; })`, or...
-* `(nixpkgs.rustChannelOf { rustToolchain = ./rust-toolchain; })` if you have a local `rust-toolchain` file (see https://github.com/mozilla/nixpkgs-mozilla#using-in-nix-expressions for an example)
-
-Each of these contain packages such as `rust`, which contains your usual rust development tools with the respective toolchain chosen.
-For example, you might want to add `latest.rustChannels.stable.rust` to the list of packages in your configuration.
-
-Imperatively, the latest stable version can be installed with the following command:
-
-```ShellSession
-$ nix-env -Ai nixpkgs.latest.rustChannels.stable.rust
-```
-
-Or using the attribute with nix-shell:
-
-```ShellSession
-$ nix-shell -p nixpkgs.latest.rustChannels.stable.rust
-```
-
-Substitute the `nixpkgs` prefix with `nixos` on NixOS.
-To install the beta or nightly channel, "stable" should be substituted by
-"nightly" or "beta", or
-use the function provided by this overlay to pull a version based on a
-build date.
-
-The overlay automatically updates itself as it uses the same source as
-[rustup](https://www.rustup.rs/).
diff --git a/third_party/nixpkgs/doc/using/overlays.chapter.md b/third_party/nixpkgs/doc/using/overlays.chapter.md
index d2e3b49a6a..df152bc14e 100644
--- a/third_party/nixpkgs/doc/using/overlays.chapter.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/lib/default.nix b/third_party/nixpkgs/lib/default.nix
index 5a85c54211..68d73220fa 100644
--- a/third_party/nixpkgs/lib/default.nix
+++ b/third_party/nixpkgs/lib/default.nix
@@ -119,7 +119,7 @@ let
mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule
- mkAliasOptionModule doRename;
+ mkAliasOptionModule mkDerivedConfig doRename;
inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions
mergeDefaultOption mergeOneOption mergeEqualOption getValues
getFiles optionAttrSetToDocList optionAttrSetToDocList'
diff --git a/third_party/nixpkgs/lib/lists.nix b/third_party/nixpkgs/lib/lists.nix
index e469f3ef26..1dbff7668d 100644
--- a/third_party/nixpkgs/lib/lists.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/lib/modules.nix b/third_party/nixpkgs/lib/modules.nix
index 46ae3f1363..2468b6fbdd 100644
--- a/third_party/nixpkgs/lib/modules.nix
+++ b/third_party/nixpkgs/lib/modules.nix
@@ -52,15 +52,43 @@ 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.
+
+ This is also available as the module argument ‘moduleType’.
+
+ ‘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.
+
+ This is also available as a module argument.
+
+ ‘_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 +148,10 @@ rec {
};
config = {
- _module.args = args;
+ _module.args = {
+ inherit extendModules;
+ moduleType = type;
+ } // args;
};
};
@@ -183,10 +214,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;
@@ -912,6 +961,26 @@ rec {
use = id;
};
+ /* mkDerivedConfig : Option a -> (a -> Definition b) -> Definition b
+
+ Create config definitions with the same priority as the definition of another option.
+ This should be used for option definitions where one option sets the value of another as a convenience.
+ For instance a config file could be set with a `text` or `source` option, where text translates to a `source`
+ value using `mkDerivedConfig options.text (pkgs.writeText "filename.conf")`.
+
+ It takes care of setting the right priority using `mkOverride`.
+ */
+ # TODO: make the module system error message include information about `opt` in
+ # error messages about conflicts. E.g. introduce a variation of `mkOverride` which
+ # adds extra location context to the definition object. This will allow context to be added
+ # to all messages that report option locations "this value was derived from
+ # which was defined in ". It can provide a trace of options that contributed
+ # to definitions.
+ mkDerivedConfig = opt: f:
+ mkOverride
+ (opt.highestPrio or defaultPriority)
+ (f opt.value);
+
doRename = { from, to, visible, warn, use, withPriority ? true }:
{ config, options, ... }:
let
diff --git a/third_party/nixpkgs/lib/options.nix b/third_party/nixpkgs/lib/options.nix
index b316418131..5d52f065af 100644
--- a/third_party/nixpkgs/lib/options.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/lib/strings.nix b/third_party/nixpkgs/lib/strings.nix
index de135d1c27..b2fd495e4c 100644
--- a/third_party/nixpkgs/lib/strings.nix
+++ b/third_party/nixpkgs/lib/strings.nix
@@ -369,7 +369,7 @@ rec {
Example:
escapeXML ''"test" 'test' < & >''
- => "\\[\\^a-z]\\*"
+ => ""test" 'test' < & >"
*/
escapeXML = builtins.replaceStrings
["\"" "'" "<" ">" "&"]
diff --git a/third_party/nixpkgs/lib/systems/examples.nix b/third_party/nixpkgs/lib/systems/examples.nix
index 8dfa22ac78..f2469f9bf7 100644
--- a/third_party/nixpkgs/lib/systems/examples.nix
+++ b/third_party/nixpkgs/lib/systems/examples.nix
@@ -258,6 +258,12 @@ rec {
platform = {};
};
+ x86_64-darwin = {
+ config = "x86_64-apple-darwin";
+ xcodePlatform = "MacOSX";
+ platform = {};
+ };
+
#
# Windows
#
diff --git a/third_party/nixpkgs/lib/systems/platforms.nix b/third_party/nixpkgs/lib/systems/platforms.nix
index 2a5f630c3d..b2a8dbedef 100644
--- a/third_party/nixpkgs/lib/systems/platforms.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/lib/tests/modules.sh b/third_party/nixpkgs/lib/tests/modules.sh
index b51db91f6b..590937da5b 100755
--- a/third_party/nixpkgs/lib/tests/modules.sh
+++ b/third_party/nixpkgs/lib/tests/modules.sh
@@ -1,8 +1,11 @@
-#!/bin/sh
+#!/usr/bin/env bash
#
# This script is used to test that the module system is working as expected.
# By default it test the version of nixpkgs which is defined in the NIX_PATH.
+set -o errexit -o noclobber -o nounset -o pipefail
+shopt -s failglob inherit_errexit
+
# https://stackoverflow.com/a/246128/6605742
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
@@ -13,101 +16,96 @@ fail=0
evalConfig() {
local attr=$1
- shift;
- local script="import ./default.nix { modules = [ $@ ];}"
+ shift
+ local script="import ./default.nix { modules = [ $* ];}"
nix-instantiate --timeout 1 -E "$script" -A "$attr" --eval-only --show-trace --read-write-mode
}
reportFailure() {
local attr=$1
- shift;
- local script="import ./default.nix { modules = [ $@ ];}"
+ shift
+ local script="import ./default.nix { modules = [ $* ];}"
echo 2>&1 "$ nix-instantiate -E '$script' -A '$attr' --eval-only"
- evalConfig "$attr" "$@"
- fail=$((fail + 1))
+ evalConfig "$attr" "$@" || true
+ ((++fail))
}
checkConfigOutput() {
local outputContains=$1
- shift;
+ shift
if evalConfig "$@" 2>/dev/null | grep --silent "$outputContains" ; then
- pass=$((pass + 1))
- return 0;
+ ((++pass))
else
echo 2>&1 "error: Expected result matching '$outputContains', while evaluating"
reportFailure "$@"
- return 1
fi
}
checkConfigError() {
local errorContains=$1
local err=""
- shift;
- if err==$(evalConfig "$@" 2>&1 >/dev/null); then
+ shift
+ if err="$(evalConfig "$@" 2>&1 >/dev/null)"; then
echo 2>&1 "error: Expected error code, got exit code 0, while evaluating"
reportFailure "$@"
- return 1
else
if echo "$err" | grep -zP --silent "$errorContains" ; then
- pass=$((pass + 1))
- return 0;
+ ((++pass))
else
echo 2>&1 "error: Expected error matching '$errorContains', while evaluating"
reportFailure "$@"
- return 1
fi
fi
}
# Check boolean option.
-checkConfigOutput "false" config.enable ./declare-enable.nix
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./define-enable.nix
+checkConfigOutput '^false$' config.enable ./declare-enable.nix
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./define-enable.nix
# Check integer types.
# unsigned
-checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
-checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
+checkConfigOutput '^42$' config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
+checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
# positive
-checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
+checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n\s*- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
# between
-checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
-checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
+checkConfigOutput '^42$' config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
+checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
# Check either types
# types.either
-checkConfigOutput "42" config.value ./declare-either.nix ./define-value-int-positive.nix
-checkConfigOutput "\"24\"" config.value ./declare-either.nix ./define-value-string.nix
+checkConfigOutput '^42$' config.value ./declare-either.nix ./define-value-int-positive.nix
+checkConfigOutput '^"24"$' config.value ./declare-either.nix ./define-value-string.nix
# types.oneOf
-checkConfigOutput "42" config.value ./declare-oneOf.nix ./define-value-int-positive.nix
-checkConfigOutput "[ ]" config.value ./declare-oneOf.nix ./define-value-list.nix
-checkConfigOutput "\"24\"" config.value ./declare-oneOf.nix ./define-value-string.nix
+checkConfigOutput '^42$' config.value ./declare-oneOf.nix ./define-value-int-positive.nix
+checkConfigOutput '^\[ \]$' config.value ./declare-oneOf.nix ./define-value-list.nix
+checkConfigOutput '^"24"$' config.value ./declare-oneOf.nix ./define-value-string.nix
# Check mkForce without submodules.
set -- config.enable ./declare-enable.nix ./define-enable.nix
-checkConfigOutput "true" "$@"
-checkConfigOutput "false" "$@" ./define-force-enable.nix
-checkConfigOutput "false" "$@" ./define-enable-force.nix
+checkConfigOutput '^true$' "$@"
+checkConfigOutput '^false$' "$@" ./define-force-enable.nix
+checkConfigOutput '^false$' "$@" ./define-enable-force.nix
# Check mkForce with option and submodules.
checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix
-checkConfigOutput 'false' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
+checkConfigOutput '^false$' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
set -- config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo-enable.nix
-checkConfigOutput 'true' "$@"
-checkConfigOutput 'false' "$@" ./define-force-attrsOfSub-foo-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-force-foo-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-force-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-enable-force.nix
+checkConfigOutput '^true$' "$@"
+checkConfigOutput '^false$' "$@" ./define-force-attrsOfSub-foo-enable.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-force-foo-enable.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-force-enable.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-force.nix
# Check overriding effect of mkForce on submodule definitions.
checkConfigError 'attribute .*bar.* .* not found' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
-checkConfigOutput 'false' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix
+checkConfigOutput '^false$' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix
set -- config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar-enable.nix
-checkConfigOutput 'true' "$@"
+checkConfigOutput '^true$' "$@"
checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-force-attrsOfSub-foo-enable.nix
checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-attrsOfSub-force-foo-enable.nix
-checkConfigOutput 'true' "$@" ./define-attrsOfSub-foo-force-enable.nix
-checkConfigOutput 'true' "$@" ./define-attrsOfSub-foo-enable-force.nix
+checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-force-enable.nix
+checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-enable-force.nix
# Check mkIf with submodules.
checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-any-enable.nix
@@ -115,24 +113,24 @@ set -- config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-an
checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-if-attrsOfSub-foo-enable.nix
checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-if-foo-enable.nix
checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-foo-if-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-enable-if.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-if.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix
# Check disabledModules with config definitions and option declarations.
set -- config.enable ./define-enable.nix ./declare-enable.nix
-checkConfigOutput "true" "$@"
-checkConfigOutput "false" "$@" ./disable-define-enable.nix
-checkConfigError "The option .*enable.* does not exist. Definition values:\n- In .*: true" "$@" ./disable-declare-enable.nix
+checkConfigOutput '^true$' "$@"
+checkConfigOutput '^false$' "$@" ./disable-define-enable.nix
+checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
# Check _module.args.
set -- config.enable ./declare-enable.nix ./define-enable-with-custom-arg.nix
checkConfigError 'while evaluating the module argument .*custom.* in .*define-enable-with-custom-arg.nix.*:' "$@"
-checkConfigOutput "true" "$@" ./define-_module-args-custom.nix
+checkConfigOutput '^true$' "$@" ./define-_module-args-custom.nix
# Check that using _module.args on imports cause infinite recursions, with
# the proper error context.
@@ -142,71 +140,78 @@ checkConfigError 'infinite recursion encountered' "$@"
# Check _module.check.
set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*' "$@"
-checkConfigOutput "true" "$@" ./define-module-check.nix
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' "$@"
+checkConfigOutput '^true$' "$@" ./define-module-check.nix
# Check coerced value.
-checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
-checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
-checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
+checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
+checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
+checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
# Check coerced value with unsound coercion
-checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
-checkConfigError 'A definition for option .* is not of type .*. Definition values:\n- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
-checkConfigError 'unrecognised JSON value' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
+checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix
+checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
+checkConfigError 'json.exception.parse_error' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
# Check mkAliasOptionModule.
-checkConfigOutput "true" config.enable ./alias-with-priority.nix
-checkConfigOutput "true" config.enableAlias ./alias-with-priority.nix
-checkConfigOutput "false" config.enable ./alias-with-priority-can-override.nix
-checkConfigOutput "false" config.enableAlias ./alias-with-priority-can-override.nix
+checkConfigOutput '^true$' config.enable ./alias-with-priority.nix
+checkConfigOutput '^true$' config.enableAlias ./alias-with-priority.nix
+checkConfigOutput '^false$' config.enable ./alias-with-priority-can-override.nix
+checkConfigOutput '^false$' config.enableAlias ./alias-with-priority-can-override.nix
# submoduleWith
## specialArgs should work
-checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
+checkConfigOutput '^"foo"$' config.submodule.foo ./declare-submoduleWith-special.nix
## shorthandOnlyDefines config behaves as expected
-checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
+checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
-checkConfigError "You're trying to declare a value of type \`bool'\nrather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
-checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
+checkConfigError "You're trying to declare a value of type \`bool'\n\s*rather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
+checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
## submoduleWith should merge all modules in one swoop
-checkConfigOutput "true" config.submodule.inner ./declare-submoduleWith-modules.nix
-checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules.nix
+checkConfigOutput '^true$' config.submodule.inner ./declare-submoduleWith-modules.nix
+checkConfigOutput '^true$' config.submodule.outer ./declare-submoduleWith-modules.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-submoduleWith-modules.nix
+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
+checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
# Check that disabledModules works recursively and correctly
-checkConfigOutput "true" config.enable ./disable-recursive/main.nix
-checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.nix}
-checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
+checkConfigOutput '^true$' config.enable ./disable-recursive/main.nix
+checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-foo.nix}
+checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-bar.nix}
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
# Check that imports can depend on derivations
-checkConfigOutput "true" config.enable ./import-from-store.nix
+checkConfigOutput '^true$' config.enable ./import-from-store.nix
# Check that configs can be conditional on option existence
-checkConfigOutput true config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
-checkConfigOutput 360 config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
-checkConfigOutput 7 config.value ./define-option-dependently.nix ./declare-int-positive-value.nix
-checkConfigOutput true config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
-checkConfigOutput 360 config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
-checkConfigOutput 7 config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix
+checkConfigOutput '^true$' config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
+checkConfigOutput '^360$' config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
+checkConfigOutput '^7$' config.value ./define-option-dependently.nix ./declare-int-positive-value.nix
+checkConfigOutput '^true$' config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
+checkConfigOutput '^360$' config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
+checkConfigOutput '^7$' config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix
# Check attrsOf and lazyAttrsOf. Only lazyAttrsOf should be lazy, and only
# attrsOf should work with conditional definitions
# In addition, lazyAttrsOf should honor an options emptyValue
checkConfigError "is not lazy" config.isLazy ./declare-attrsOf.nix ./attrsOf-lazy-check.nix
-checkConfigOutput "true" config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix
-checkConfigOutput "true" config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix
-checkConfigOutput "false" config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
-checkConfigOutput "empty" config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
+checkConfigOutput '^true$' config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix
+checkConfigOutput '^true$' config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix
+checkConfigOutput '^false$' config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
+checkConfigOutput '^"empty"$' config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
# Even with multiple assignments, a type error should be thrown if any of them aren't valid
@@ -215,64 +220,69 @@ checkConfigError 'A definition for option .* is not of type .*' \
## Freeform modules
# Assigning without a declared option should work
-checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix
+checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix
# No freeform assigments shouldn't make it error
-checkConfigOutput '{ }' config ./freeform-attrsOf.nix
+checkConfigOutput '^{ }$' config ./freeform-attrsOf.nix
# but only if the type matches
checkConfigError 'A definition for option .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix
# and properties should be applied
-checkConfigOutput yes config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
+checkConfigOutput '^"yes"$' config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
# Options should still be declarable, and be able to have a type that doesn't match the freeform type
-checkConfigOutput false config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
-checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+checkConfigOutput '^false$' config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
# and this should work too with nested values
-checkConfigOutput false config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
-checkConfigOutput bar config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
+checkConfigOutput '^false$' config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
+checkConfigOutput '^"bar"$' config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
# Check whether a declared option can depend on an freeform-typed one
-checkConfigOutput null config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
-checkConfigOutput 24 config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
+checkConfigOutput '^null$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
+checkConfigOutput '^"24"$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
# Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf
checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix
checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix
-checkConfigOutput 24 config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
+checkConfigOutput '^"24"$' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
## types.anything
# Check that attribute sets are merged recursively
-checkConfigOutput null config.value.foo ./types-anything/nested-attrs.nix
-checkConfigOutput null config.value.l1.foo ./types-anything/nested-attrs.nix
-checkConfigOutput null config.value.l1.l2.foo ./types-anything/nested-attrs.nix
-checkConfigOutput null config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.l1.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.l1.l2.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
# Attribute sets that are coercible to strings shouldn't be recursed into
-checkConfigOutput foo config.value.outPath ./types-anything/attrs-coercible.nix
+checkConfigOutput '^"foo"$' config.value.outPath ./types-anything/attrs-coercible.nix
# Multiple lists aren't concatenated together
checkConfigError 'The option .* has conflicting definitions' config.value ./types-anything/lists.nix
# Check that all equalizable atoms can be used as long as all definitions are equal
-checkConfigOutput 0 config.value.int ./types-anything/equal-atoms.nix
-checkConfigOutput false config.value.bool ./types-anything/equal-atoms.nix
-checkConfigOutput '""' config.value.string ./types-anything/equal-atoms.nix
-checkConfigOutput / config.value.path ./types-anything/equal-atoms.nix
-checkConfigOutput null config.value.null ./types-anything/equal-atoms.nix
-checkConfigOutput 0.1 config.value.float ./types-anything/equal-atoms.nix
+checkConfigOutput '^0$' config.value.int ./types-anything/equal-atoms.nix
+checkConfigOutput '^false$' config.value.bool ./types-anything/equal-atoms.nix
+checkConfigOutput '^""$' config.value.string ./types-anything/equal-atoms.nix
+checkConfigOutput '^/$' config.value.path ./types-anything/equal-atoms.nix
+checkConfigOutput '^null$' config.value.null ./types-anything/equal-atoms.nix
+checkConfigOutput '^0.1$' config.value.float ./types-anything/equal-atoms.nix
# Functions can't be merged together
checkConfigError "The option .value.multiple-lambdas.. has conflicting option types" config.applied.multiple-lambdas ./types-anything/functions.nix
-checkConfigOutput '' config.value.single-lambda ./types-anything/functions.nix
-checkConfigOutput 'null' config.applied.merging-lambdas.x ./types-anything/functions.nix
-checkConfigOutput 'null' config.applied.merging-lambdas.y ./types-anything/functions.nix
+checkConfigOutput '^$' config.value.single-lambda ./types-anything/functions.nix
+checkConfigOutput '^null$' config.applied.merging-lambdas.x ./types-anything/functions.nix
+checkConfigOutput '^null$' config.applied.merging-lambdas.y ./types-anything/functions.nix
# Check that all mk* modifiers are applied
checkConfigError 'attribute .* not found' config.value.mkiffalse ./types-anything/mk-mods.nix
-checkConfigOutput '{ }' config.value.mkiftrue ./types-anything/mk-mods.nix
-checkConfigOutput 1 config.value.mkdefault ./types-anything/mk-mods.nix
-checkConfigOutput '{ }' config.value.mkmerge ./types-anything/mk-mods.nix
-checkConfigOutput true config.value.mkbefore ./types-anything/mk-mods.nix
-checkConfigOutput 1 config.value.nested.foo ./types-anything/mk-mods.nix
-checkConfigOutput baz config.value.nested.bar.baz ./types-anything/mk-mods.nix
+checkConfigOutput '^{ }$' config.value.mkiftrue ./types-anything/mk-mods.nix
+checkConfigOutput '^1$' config.value.mkdefault ./types-anything/mk-mods.nix
+checkConfigOutput '^{ }$' config.value.mkmerge ./types-anything/mk-mods.nix
+checkConfigOutput '^true$' config.value.mkbefore ./types-anything/mk-mods.nix
+checkConfigOutput '^1$' config.value.nested.foo ./types-anything/mk-mods.nix
+checkConfigOutput '^"baz"$' config.value.nested.bar.baz ./types-anything/mk-mods.nix
## types.functionTo
-checkConfigOutput "input is input" config.result ./functionTo/trivial.nix
-checkConfigOutput "a b" config.result ./functionTo/merging-list.nix
-checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
-checkConfigOutput "b a" config.result ./functionTo/list-order.nix
-checkConfigOutput "a c" config.result ./functionTo/merging-attrs.nix
+checkConfigOutput '^"input is input"$' config.result ./functionTo/trivial.nix
+checkConfigOutput '^"a b"$' config.result ./functionTo/merging-list.nix
+checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
+checkConfigOutput '^"b a"$' config.result ./functionTo/list-order.nix
+checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
+
+# moduleType
+checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
+checkConfigOutput '^"a y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
+checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
cat <> $NIX_CONF_DIR/nix.conf
+
nix-store --init
cp -r ${../.} lib
diff --git a/third_party/nixpkgs/lib/tests/sources.sh b/third_party/nixpkgs/lib/tests/sources.sh
index 71fee719cb..a7f490a79d 100755
--- a/third_party/nixpkgs/lib/tests/sources.sh
+++ b/third_party/nixpkgs/lib/tests/sources.sh
@@ -1,5 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
+shopt -s inherit_errexit
# Use
# || die
@@ -9,27 +10,28 @@ die() {
}
if test -n "${TEST_LIB:-}"; then
- export NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")"
+ NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")"
else
- export NIX_PATH=nixpkgs="$(cd $(dirname ${BASH_SOURCE[0]})/../..; pwd)"
+ NIX_PATH=nixpkgs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."; pwd)"
fi
+export NIX_PATH
work="$(mktemp -d)"
clean_up() {
rm -rf "$work"
}
trap clean_up EXIT
-cd $work
+cd "$work"
touch {README.md,module.o,foo.bar}
# nix-instantiate doesn't write out the source, only computing the hash, so
# this uses the experimental nix command instead.
-dir="$(nix eval --raw '(with import ; "${
+dir="$(nix eval --impure --raw --expr '(with import ; "${
cleanSource ./.
}")')"
-(cd $dir; find) | sort -f | diff -U10 - <(cat <; "${
+dir="$(nix eval --impure --raw --expr '(with import ; "${
cleanSourceWith { src = '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
}")')"
-(cd $dir; find) | sort -f | diff -U10 - <(cat <; "${
+dir="$(nix eval --impure --raw --expr '(with import ; "${
cleanSourceWith { src = cleanSource '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
}")')"
-(cd $dir; find) | sort -f | diff -U10 - <(cat <` 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/third_party/nixpkgs/maintainers/maintainer-list.nix b/third_party/nixpkgs/maintainers/maintainer-list.nix
index 22a49fd721..188936812a 100644
--- a/third_party/nixpkgs/maintainers/maintainer-list.nix
+++ b/third_party/nixpkgs/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";
@@ -602,6 +603,12 @@
fingerprint = "7931 EB4E 4712 D7BE 04F8 6D34 07EE 1FFC A58A 11C5";
}];
};
+ amfl = {
+ email = "amfl@none.none";
+ github = "amfl";
+ githubId = 382798;
+ name = "amfl";
+ };
amiddelk = {
email = "amiddelk@gmail.com";
github = "amiddelk";
@@ -1151,6 +1158,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";
@@ -1551,6 +1564,16 @@
githubId = 87764;
name = "Ben Ford";
};
+ boppyt = {
+ email = "boppy@nwcpz.com";
+ github = "boppyt";
+ githubId = 71049646;
+ name = "Zack A";
+ keys = [{
+ longkeyid = "rsa4096/0x6310C97DE31D1545";
+ fingerprint = "E8D7 5C19 9F65 269B 439D F77B 6310 C97D E31D 1545";
+ }];
+ };
borisbabic = {
email = "boris.ivan.babic@gmail.com";
github = "borisbabic";
@@ -1657,6 +1680,7 @@
};
bryanasdev000 = {
email = "bryanasdev000@gmail.com";
+ matrix = "@bryanasdev000:matrix.org";
github = "bryanasdev000";
githubId = 53131727;
name = "Bryan Albuquerque";
@@ -2068,6 +2092,17 @@
githubId = 12386805;
name = "Chua Hou";
};
+ chuangzhu = {
+ name = "Chuang Zhu";
+ email = "chuang@melty.land";
+ matrix = "@chuangzhu:matrix.org";
+ github = "chuangzhu";
+ githubId = 31200881;
+ keys = [{
+ longkeyid = "rsa4096/E838CED81CFFD3F9";
+ fingerprint = "5D03 A5E6 0754 A3E3 CA57 5037 E838 CED8 1CFF D3F9";
+ }];
+ };
chvp = {
email = "nixpkgs@cvpetegem.be";
matrix = "@charlotte:vanpetegem.me";
@@ -2332,6 +2367,12 @@
githubId = 12202789;
name = "CrazedProgrammer";
};
+ creator54 = {
+ email = "hi.creator54@gmail.com";
+ github = "creator54";
+ githubId = 34543609;
+ name = "creator54";
+ };
cript0nauta = {
email = "shareman1204@gmail.com";
github = "cript0nauta";
@@ -2523,12 +2564,30 @@
githubId = 1298344;
name = "Daniel Fullmer";
};
+ danth = {
+ name = "Daniel Thwaites";
+ email = "danthwaites30@btinternet.com";
+ matrix = "@danth:matrix.org";
+ github = "danth";
+ githubId = 28959268;
+ keys = [{
+ longkeyid = "rsa3072/0xD8AFC4BF05670F9D";
+ fingerprint = "4779 D1D5 3C97 2EAE 34A5 ED3D D8AF C4BF 0567 0F9D";
+ }];
+ };
dan4ik605743 = {
email = "6057430gu@gmail.com";
github = "dan4ik605743";
githubId = 86075850;
name = "Danil Danevich";
};
+ darkonion0 = {
+ name = "Alexandre Peruggia";
+ email = "darkgenius1@protonmail.com";
+ matrix = "@alexoo:matrix.org";
+ github = "DarkOnion0";
+ githubId = 68606322;
+ };
das-g = {
email = "nixpkgs@raphael.dasgupta.ch";
github = "das-g";
@@ -2587,6 +2646,12 @@
githubId = 91113;
name = "David Kleuker";
};
+ davidarmstronglewis = {
+ email = "davidlewis@mac.com";
+ github = "davidarmstronglewis";
+ githubId = 6754950;
+ name = "David Armstrong Lewis";
+ };
davidrusu = {
email = "davidrusu.me@gmail.com";
github = "davidrusu";
@@ -2789,6 +2854,12 @@
githubId = 2439413;
name = "Derek Gonyeo";
};
+ dguenther = {
+ email = "dguenther9@gmail.com";
+ github = "dguenther";
+ githubId = 767083;
+ name = "Derek Guenther";
+ };
dhkl = {
email = "david@davidslab.com";
github = "dhl";
@@ -3035,6 +3106,12 @@
fingerprint = "85F3 72DF 4AF3 EF13 ED34 72A3 0AAF 2901 E804 0715";
}];
};
+ drzoidberg = {
+ email = "jakob@mast3rsoft.com";
+ github = "jakobneufeld";
+ githubId = 24791219;
+ name = "Jakob Neufeld";
+ };
dschrempf = {
name = "Dominik Schrempf";
email = "dominik.schrempf@gmail.com";
@@ -3227,12 +3304,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";
@@ -3277,6 +3348,7 @@
};
ekleog = {
email = "leo@gaspard.io";
+ matrix = "@leo:gaspard.ninja";
github = "ekleog";
githubId = 411447;
name = "Leo Gaspard";
@@ -3647,10 +3719,14 @@
};
expipiplus1 = {
email = "nix@monoid.al";
- matrix = "@joe:monoid.al";
+ matrix = "@ellie:monoid.al";
github = "expipiplus1";
githubId = 857308;
- name = "Joe Hermaszewski";
+ name = "Ellie Hermaszewska";
+ keys = [{
+ longkeyid = "rsa4096/0xC8116E3A0C1CA76A";
+ fingerprint = "FC1D 3E4F CBCA 80DF E870 6397 C811 6E3A 0C1C A76A";
+ }];
};
extends = {
email = "sharosari@gmail.com";
@@ -3860,6 +3936,12 @@
githubId = 183879;
name = "Florian Klink";
};
+ florentc = {
+ email = "florentc@users.noreply.github.com";
+ github = "florentc";
+ githubId = 1149048;
+ name = "Florent Ch.";
+ };
FlorianFranzen = {
email = "Florian.Franzen@gmail.com";
github = "FlorianFranzen";
@@ -4103,6 +4185,12 @@
githubId = 20208;
name = "Rok Garbas";
};
+ gardspirito = {
+ name = "gardspirito";
+ email = "nyxoroso@gmail.com";
+ github = "gardspirito";
+ githubId = 29687558;
+ };
garrison = {
email = "jim@garrison.cc";
github = "garrison";
@@ -4133,6 +4221,16 @@
githubId = 313929;
name = "Gabriel Ebner";
};
+ genofire = {
+ name = "genofire";
+ email = "geno+dev@fireorbit.de";
+ github = "genofire";
+ githubId = 6905586;
+ keys = [{
+ longkeyid = "rsa4096/0xFC83907C125BC2BC";
+ fingerprint = "386E D1BF 848A BB4A 6B4A 3C45 FC83 907C 125B C2BC";
+ }];
+ };
georgewhewell = {
email = "georgerw@gmail.com";
github = "georgewhewell";
@@ -4192,6 +4290,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";
@@ -4535,6 +4639,13 @@
githubId = 2405974;
name = "Sébastian Méric de Bellefon";
};
+ henkkalkwater = {
+ email = "chris+nixpkgs@netsoj.nl";
+ github = "HenkKalkwater";
+ githubId = 4262067;
+ matrix = "@chris:netsoj.nl";
+ name = "Chris Josten";
+ };
henrikolsson = {
email = "henrik@fixme.se";
github = "henrikolsson";
@@ -4660,6 +4771,12 @@
githubId = 896431;
name = "Chris Hodapp";
};
+ hollowman6 = {
+ email = "hollowman@hollowman.ml";
+ github = "HollowMan6";
+ githubId = 43995067;
+ name = "Songlin Jiang";
+ };
holymonson = {
email = "holymonson@gmail.com";
github = "holymonson";
@@ -4921,6 +5038,12 @@
githubId = 4085046;
name = "Imuli";
};
+ ineol = {
+ email = "leo.stefanesco@gmail.com";
+ github = "ineol";
+ githubId = 37965;
+ name = "Léo Stefanesco";
+ };
infinisil = {
email = "contact@infinisil.com";
matrix = "@infinisil:matrix.org";
@@ -4965,6 +5088,13 @@
fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293";
}];
};
+ ius = {
+ email = "j.de.gram@gmail.com";
+ name = "Joerie de Gram";
+ matrix = "@ius:nltrix.net";
+ github = "ius";
+ githubId = 529626;
+ };
ivan = {
email = "ivan@ludios.org";
github = "ivan";
@@ -4998,7 +5128,7 @@
}];
};
ivankovnatsky = {
- email = "ikovnatsky@protonmail.ch";
+ email = "75213+ivankovnatsky@users.noreply.github.com";
github = "ivankovnatsky";
githubId = 75213;
name = "Ivan Kovnatsky";
@@ -5182,12 +5312,28 @@
githubId = 221929;
name = "Jean-Baptiste Giraudeau";
};
+ jceb = {
+ name = "jceb";
+ email = "jceb@e-jc.de";
+ github = "jceb";
+ githubId = 101593;
+ };
jchw = {
email = "johnwchadwick@gmail.com";
github = "jchv";
githubId = 938744;
name = "John Chadwick";
};
+ jcouyang = {
+ email = "oyanglulu@gmail.com";
+ github = "jcouyang";
+ githubId = 1235045;
+ name = "Jichao Ouyang";
+ keys = [{
+ longkeyid = "rsa2048/0xDA8B833B52604E63";
+ fingerprint = "A506 C38D 5CC8 47D0 DF01 134A DA8B 833B 5260 4E63";
+ }];
+ };
jcumming = {
email = "jack@mudshark.org";
github = "jcumming";
@@ -5782,6 +5928,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";
@@ -5851,6 +6007,12 @@
githubId = 3831860;
name = "Arnold Krille";
};
+ kanashimia = {
+ email = "chad@redpilled.dev";
+ github = "kanashimia";
+ githubId = 56224949;
+ name = "Mia Kanashi";
+ };
karantan = {
name = "Gasper Vozel";
email = "karantan@gmail.com";
@@ -6063,6 +6225,12 @@
email = "tierpluspluslists@gmail.com";
name = "Karn Kallio";
};
+ klden = {
+ name = "Kenzyme Le";
+ email = "kl@kenzymele.com";
+ github = "klDen";
+ githubId = 5478260;
+ };
klntsky = {
email = "klntsky@gmail.com";
name = "Vladimir Kalnitsky";
@@ -6243,6 +6411,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";
@@ -6255,6 +6429,13 @@
githubId = 449813;
name = "Roman Kuznetsov";
};
+ kvark = {
+ name = "Dzmitry Malyshau";
+ email = "kvark@fastmail.com";
+ matrix = "@kvark:matrix.org";
+ github = "kvark";
+ githubId = 107301;
+ };
kwohlfahrt = {
email = "kai.wohlfahrt@gmail.com";
github = "kwohlfahrt";
@@ -6446,12 +6627,16 @@
githubId = 4158274;
name = "Michiel Leenaars";
};
- legendofmiracles = {
+ lom = {
email = "legendofmiracles@protonmail.com";
matrix = "@legendofmiracles:matrix.org";
github = "legendofmiracles";
githubId = 30902201;
name = "legendofmiracles";
+ keys = [{
+ longkeyid = "rsa4096/0x19B082B3DEFE5451";
+ fingerprint = "CC50 F82C 985D 2679 0703 AF15 19B0 82B3 DEFE 5451";
+ }];
};
lejonet = {
email = "daniel@kuehn.se";
@@ -6628,6 +6813,12 @@
fingerprint = "5B93 9CFA E8FC 4D8F E07A 3AEA DFE1 D4A0 1733 7E2A";
}];
};
+ lorenzleutgeb = {
+ email = "lorenz@leutgeb.xyz";
+ github = "lorenzleutgeb";
+ githubId = 542154;
+ name = "Lorenz Leutgeb";
+ };
luis = {
email = "luis.nixos@gmail.com";
github = "Luis-Hebendanz";
@@ -6717,6 +6908,12 @@
githubId = 10626;
name = "Andreas Wagner";
};
+ lrewega = {
+ email = "lrewega@c32.ca";
+ github = "lrewega";
+ githubId = 639066;
+ name = "Luke Rewega";
+ };
lromor = {
email = "leonardo.romor@gmail.com";
github = "lromor";
@@ -6897,6 +7094,12 @@
githubId = 109141;
name = "Georges Dubus";
};
+ Madouura = {
+ email = "madouura@gmail.com";
+ github = "Madouura";
+ githubId = 93990818;
+ name = "Madoura";
+ };
mafo = {
email = "Marc.Fontaine@gmx.de";
github = "MarcFontaine";
@@ -7035,6 +7238,12 @@
githubId = 623509;
name = "Martijn Vermaat";
};
+ martinetd = {
+ email = "f.ktfhrvnznqxacf@noclue.notk.org";
+ github = "martinetd";
+ githubId = 1729331;
+ name = "Dominique Martinet";
+ };
martingms = {
email = "martin@mg.am";
github = "martingms";
@@ -7146,6 +7355,16 @@
githubId = 95194;
name = "Mauricio Scheffer";
};
+ max-niederman = {
+ email = "max@maxniederman.com";
+ github = "max-niederman";
+ githubId = 19580458;
+ name = "Max Niederman";
+ keys = [{
+ longkeyid = "rsa3072/0x9AED881481D8444E";
+ fingerprint = "1DE4 424D BF77 1192 5DC4 CF5E 9AED 8814 81D8 444E";
+ }];
+ };
maxdamantus = {
email = "maxdamantus@gmail.com";
github = "Maxdamantus";
@@ -7224,6 +7443,12 @@
githubId = 51356;
name = "Mathieu Boespflug";
};
+ mbprtpmnr = {
+ name = "mbprtpmnr";
+ email = "mbprtpmnr@pm.me";
+ github = "mbprtpmnr";
+ githubId = 88109321;
+ };
mbrgm = {
email = "marius@yeai.de";
github = "mbrgm";
@@ -7485,6 +7710,12 @@
fingerprint = "DB43 2895 CF68 F0CE D4B7 EF60 DA01 5B05 B5A1 1B22";
}];
};
+ milahu = {
+ email = "milahu@gmail.com";
+ github = "milahu";
+ githubId = 12958815;
+ name = "Milan Hauth";
+ };
milesbreslin = {
email = "milesbreslin@gmail.com";
github = "milesbreslin";
@@ -7686,6 +7917,7 @@
mohe2015 = {
name = "Moritz Hedtke";
email = "Moritz.Hedtke@t-online.de";
+ matrix = "@moritz.hedtke:matrix.org";
github = "mohe2015";
githubId = 13287984;
keys = [{
@@ -7727,6 +7959,12 @@
githubId = 99988;
name = "Maarten Hoogendoorn";
};
+ MoritzBoehme = {
+ email = "mail@moritzboeh.me";
+ github = "MoritzBoehme";
+ githubId = 42215704;
+ name = "Moritz Böhme";
+ };
MostAwesomeDude = {
email = "cds@corbinsimpson.com";
github = "MostAwesomeDude";
@@ -8012,6 +8250,17 @@
githubId = 56316606;
name = "Amneesh Singh";
};
+ nazarewk = {
+ name = "Krzysztof Nazarewski";
+ email = "3494992+nazarewk@users.noreply.github.com";
+ matrix = "@nazarewk:matrix.org";
+ github = "nazarewk";
+ githubId = 3494992;
+ keys = [{
+ longkeyid = "rsa4096/0x916D8B67241892AE";
+ fingerprint = "4BFF 0614 03A2 47F0 AA0B 4BC4 916D 8B67 2418 92AE";
+ }];
+ };
nbren12 = {
email = "nbren12@gmail.com";
github = "nbren12";
@@ -8265,6 +8514,12 @@
githubId = 7588406;
name = "Andrew R. M.";
};
+ nkalupahana = {
+ email = "hello@nisa.la";
+ github = "nkalupahana";
+ githubId = 7347290;
+ name = "Nisala Kalupahana";
+ };
nloomans = {
email = "noah@nixos.noahloomans.com";
github = "nloomans";
@@ -8568,6 +8823,12 @@
githubId = 101514;
name = "Orivej Desh";
};
+ ornxka = {
+ email = "ornxka@littledevil.sh";
+ github = "ornxka";
+ githubId = 52086525;
+ name = "ornxka";
+ };
oro = {
email = "marco@orovecchia.at";
github = "oro";
@@ -8673,6 +8934,7 @@
};
pamplemousse = {
email = "xav.maso@gmail.com";
+ matrix = "@pamplemouss_:matrix.org";
github = "Pamplemousse";
githubId = 2647236;
name = "Xavier Maso";
@@ -8726,7 +8988,7 @@
name = "pasqui23";
};
patryk27 = {
- email = "wychowaniec.patryk@gmail.com";
+ email = "pwychowaniec@pm.me";
github = "Patryk27";
githubId = 3395477;
name = "Patryk Wychowaniec";
@@ -8777,12 +9039,6 @@
githubId = 8641;
name = "Pierre Carrier";
};
- pengmeiyu = {
- email = "pengmyu@gmail.com";
- github = "pmeiyu";
- githubId = 8529551;
- name = "Peng Mei Yu";
- };
penguwin = {
email = "penguwin@penguwin.eu";
github = "penguwin";
@@ -8887,6 +9143,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";
@@ -9052,6 +9314,12 @@
githubId = 178496;
name = "Philipp Middendorf";
};
+ pmy = {
+ email = "pmy@xqzp.net";
+ github = "pmeiyu";
+ githubId = 8529551;
+ name = "Peng Mei Yu";
+ };
pmyjavec = {
email = "pauly@myjavec.com";
github = "pmyjavec";
@@ -9355,6 +9623,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";
@@ -9547,12 +9821,28 @@
githubId = 500703;
name = "Tadas Barzdžius";
};
+ revol-xut = {
+ email = "revol-xut@protonmail.com";
+ name = "Tassilo Tanneberger";
+ github = "revol-xut";
+ githubId = 32239737;
+ keys = [{
+ longkeyid = "rsa4096/B966009D57E69CC6";
+ fingerprint = "91EB E870 1639 1323 642A 6803 B966 009D 57E6 9CC6";
+ }];
+ };
rexim = {
email = "reximkut@gmail.com";
github = "rexim";
githubId = 165283;
name = "Alexey Kutepov";
};
+ rewine = {
+ email = "lhongxu@outlook.com";
+ github = "wineee";
+ githubId = 22803888;
+ name = "Lu Hongxu";
+ };
rgrunbla = {
email = "remy@grunblatt.org";
github = "rgrunbla";
@@ -9619,6 +9909,12 @@
githubId = 37246692;
name = "Riley Inman";
};
+ riotbib = {
+ email = "github-nix@lnrt.de";
+ github = "riotbib";
+ githubId = 43172581;
+ name = "Lennart Mühlenmeier";
+ };
ris = {
email = "code@humanleg.org.uk";
github = "risicle";
@@ -9642,12 +9938,6 @@
}
];
};
- rittelle = {
- email = "rittelle@posteo.de";
- github = "rittelle";
- githubId = 33598633;
- name = "Lennart Rittel";
- };
rixed = {
email = "rixed-github@happyleptic.org";
github = "rixed";
@@ -9832,6 +10122,12 @@
githubId = 592876;
name = "Robert W. Pearce";
};
+ rprecenth = {
+ email = "rasmus@precenth.eu";
+ github = "Prillan";
+ githubId = 1675190;
+ name = "Rasmus Précenth";
+ };
rprospero = {
email = "rprospero+nix@gmail.com";
github = "rprospero";
@@ -9850,6 +10146,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";
@@ -9992,6 +10294,17 @@
github = "s1341";
githubId = 5682183;
};
+ sagikazarmark = {
+ name = "Mark Sagi-Kazar";
+ email = "mark.sagikazar@gmail.com";
+ matrix = "@mark.sagikazar:matrix.org";
+ github = "sagikazarmark";
+ githubId = 1226384;
+ keys = [{
+ longkeyid = "rsa4096/0xF251ADDC9D041C7E";
+ fingerprint = "E628 C811 6FB8 1657 F706 4EA4 F251 ADDC 9D04 1C7E";
+ }];
+ };
samalws = {
email = "sam@samalws.com";
name = "Sam Alws";
@@ -10109,6 +10422,12 @@
githubId = 720864;
name = "Sébastien Bourdeauducq";
};
+ sbellem = {
+ email = "sbellem@gmail.com";
+ github = "sbellem";
+ githubId = 125458;
+ name = "Sylvain Bellemare";
+ };
sbond75 = {
name = "sbond75";
email = "43617712+sbond75@users.noreply.github.com";
@@ -10369,6 +10688,12 @@
githubId = 251028;
name = "Shell Turner";
};
+ shikanime = {
+ name = "William Phetsinorath";
+ email = "deva.shikanime@protonmail.com";
+ github = "shikanime";
+ githubId = 22115108;
+ };
shlevy = {
email = "shea@shealevy.com";
github = "shlevy";
@@ -10761,6 +11086,12 @@
github = "staccato";
githubId = 86573128;
};
+ stackshadow = {
+ email = "stackshadow@evilbrain.de";
+ github = "stackshadow";
+ githubId = 7512804;
+ name = "Martin Langlotz";
+ };
steell = {
email = "steve@steellworks.com";
github = "Steell";
@@ -10910,13 +11241,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";
@@ -11073,6 +11397,16 @@
githubId = 321799;
name = "Paul Colomiets";
};
+ taikx4 = {
+ email = "taikx4@taikx4szlaj2rsdupcwabg35inbny4jk322ngeb7qwbbhd5i55nf5yyd.onion";
+ github = "taikx4";
+ githubId = 94917129;
+ name = "taikx4";
+ keys = [{
+ longkeyid = "ed25519/0xCCD52C7B37BB837E";
+ fingerprint = "6B02 8103 C4E5 F68C D77C 9E54 CCD5 2C7B 37BB 837E";
+ }];
+ };
takagiy = {
email = "takagiy.4dev@gmail.com";
github = "takagiy";
@@ -11256,6 +11590,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";
@@ -11443,6 +11788,12 @@
fingerprint = "556A 403F B0A2 D423 F656 3424 8489 B911 F9ED 617B";
}];
};
+ tmarkovski = {
+ email = "tmarkovski@gmail.com";
+ github = "tmarkovski";
+ githubId = 1280118;
+ name = "Tomislav Markovski";
+ };
tmountain = {
email = "tinymountain@gmail.com";
github = "tmountain";
@@ -11612,6 +11963,12 @@
githubId = 1568873;
name = "Torsten Scholak";
};
+ tshaynik = {
+ email = "tshaynik@protonmail.com";
+ github = "tshaynik";
+ githubId = 15064765;
+ name = "tshaynik";
+ };
tstrobel = {
email = "4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains";
name = "Thomas Strobel";
@@ -12181,7 +12538,7 @@
githubId = 6016963;
name = "Patrick Winter";
};
- winterqt = {
+ winter = {
email = "nixos@winter.cafe";
github = "winterqt";
githubId = 78392041;
@@ -12531,6 +12888,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";
@@ -12654,12 +13021,6 @@
githubId = 1772064;
name = "Tim Zook";
};
- zoomulator = {
- email = "zoomulator@gmail.com";
- github = "zoomulator";
- githubId = 1069303;
- name = "Kim Simmons";
- };
zopieux = {
email = "zopieux@gmail.com";
github = "zopieux";
@@ -12994,17 +13355,16 @@
github = "zupo";
githubId = 311580;
};
- rski = {
- name = "rski";
- email = "rom.skiad+nix@gmail.com";
- github = "rski";
- githubId = 2960312;
+ sei40kr = {
+ name = "Seong Yong-ju";
+ email = "sei40kr@gmail.com";
+ github = "sei40kr";
+ githubId = 11665236;
};
- mbprtpmnr = {
- name = "mbprtpmnr";
- email = "mbprtpmnr@pm.me";
- github = "mbprtpmnr";
- githubId = 88109321;
+ vdot0x23 = {
+ name = "Victor Büttner";
+ email = "nix.victor@0x23.dk";
+ github = "vdot0x23";
+ githubId = 40716069;
};
-
}
diff --git a/third_party/nixpkgs/maintainers/scripts/find-tarballs.nix b/third_party/nixpkgs/maintainers/scripts/find-tarballs.nix
index 52cce90991..990185bbb3 100644
--- a/third_party/nixpkgs/maintainers/scripts/find-tarballs.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/maintainers/scripts/luarocks-packages.csv b/third_party/nixpkgs/maintainers/scripts/luarocks-packages.csv
index d4a5f83d01..23303d22c4 100644
--- a/third_party/nixpkgs/maintainers/scripts/luarocks-packages.csv
+++ b/third_party/nixpkgs/maintainers/scripts/luarocks-packages.csv
@@ -73,7 +73,7 @@ lyaml,,,,,,lblasc
markdown,,,,,,
mediator_lua,,,,,,
mpack,,,,,,
-moonscript,,,,,,arobyn
+moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
nvim-client,https://github.com/neovim/lua-client.git,,,,,
penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,lua5_1,
diff --git a/third_party/nixpkgs/maintainers/scripts/pluginupdate.py b/third_party/nixpkgs/maintainers/scripts/pluginupdate.py
index 2a9a2d4c0a..2c2cb3b6dd 100644
--- a/third_party/nixpkgs/maintainers/scripts/pluginupdate.py
+++ b/third_party/nixpkgs/maintainers/scripts/pluginupdate.py
@@ -305,7 +305,7 @@ class CleanEnvironment(object):
def get_current_plugins(editor: Editor) -> List[Plugin]:
with CleanEnvironment():
- cmd = ["nix", "eval", "--json", editor.get_plugins]
+ cmd = ["nix", "eval", "--impure", "--json", "--expr", editor.get_plugins]
log.debug("Running command %s", cmd)
out = subprocess.check_output(cmd)
data = json.loads(out)
diff --git a/third_party/nixpkgs/maintainers/scripts/update.py b/third_party/nixpkgs/maintainers/scripts/update.py
index eb26a472e9..06b12a0ee0 100644
--- a/third_party/nixpkgs/maintainers/scripts/update.py
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/maintainers/scripts/vanity.sh b/third_party/nixpkgs/maintainers/scripts/vanity.sh
index aa7d4ec967..b879488165 100755
--- a/third_party/nixpkgs/maintainers/scripts/vanity.sh
+++ b/third_party/nixpkgs/maintainers/scripts/vanity.sh
@@ -30,7 +30,7 @@ fetchGithubName () {
curl https://github.com/NixOS/nixpkgs/commit/"$commitid" 2>/dev/null |
grep committed -B10 | grep 'href="/' |
sed -re 's@.* href="/@@; s@".*@@' |
- grep -v "/commit/"
+ grep -v "/commit/"
)";
echo "$userid"
}
@@ -38,7 +38,7 @@ fetchGithubName () {
[ -n "$NIXPKGS_GITHUB_NAME_CACHE" ] && {
echo "$emails" | while read email; do
line="$(grep "$email " "$NIXPKGS_GITHUB_NAME_CACHE")"
- [ -z "$line" ] && {
+ [ -z "$line" ] && {
echo "$email $(fetchGithubName "$email")" >> \
"$NIXPKGS_GITHUB_NAME_CACHE"
}
@@ -47,11 +47,11 @@ fetchGithubName () {
# For RDF
normalize_name () {
- sed -e 's/%/%25/g; s/ /%20/g; s/'\''/%27/g; s/"/%22/g; s/`/%60/g; s/\^/%5e/g; '
+ sed -e 's/%/%25/g; s/ /%20/g; s/'\''/%27/g; s/"/%22/g; s/`/%60/g; s/\^/%5e/g; '
}
denormalize_name () {
- sed -e 's/%20/ /g; s/%27/'\''/g; s/%22/"/g; s/%60/`/g; s/%5e/^/g; s/%25/%/g;';
+ sed -e 's/%20/ /g; s/%27/'\''/g; s/%22/"/g; s/%60/`/g; s/%5e/^/g; s/%25/%/g;';
}
n3="$(mktemp --suffix .n3)"
@@ -75,22 +75,22 @@ echo "$maintainers" | cut -f 2 | sed -e 's@.*@+ ?y.
- ?x ?g.
+ "$sparql" --results=TSV --data="$n3" "
+ select ?x ?y ?g where {
+ ?x + ?y.
+ ?x ?g.
}
- " | tail -n +2 |
- sed -re 's@@@g;' |
- sort -k 2,3 -t ' '
+ " | tail -n +2 |
+ sed -re 's@@@g;' |
+ sort -k 2,3 -t ' '
)"
github_name_list="$(
- "$sparql" --results=TSV --data="$n3" "
- select ?x ?y where {
- ?x (+ / ) ?y.
+ "$sparql" --results=TSV --data="$n3" "
+ select ?x ?y where {
+ ?x (+ / ) ?y.
}
- " | tail -n +2 |
- sed -re 's@@@g;'
+ " | tail -n +2 |
+ sed -re 's@@@g;'
)"
# Take first spelling option for every person
@@ -104,10 +104,10 @@ if [ -n "$NIXPKGS_GITHUB_NAME_CACHE" ]; then
github_adder_script="$(mktemp)"
echo "$github_name_list" |
grep -E "$(echo "$name_list_canonical" | cut -f 2 |
- tr '\n' '|' )" |
- sort | uniq |
+ tr '\n' '|' )" |
+ sort | uniq |
sed -re 's/(.*)\t(.*)/s| \1$| \1\t\2|g;/' |
- denormalize_name > "$github_adder_script"
+ denormalize_name > "$github_adder_script"
else
github_adder_script='/dev/null'
fi
diff --git a/third_party/nixpkgs/maintainers/team-list.nix b/third_party/nixpkgs/maintainers/team-list.nix
index 7ae768914c..7cd7fa237d 100644
--- a/third_party/nixpkgs/maintainers/team-list.nix
+++ b/third_party/nixpkgs/maintainers/team-list.nix
@@ -93,7 +93,6 @@ with lib.maintainers; {
cstrahan
Frostman
kalbasit
- mdlayher
mic92
orivej
rvolosatovs
@@ -200,7 +199,6 @@ with lib.maintainers; {
openstack = {
members = [
angustrau
- superherointj
SuperSandro2000
];
scope = "Maintain the ecosystem around OpenStack";
diff --git a/third_party/nixpkgs/nixos/doc/manual/administration/cleaning-store.chapter.md b/third_party/nixpkgs/nixos/doc/manual/administration/cleaning-store.chapter.md
index fb2090b31d..c9140d0869 100644
--- a/third_party/nixpkgs/nixos/doc/manual/administration/cleaning-store.chapter.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.section.md b/third_party/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.section.md
index b124e8303f..18390c959b 100644
--- a/third_party/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.section.md
+++ b/third_party/nixpkgs/nixos/doc/manual/configuration/renaming-interfaces.section.md
@@ -26,7 +26,7 @@ we assign the name `wan` to the interface with MAC address
```nix
systemd.network.links."10-wan" = {
- matchConfig.MACAddress = "52:54:00:12:01:01";
+ matchConfig.PermanentMACAddress = "52:54:00:12:01:01";
linkConfig.Name = "wan";
};
```
diff --git a/third_party/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md b/third_party/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md
index 8471e7608a..d9749d37da 100644
--- a/third_party/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
index 0ca98dd6e5..4243d2bf53 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
index 1c32e30b3f..88c9e624c8 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
@@ -32,7 +32,7 @@
systemd.network.links."10-wan" = {
- matchConfig.MACAddress = "52:54:00:12:01:01";
+ matchConfig.PermanentMACAddress = "52:54:00:12:01:01";
linkConfig.Name = "wan";
};
diff --git a/third_party/nixpkgs/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
index 83a96d5bb2..0d523681b6 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml
index 91ab716829..db073fa839 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/doc/manual/from_md/installation/upgrading.chapter.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
index c0c5a2190f..e3b77d4c36 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
@@ -12,7 +12,7 @@
Stable channels, such as
- nixos-21.05.
+ nixos-21.11.
These only get conservative bug fixes and package upgrades. For
instance, a channel update may cause the Linux kernel on your
system to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix),
@@ -33,7 +33,7 @@
Small channels, such as
- nixos-21.05-small
+ nixos-21.11-small
or
nixos-unstable-small.
These are identical to the stable and unstable channels
@@ -60,8 +60,8 @@
When you first install NixOS, you’re automatically subscribed to the
NixOS channel that corresponds to your installation source. For
- instance, if you installed from a 21.05 ISO, you will be subscribed
- to the nixos-21.05 channel. To see which NixOS
+ instance, if you installed from a 21.11 ISO, you will be subscribed
+ to the nixos-21.11 channel. To see which NixOS
channel you’re subscribed to, run the following as root:
@@ -76,17 +76,17 @@ nixos https://nixos.org/channels/nixos-unstable
(Be sure to include the nixos parameter at the
- end.) For instance, to use the NixOS 21.05 stable channel:
+ end.) For instance, to use the NixOS 21.11 stable channel:
-# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11 nixos
If you have a server, you may want to use the small
channel instead:
-# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11-small nixos
And if you want to live on the bleeding edge:
@@ -146,7 +146,7 @@ system.autoUpgrade.allowReboot = true;
also specify a channel explicitly, e.g.
-system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.11;
diff --git a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 77830676e7..6b706e4aea 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -1,9 +1,5 @@
- Release 21.11 (“Porcupine”, 2021.11/??)
-
- In addition to numerous new and upgraded packages, this release has
- the following highlights:
-
+ Release 21.11 (“Porcupine”, 2021/11/30)
@@ -14,7 +10,26 @@
Highlights
+
+ In addition to numerous new and upgraded packages, this release
+ has the following highlights:
+
+
+
+ Nix has been updated to version 2.4, reference its
+ release
+ notes for more information on what has changed. The
+ previous version of Nix, 2.3.16, remains available for the
+ time being in the nix_2_3 package.
+
+
+
+
+ iptables now uses
+ nf_tables backend.
+
+
PHP now defaults to PHP 8.0, updated from 7.4.
@@ -22,7 +37,7 @@
- kOps now defaults to 1.21.1, which uses containerd as the
+ kops now defaults to 1.21.1, which uses containerd as the
default runtime.
@@ -46,13 +61,36 @@
- 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.
+ 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, optionally, be run during a
+ nixos-rebuild dry-activate and can 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.
@@ -94,6 +132,81 @@
Notes for details.
+
+
+ LXD support was greatly improved:
+
+
+
+
+ building LXD images from configurations is now directly
+ possible with just nixpkgs
+
+
+
+
+ hydra is now building nixOS LXD images that can be used
+ standalone with full nixos-rebuild support
+
+
+
+
+
+
+ OpenSSH was updated to version 8.8p1
+
+
+
+
+ This breaks connections to old SSH daemons as ssh-rsa host
+ keys and ssh-rsa public keys that were signed with SHA-1
+ are disabled by default now
+
+
+
+
+ These can be re-enabled, see the
+ OpenSSH
+ changelog for details
+
+
+
+
+
+
+ ORY Kratos was updated to version 0.8.0-alpha.3
+
+
+
+
+ This release requires you to run SQL migrations. Please,
+ as always, create a backup of your database first!
+
+
+
+
+ The SDKs are now generated with tag v0alpha2 to reflect
+ that some signatures have changed in a breaking fashion.
+ Please update your imports from v0alpha1 to v0alpha2.
+
+
+
+
+ The SMTPS scheme used in courier config URL with
+ cleartext/StartTLS/TLS SMTP connection types is now only
+ supporting implicit TLS. For StartTLS and cleartext SMTP,
+ please use the SMTP scheme instead.
+
+
+
+
+ for more details, see
+ Release
+ Notes.
+
+
+
+
@@ -142,14 +255,14 @@
Kea, ISCs
2nd generation DHCP and DDNS server suite. Available at
- services.kea.
+ services.kea.
owncast,
self-hosted video live streaming solution. Available at
- services.owncast.
+ services.owncast.
@@ -157,7 +270,7 @@
PeerTube,
developed by Framasoft, is the free and decentralized
alternative to video platforms. Available at
- services.peertube.
+ services.peertube.
@@ -381,11 +494,68 @@
services.seafile.
+
+
+ rasdaemon,
+ a hardware error logging daemon. Available as
+ hardware.rasdaemon.
+
+
+
+
+ code-server-module now available
+
+
+
+
+ xmrig,
+ a high performance, open source, cross platform RandomX,
+ KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and
+ RandomX benchmark.
+
+
+
+
+ Auto nice daemons
+ ananicy
+ and
+ ananicy-cpp.
+ Available as
+ services.ananicy.
+
+
+
+
+ smartctl_exporter,
+ a Prometheus exporter for
+ S.M.A.R.T.
+ data. Available as
+ services.prometheus.exporters.smartctl.
+
+ 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,
@@ -403,6 +573,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
@@ -490,7 +668,7 @@ Superuser created successfully.
The staticjinja package has been upgraded
- from 1.0.4 to 4.1.0
+ from 1.0.4 to 4.1.1
@@ -549,6 +727,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
@@ -1153,6 +1342,21 @@ Superuser created successfully.
would be parsed as 3 parameters.
+
+
+ nix.daemonNiceLevel and
+ nix.daemonIONiceLevel have been removed in
+ favour of the new options
+ nix.daemonCPUSchedPolicy,
+ nix.daemonIOSchedClass
+ and
+ nix.daemonIOSchedPriority.
+ Please refer to the options documentation and the
+ sched(7) and
+ ioprio_set(2) man pages for guidance on how
+ to use them.
+
+
The coursier package’s binary was renamed
@@ -1170,12 +1374,52 @@ Superuser created successfully.
will no longer work and must be updated.
+
+
+ The fluidsynth_1 attribute has been
+ removed, as this legacy version is no longer needed in
+ nixpkgs. The actively maintained 2.x series is available as
+ fluidsynth unchanged.
+
+
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.
+
+
+
+
+ The default GNAT version has been changed: The
+ gnat attribute now points to
+ gnat11 instead of gnat9.
+
+
+
+
+ retroArchCores has been removed. This means
+ that using nixpkgs.config.retroarch to
+ customize RetroArch cores is not supported anymore. Instead,
+ use package overrides, for example:
+ retroarch.override { cores = with libretro; [ citra snes9x ]; };.
+ Also, retroarchFull derivation is available
+ for those who want to have all RetroArch cores available.
+
+
@@ -1199,25 +1443,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.
@@ -1470,6 +1720,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
@@ -1602,15 +1869,6 @@ Superuser created successfully.
encapsulation.
-
-
- Changing systemd .socket units now restarts
- them and stops the service that is activated by them.
- Additionally, services with
- stopOnChange = false don’t break anymore
- when they are socket-activated.
-
-
The virtualisation.libvirtd module has been
@@ -1653,6 +1911,133 @@ Superuser created successfully.
better user experience and benefit from this change.
+
+
+ A new option
+ services.prometheus.enableReload has been
+ added which can be enabled to reload the prometheus service
+ when its config file changes instead of restarting.
+
+
+
+
+ The option
+ services.prometheus.environmentFile has
+ been removed since it was causing
+ issues
+ and Prometheus now has native support for secret files, i.e.
+ basic_auth.password_file and
+ authorization.credentials_file.
+
+
+
+
+ Dokuwiki now supports caddy! However
+
+
+
+
+ the nginx option has been removed, in the new
+ configuration, please use the
+ dokuwiki.webserver = "nginx"
+ instead.
+
+
+
+
+ The ${hostname} option has been deprecated,
+ please use
+ dokuwiki.sites = [ "${hostname}" ]
+ instead
+
+
+
+
+
+
+ The
+ services.unifi
+ module has been reworked, solving a number of issues. This
+ leads to several user facing changes:
+
+
+
+
+ The services.unifi.dataDir option is
+ removed and the data is now always located under
+ /var/lib/unifi/data. This is done to
+ make better use of systemd state direcotiry and thus
+ making the service restart more reliable.
+
+
+
+
+ The unifi logs can now be found under:
+ /var/log/unifi instead of
+ /var/lib/unifi/logs.
+
+
+
+
+ The unifi run directory can now be found under:
+ /run/unifi instead of
+ /var/lib/unifi/run.
+
+
+
+
+
+
+ security.pam.services.<name>.makeHomeDir
+ now uses umask=0077 instead of
+ umask=0022 when creating the home
+ directory.
+
+
+
+
+ Loki has had another release. Some default values have been
+ changed for the configuration and some configuration options
+ have been renamed. For more details, please check
+ the
+ upgrade guide.
+
+
+
+
+ julia now refers to
+ julia-stable instead of
+ julia-lts. In practice this means it has
+ been upgraded from 1.0.4 to
+ 1.5.4.
+
+
+
+
+ RetroArch has been upgraded from version
+ 1.8.5 to 1.9.13.2. Since
+ the previous release was quite old, if you’re having issues
+ after the upgrade, please delete your
+ $XDG_CONFIG_HOME/retroarch/retroarch.cfg
+ file.
+
+
+
+
+ hydrus has been upgraded from version 438
+ to 463. Since upgrading between releases
+ this old is advised against, be sure to have a backup of your
+ data before upgrading. For details, see
+ the
+ hydrus manual.
+
+
+
+
+ More jdk and jre versions are now exposed via
+ java-packages.compiler.
+
+
diff --git a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
new file mode 100644
index 0000000000..c84a3e3b01
--- /dev/null
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -0,0 +1,85 @@
+
+ Release 22.05 (“Quokka”, 2022.05/??)
+
+ In addition to numerous new and upgraded packages, this release has
+ the following highlights:
+
+
+
+
+ Support is planned until the end of December 2022, handing over
+ to 22.11.
+
+
+
+
+ Highlights
+
+
+
+
+ New Services
+
+
+
+
+ Backward Incompatibilities
+
+
+
+ pkgs.ghc now refers to
+ pkgs.targetPackages.haskellPackages.ghc.
+ This only makes a difference if you are
+ cross-compiling and will ensure that
+ pkgs.ghc always runs on the host platform
+ and compiles for the target platform (similar to
+ pkgs.gcc for example).
+ haskellPackages.ghc still behaves as
+ before, running on the build platform and compiling for the
+ host platform (similar to stdenv.cc). This
+ means you don’t have to adjust your derivations if you use
+ haskellPackages.callPackage, but when using
+ pkgs.callPackage and taking
+ ghc as an input, you should now use
+ buildPackages.ghc instead to ensure cross
+ compilation keeps working (or switch to
+ haskellPackages.callPackage).
+
+
+
+
+ pkgs.emacsPackages.orgPackages is removed
+ because org elpa is deprecated. The packages in the top level
+ of pkgs.emacsPackages, such as org and
+ org-contrib, refer to the ones in
+ pkgs.emacsPackages.elpaPackages and
+ pkgs.emacsPackages.nongnuPackages where the
+ new versions will release.
+
+
+
+
+ The wafHook hook now honors
+ NIX_BUILD_CORES when
+ enableParallelBuilding is not set
+ explicitly. Packages can restore the old behaviour by setting
+ enableParallelBuilding=false.
+
+
+
+
+ pkgs.claws-mail-gtk2, representing Claws
+ Mail’s older release version three, was removed in order to
+ get rid of Python 2. Please switch to
+ claws-mail, which is Claws Mail’s latest
+ release based on GTK+3 and Python 3.
+
+
+
+
+
+ Other Notable Changes
+
+
+
+
diff --git a/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md b/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
index a0823b51e9..def4f37fbc 100644
--- a/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/doc/manual/installation/upgrading.chapter.md b/third_party/nixpkgs/nixos/doc/manual/installation/upgrading.chapter.md
index b7903b9d3c..faeefc4451 100644
--- a/third_party/nixpkgs/nixos/doc/manual/installation/upgrading.chapter.md
+++ b/third_party/nixpkgs/nixos/doc/manual/installation/upgrading.chapter.md
@@ -6,7 +6,7 @@ expressions and associated binaries. The NixOS channels are updated
automatically from NixOS's Git repository after certain tests have
passed and all packages have been built. These channels are:
-- *Stable channels*, such as [`nixos-21.05`](https://nixos.org/channels/nixos-21.05).
+- *Stable channels*, such as [`nixos-21.11`](https://nixos.org/channels/nixos-21.11).
These only get conservative bug fixes and package upgrades. For
instance, a channel update may cause the Linux kernel on your system
to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
@@ -19,7 +19,7 @@ passed and all packages have been built. These channels are:
radical changes between channel updates. It's not recommended for
production systems.
-- *Small channels*, such as [`nixos-21.05-small`](https://nixos.org/channels/nixos-21.05-small)
+- *Small channels*, such as [`nixos-21.11-small`](https://nixos.org/channels/nixos-21.11-small)
or [`nixos-unstable-small`](https://nixos.org/channels/nixos-unstable-small).
These are identical to the stable and unstable channels described above,
except that they contain fewer binary packages. This means they get updated
@@ -38,8 +38,8 @@ newest supported stable release.
When you first install NixOS, you're automatically subscribed to the
NixOS channel that corresponds to your installation source. For
-instance, if you installed from a 21.05 ISO, you will be subscribed to
-the `nixos-21.05` channel. To see which NixOS channel you're subscribed
+instance, if you installed from a 21.11 ISO, you will be subscribed to
+the `nixos-21.11` channel. To see which NixOS channel you're subscribed
to, run the following as root:
```ShellSession
@@ -54,16 +54,16 @@ To switch to a different NixOS channel, do
```
(Be sure to include the `nixos` parameter at the end.) For instance, to
-use the NixOS 21.05 stable channel:
+use the NixOS 21.11 stable channel:
```ShellSession
-# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11 nixos
```
If you have a server, you may want to use the "small" channel instead:
```ShellSession
-# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11-small nixos
```
And if you want to live on the bleeding edge:
@@ -114,5 +114,5 @@ the new generation contains a different kernel, initrd or kernel
modules. You can also specify a channel explicitly, e.g.
```nix
-system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.11;
```
diff --git a/third_party/nixpkgs/nixos/doc/manual/man-nixos-install.xml b/third_party/nixpkgs/nixos/doc/manual/man-nixos-install.xml
index 91542d37cb..eb6680b656 100644
--- a/third_party/nixpkgs/nixos/doc/manual/man-nixos-install.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/man-nixos-install.xml
@@ -69,9 +69,14 @@
-
-
-
+
+
+
+
+
+
+
+
@@ -157,7 +162,7 @@
It prompts you for a password for the root account (unless
- is specified).
+ is specified).
diff --git a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md
index 4a47a50b36..48adc4ad33 100644
--- a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -1,14 +1,18 @@
-# Release 21.11 (“Porcupine”, 2021.11/??) {#sec-release-21.11}
-
-In addition to numerous new and upgraded packages, this release has the following highlights:
+# Release 21.11 (“Porcupine”, 2021/11/30) {#sec-release-21.11}
- Support is planned until the end of June 2022, handing over to 22.05.
## Highlights {#sec-release-21.11-highlights}
+In addition to numerous new and upgraded packages, this release has the following highlights:
+
+- Nix has been updated to version 2.4, reference its [release notes](https://discourse.nixos.org/t/nix-2-4-released/15822) for more information on what has changed. The previous version of Nix, 2.3.16, remains available for the time being in the `nix_2_3` package.
+
+- `iptables` now uses `nf_tables` backend.
+
- PHP now defaults to PHP 8.0, updated from 7.4.
-- kOps now defaults to 1.21.1, which uses containerd as the default runtime.
+- kops now defaults to 1.21.1, which uses containerd as the default runtime.
- `python3` now defaults to Python 3.9, updated from Python 3.8.
@@ -16,7 +20,12 @@ 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.
-- Activation scripts can now opt int to be run when running `nixos-rebuild dry-activate` and detect the dry activation by reading `$NIXOS_ACTION`.
+- 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, optionally, be run during a `nixos-rebuild dry-activate` and can 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 +42,20 @@ 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
+
+- OpenSSH was updated to version 8.8p1
+ - This breaks connections to old SSH daemons as ssh-rsa host keys and ssh-rsa public keys that were signed with SHA-1 are disabled by default now
+ - These can be re-enabled, see the [OpenSSH changelog](https://www.openssh.com/txt/release-8.8) for details
+
+- ORY Kratos was updated to version 0.8.0-alpha.3
+ - This release requires you to run SQL migrations. Please, as always, create a backup of your database first!
+ - The SDKs are now generated with tag v0alpha2 to reflect that some signatures have changed in a breaking fashion. Please update your imports from v0alpha1 to v0alpha2.
+ - The SMTPS scheme used in courier config URL with cleartext/StartTLS/TLS SMTP connection types is now only supporting implicit TLS. For StartTLS and cleartext SMTP, please use the SMTP scheme instead.
+ - for more details, see [Release Notes](https://github.com/ory/kratos/releases/tag/v0.8.0-alpha.1).
+
## 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).
@@ -45,11 +68,11 @@ In addition to numerous new and upgraded packages, this release has the followin
- [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).
+- [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea.dhcp4).
-- [owncast](https://owncast.online/), self-hosted video live streaming solution. Available at [services.owncast](options.html#opt-services.owncast).
+- [owncast](https://owncast.online/), self-hosted video live streaming solution. Available at [services.owncast](options.html#opt-services.owncast.enable).
-- [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).
+- [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.enable).
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
@@ -116,13 +139,29 @@ In addition to numerous new and upgraded packages, this release has the followin
- [seafile](https://www.seafile.com/en/home/), an open source file syncing & sharing software. Available as [services.seafile](options.html#opt-services.seafile.enable).
+- [rasdaemon](https://github.com/mchehab/rasdaemon), a hardware error logging daemon. Available as [hardware.rasdaemon](#opt-hardware.rasdaemon.enable).
+
+- `code-server`-module now available
+
+- [xmrig](https://github.com/xmrig/xmrig), a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and RandomX benchmark.
+
+- Auto nice daemons [ananicy](https://github.com/Nefelim4ag/Ananicy) and [ananicy-cpp](https://gitlab.com/ananicy-cpp/ananicy-cpp/). Available as [services.ananicy](#opt-services.ananicy.enable).
+
+- [smartctl_exporter](https://github.com/prometheus-community/smartctl_exporter), a Prometheus exporter for [S.M.A.R.T.](https://en.wikipedia.org/wiki/S.M.A.R.T.) data. Available as [services.prometheus.exporters.smartctl](options.html#opt-services.prometheus.exporters.smartctl.enable).
+
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
+- The NixOS VM test framework, `pkgs.nixosTest`/`make-test-python.nix`, now requires detaching commands such as `succeed("foo &")` and `succeed("foo | xclip -i")` to close stdout.
+ This can be done with a redirect such as `succeed("foo >&2 &")`. This breaking change was necessitated by a race condition causing tests to fail or hang.
+ It applies to all methods that invoke commands on the nodes, including `execute`, `succeed`, `fail`, `wait_until_succeeds`, `wait_until_fails`.
+
- The `services.wakeonlan` option was removed, and replaced with `networking.interfaces..wakeOnLan`.
- The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set.
This is motivated by the fact that before NixOS 21.11, specifying either setuid or setgid but not owner/group resulted in wrappers owned by nobody/nogroup, which is unsafe.
+- Since `iptables` now uses `nf_tables` backend and `ipset` doesn't support it, some applications (ferm, shorewall, firehol) may have limited functionality.
+
- The `paperless` module and package have been removed. All users should migrate to the
successor `paperless-ng` instead. The Paperless project [has been
archived](https://github.com/the-paperless-project/paperless/commit/9b0063c9731f7c5f65b1852cb8caff97f5e40ba4)
@@ -173,7 +212,7 @@ In addition to numerous new and upgraded packages, this release has the followin
Superuser created successfully.
```
-- The `staticjinja` package has been upgraded from 1.0.4 to 4.1.0
+- The `staticjinja` package has been upgraded from 1.0.4 to 4.1.1
- Firefox v91 does not support addons with invalid signature anymore. Firefox ESR needs to be used for nix addon support.
@@ -202,6 +241,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;`.
@@ -355,23 +396,38 @@ 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.
+- `nix.daemonNiceLevel` and `nix.daemonIONiceLevel` have been removed in favour of the new options [`nix.daemonCPUSchedPolicy`](options.html#opt-nix.daemonCPUSchedPolicy), [`nix.daemonIOSchedClass`](options.html#opt-nix.daemonIOSchedClass) and [`nix.daemonIOSchedPriority`](options.html#opt-nix.daemonIOSchedPriority). Please refer to the options documentation and the `sched(7)` and `ioprio_set(2)` man pages for guidance on how to use them.
+
- 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.
+- The `fluidsynth_1` attribute has been removed, as this legacy version is no longer needed in nixpkgs. The actively maintained 2.x series is available as `fluidsynth` unchanged.
+
- 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`.
+
+- The default GNAT version has been changed: The `gnat` attribute now points to `gnat11`
+ instead of `gnat9`.
+
+- `retroArchCores` has been removed. This means that using `nixpkgs.config.retroarch` to customize RetroArch cores is not supported anymore. Instead, use package overrides, for example: `retroarch.override { cores = with libretro; [ citra snes9x ]; };`. Also, `retroarchFull` derivation is available for those who want to have all RetroArch cores available.
+
## 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.
@@ -433,6 +489,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.
@@ -464,11 +522,34 @@ In addition to numerous new and upgraded packages, this release has the followin
- `networking.sits` now supports Foo-over-UDP encapsulation.
-- Changing systemd `.socket` units now restarts them and stops the service that is activated by them. Additionally, services with `stopOnChange = false` don't break anymore when they are socket-activated.
-
- The `virtualisation.libvirtd` module has been refactored and updated with new options:
- `virtualisation.libvirtd.qemu*` options (e.g.: `virtualisation.libvirtd.qemuRunAsRoot`) were moved to [`virtualisation.libvirtd.qemu`](options.html#opt-virtualisation.libvirtd.qemu) submodule,
- software TPM1/TPM2 support (e.g.: Windows 11 guests) ([`virtualisation.libvirtd.qemu.swtpm`](options.html#opt-virtualisation.libvirtd.qemu.swtpm)),
- custom OVMF package (e.g.: `pkgs.OVMFFull` with HTTP, CSM and Secure Boot support) ([`virtualisation.libvirtd.qemu.ovmf.package`](options.html#opt-virtualisation.libvirtd.qemu.ovmf.package)).
- The `cawbird` Twitter client now uses its own API keys to count as different application than upstream builds. This is done to evade application-level rate limiting. While existing accounts continue to work, users may want to remove and re-register their account in the client to enjoy a better user experience and benefit from this change.
+
+- A new option `services.prometheus.enableReload` has been added which can be enabled to reload the prometheus service when its config file changes instead of restarting.
+
+- The option `services.prometheus.environmentFile` has been removed since it was causing [issues](https://github.com/NixOS/nixpkgs/issues/126083) and Prometheus now has native support for secret files, i.e. `basic_auth.password_file` and `authorization.credentials_file`.
+
+- Dokuwiki now supports caddy! However
+ - the nginx option has been removed, in the new configuration, please use the `dokuwiki.webserver = "nginx"` instead.
+ - The "${hostname}" option has been deprecated, please use `dokuwiki.sites = [ "${hostname}" ]` instead
+
+- The [services.unifi](options.html#opt-services.unifi.enable) module has been reworked, solving a number of issues. This leads to several user facing changes:
+ - The `services.unifi.dataDir` option is removed and the data is now always located under `/var/lib/unifi/data`. This is done to make better use of systemd state direcotiry and thus making the service restart more reliable.
+ - The unifi logs can now be found under: `/var/log/unifi` instead of `/var/lib/unifi/logs`.
+ - The unifi run directory can now be found under: `/run/unifi` instead of `/var/lib/unifi/run`.
+
+- `security.pam.services..makeHomeDir` now uses `umask=0077` instead of `umask=0022` when creating the home directory.
+
+- Loki has had another release. Some default values have been changed for the configuration and some configuration options have been renamed. For more details, please check [the upgrade guide](https://grafana.com/docs/loki/latest/upgrading/#240).
+
+- `julia` now refers to `julia-stable` instead of `julia-lts`. In practice this means it has been upgraded from `1.0.4` to `1.5.4`.
+
+- RetroArch has been upgraded from version `1.8.5` to `1.9.13.2`. Since the previous release was quite old, if you're having issues after the upgrade, please delete your `$XDG_CONFIG_HOME/retroarch/retroarch.cfg` file.
+
+- hydrus has been upgraded from version `438` to `463`. Since upgrading between releases this old is advised against, be sure to have a backup of your data before upgrading. For details, see [the hydrus manual](https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#big_updates).
+
+- More jdk and jre versions are now exposed via `java-packages.compiler`.
diff --git a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md
new file mode 100644
index 0000000000..45ed69cf1b
--- /dev/null
+++ b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -0,0 +1,35 @@
+# Release 22.05 (“Quokka”, 2022.05/??) {#sec-release-22.05}
+
+In addition to numerous new and upgraded packages, this release has the following highlights:
+
+- Support is planned until the end of December 2022, handing over to 22.11.
+
+## Highlights {#sec-release-22.05-highlights}
+
+## New Services {#sec-release-22.05-new-services}
+
+## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
+
+- `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`.
+ This *only* makes a difference if you are cross-compiling and will
+ ensure that `pkgs.ghc` always runs on the host platform and compiles
+ for the target platform (similar to `pkgs.gcc` for example).
+ `haskellPackages.ghc` still behaves as before, running on the build
+ platform and compiling for the host platform (similar to `stdenv.cc`).
+ This means you don't have to adjust your derivations if you use
+ `haskellPackages.callPackage`, but when using `pkgs.callPackage` and
+ taking `ghc` as an input, you should now use `buildPackages.ghc`
+ instead to ensure cross compilation keeps working (or switch to
+ `haskellPackages.callPackage`).
+
+- `pkgs.emacsPackages.orgPackages` is removed because org elpa is deprecated.
+ The packages in the top level of `pkgs.emacsPackages`, such as org and
+ org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
+ `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
+
+- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
+
+- `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
+ Please switch to `claws-mail`, which is Claws Mail's latest release based on GTK+3 and Python 3.
+
+## Other Notable Changes {#sec-release-22.05-notable-changes}
diff --git a/third_party/nixpkgs/nixos/lib/eval-config.nix b/third_party/nixpkgs/nixos/lib/eval-config.nix
index 15429a7160..74b52daa3c 100644
--- a/third_party/nixpkgs/nixos/lib/eval-config.nix
+++ b/third_party/nixpkgs/nixos/lib/eval-config.nix
@@ -51,23 +51,28 @@ let
};
};
-in rec {
-
- # Merge the option definitions in all modules, forming the full
- # system configuration.
- inherit (lib.evalModules {
+ noUserModules = lib.evalModules {
inherit prefix check;
- modules = baseModules ++ extraModules ++ [ pkgsModule ] ++ modules;
+ modules = baseModules ++ extraModules ++ [ pkgsModule ];
args = extraArgs;
specialArgs =
{ modulesPath = builtins.toString ../modules; } // specialArgs;
- }) config options _module;
+ };
# These are the extra arguments passed to every module. In
# particular, Nixpkgs is passed through the "pkgs" argument.
extraArgs = extraArgs_ // {
- inherit baseModules extraModules modules;
+ inherit noUserModules baseModules extraModules modules;
};
+in rec {
+
+ # Merge the option definitions in all modules, forming the full
+ # system configuration.
+ inherit (noUserModules.extendModules { inherit modules; })
+ config options _module type;
+
+ inherit extraArgs;
+
inherit (_module.args) pkgs;
}
diff --git a/third_party/nixpkgs/nixos/lib/make-disk-image.nix b/third_party/nixpkgs/nixos/lib/make-disk-image.nix
index 55643facea..15302ae824 100644
--- a/third_party/nixpkgs/nixos/lib/make-disk-image.nix
+++ b/third_party/nixpkgs/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 --extra-experimental-features nix-command 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/third_party/nixpkgs/nixos/lib/make-zfs-image.nix b/third_party/nixpkgs/nixos/lib/make-zfs-image.nix
index 40648ca24d..a84732aa11 100644
--- a/third_party/nixpkgs/nixos/lib/make-zfs-image.nix
+++ b/third_party/nixpkgs/nixos/lib/make-zfs-image.nix
@@ -241,7 +241,7 @@ let
pkgs.vmTools.override {
rootModules =
[ "zfs" "9p" "9pnet_virtio" "virtio_pci" "virtio_blk" ] ++
- (pkgs.lib.optional (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) "rtc_cmos");
+ (pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos");
kernel = modulesTree;
}
).runInLinuxVM (
diff --git a/third_party/nixpkgs/nixos/lib/qemu-common.nix b/third_party/nixpkgs/nixos/lib/qemu-common.nix
index 84f9060acd..f3af85040b 100644
--- a/third_party/nixpkgs/nixos/lib/qemu-common.nix
+++ b/third_party/nixpkgs/nixos/lib/qemu-common.nix
@@ -17,12 +17,12 @@ rec {
''-netdev vde,id=vlan${toString nic},sock="$QEMU_VDE_SOCKET_${toString net}"''
];
- qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
+ qemuSerialDevice = if pkgs.stdenv.hostPlatform.isx86 then "ttyS0"
else if (with pkgs.stdenv.hostPlatform; isAarch32 || isAarch64 || isPower) then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
qemuBinary = qemuPkg: {
- x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
+ x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu qemu64";
armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
diff --git a/third_party/nixpkgs/nixos/lib/test-driver/test-driver.py b/third_party/nixpkgs/nixos/lib/test-driver/test-driver.py
index e4d93418a2..90c9e9be45 100755
--- a/third_party/nixpkgs/nixos/lib/test-driver/test-driver.py
+++ b/third_party/nixpkgs/nixos/lib/test-driver/test-driver.py
@@ -4,6 +4,7 @@ from queue import Queue, Empty
from typing import Tuple, Any, Callable, Dict, Iterator, Optional, List, Iterable
from xml.sax.saxutils import XMLGenerator
from colorama import Style
+from pathlib import Path
import queue
import io
import threading
@@ -11,7 +12,6 @@ import argparse
import base64
import codecs
import os
-import pathlib
import ptpython.repl
import pty
import re
@@ -171,7 +171,7 @@ class Logger:
yield
self.drain_log_queue()
toc = time.time()
- self.log("({:.2f} seconds)".format(toc - tic))
+ self.log("(finished: {}, in {:.2f} seconds)".format(message, toc - tic))
self.xml.endElement("nest")
@@ -239,8 +239,8 @@ class StartCommand:
def cmd(
self,
- monitor_socket_path: pathlib.Path,
- shell_socket_path: pathlib.Path,
+ monitor_socket_path: Path,
+ shell_socket_path: Path,
allow_reboot: bool = False, # TODO: unused, legacy?
) -> str:
display_opts = ""
@@ -272,8 +272,8 @@ class StartCommand:
@staticmethod
def build_environment(
- state_dir: pathlib.Path,
- shared_dir: pathlib.Path,
+ state_dir: Path,
+ shared_dir: Path,
) -> dict:
# We make a copy to not update the current environment
env = dict(os.environ)
@@ -288,10 +288,10 @@ class StartCommand:
def run(
self,
- state_dir: pathlib.Path,
- shared_dir: pathlib.Path,
- monitor_socket_path: pathlib.Path,
- shell_socket_path: pathlib.Path,
+ state_dir: Path,
+ shared_dir: Path,
+ monitor_socket_path: Path,
+ shell_socket_path: Path,
) -> subprocess.Popen:
return subprocess.Popen(
self.cmd(monitor_socket_path, shell_socket_path),
@@ -334,7 +334,7 @@ class LegacyStartCommand(StartCommand):
self,
netBackendArgs: Optional[str] = None,
netFrontendArgs: Optional[str] = None,
- hda: Optional[Tuple[pathlib.Path, str]] = None,
+ hda: Optional[Tuple[Path, str]] = None,
cdrom: Optional[str] = None,
usb: Optional[str] = None,
bios: Optional[str] = None,
@@ -394,11 +394,11 @@ class Machine:
the machine lifecycle with the help of a start script / command."""
name: str
- tmp_dir: pathlib.Path
- shared_dir: pathlib.Path
- state_dir: pathlib.Path
- monitor_path: pathlib.Path
- shell_path: pathlib.Path
+ tmp_dir: Path
+ shared_dir: Path
+ state_dir: Path
+ monitor_path: Path
+ shell_path: Path
start_command: StartCommand
keep_vm_state: bool
@@ -421,7 +421,7 @@ class Machine:
def __init__(
self,
- tmp_dir: pathlib.Path,
+ tmp_dir: Path,
start_command: StartCommand,
name: str = "machine",
keep_vm_state: bool = False,
@@ -463,7 +463,7 @@ class Machine:
hda = None
if args.get("hda"):
hda_arg: str = args.get("hda", "")
- hda_arg_path: pathlib.Path = pathlib.Path(hda_arg)
+ hda_arg_path: Path = Path(hda_arg)
hda = (hda_arg_path, args.get("hdaInterface", ""))
return LegacyStartCommand(
netBackendArgs=args.get("netBackendArgs"),
@@ -490,23 +490,24 @@ class Machine:
return rootlog.nested(msg, my_attrs)
def wait_for_monitor_prompt(self) -> str:
- assert self.monitor is not None
- answer = ""
- while True:
- undecoded_answer = self.monitor.recv(1024)
- if not undecoded_answer:
- break
- answer += undecoded_answer.decode()
- if answer.endswith("(qemu) "):
- break
- return answer
+ with self.nested("waiting for monitor prompt"):
+ assert self.monitor is not None
+ answer = ""
+ while True:
+ undecoded_answer = self.monitor.recv(1024)
+ if not undecoded_answer:
+ break
+ answer += undecoded_answer.decode()
+ if answer.endswith("(qemu) "):
+ break
+ return answer
def send_monitor_command(self, command: str) -> str:
- message = ("{}\n".format(command)).encode()
- self.log("sending monitor command: {}".format(command))
- assert self.monitor is not None
- self.monitor.send(message)
- return self.wait_for_monitor_prompt()
+ with self.nested("sending monitor command: {}".format(command)):
+ message = ("{}\n".format(command)).encode()
+ assert self.monitor is not None
+ self.monitor.send(message)
+ return self.wait_for_monitor_prompt()
def wait_for_unit(self, unit: str, user: Optional[str] = None) -> None:
"""Wait for a systemd unit to get into "active" state.
@@ -533,7 +534,12 @@ class Machine:
return state == "active"
- retry(check_active)
+ with self.nested(
+ "waiting for unit {}{}".format(
+ unit, f" with user {user}" if user is not None else ""
+ )
+ ):
+ retry(check_active)
def get_unit_info(self, unit: str, user: Optional[str] = None) -> Dict[str, str]:
status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user)
@@ -581,24 +587,45 @@ 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, timeout: Optional[int] = 900
+ ) -> Tuple[int, str]:
self.connect()
- out_command = "( set -euo pipefail; {} ); echo '|!=EOF' $?\n".format(command)
+ if timeout is not None:
+ command = "timeout {} sh -c {}".format(timeout, shlex.quote(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
@@ -613,12 +640,12 @@ class Machine:
pass_fds=[self.shell.fileno()],
)
- def succeed(self, *commands: str) -> str:
+ def succeed(self, *commands: str, timeout: Optional[int] = None) -> str:
"""Execute each command and check that it succeeds."""
output = ""
for command in commands:
with self.nested("must succeed: {}".format(command)):
- (status, out) = self.execute(command)
+ (status, out) = self.execute(command, timeout=timeout)
if status != 0:
self.log("output: {}".format(out))
raise Exception(
@@ -627,12 +654,12 @@ class Machine:
output += out
return output
- def fail(self, *commands: str) -> str:
+ def fail(self, *commands: str, timeout: Optional[int] = None) -> str:
"""Execute each command and check that it fails."""
output = ""
for command in commands:
with self.nested("must fail: {}".format(command)):
- (status, out) = self.execute(command)
+ (status, out) = self.execute(command, timeout=timeout)
if status == 0:
raise Exception(
"command `{}` unexpectedly succeeded".format(command)
@@ -648,14 +675,14 @@ class Machine:
def check_success(_: Any) -> bool:
nonlocal output
- status, output = self.execute(command)
+ status, output = self.execute(command, timeout=timeout)
return status == 0
with self.nested("waiting for success: {}".format(command)):
retry(check_success, timeout)
return output
- def wait_until_fails(self, command: str) -> str:
+ def wait_until_fails(self, command: str, timeout: int = 900) -> str:
"""Wait until a command returns failure.
Throws an exception on timeout.
"""
@@ -663,7 +690,7 @@ class Machine:
def check_failure(_: Any) -> bool:
nonlocal output
- status, output = self.execute(command)
+ status, output = self.execute(command, timeout=timeout)
return status != 0
with self.nested("waiting for failure: {}".format(command)):
@@ -736,7 +763,8 @@ class Machine:
status, _ = self.execute("nc -z localhost {}".format(port))
return status != 0
- retry(port_is_closed)
+ with self.nested("waiting for TCP port {} to be closed"):
+ retry(port_is_closed)
def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
return self.systemctl("start {}".format(jobname), user)
@@ -798,12 +826,12 @@ class Machine:
"""Copy a file from the host into the guest via the `shared_dir` shared
among all the VMs (using a temporary directory).
"""
- host_src = pathlib.Path(source)
- vm_target = pathlib.Path(target)
+ host_src = Path(source)
+ vm_target = Path(target)
with tempfile.TemporaryDirectory(dir=self.shared_dir) as shared_td:
- shared_temp = pathlib.Path(shared_td)
+ shared_temp = Path(shared_td)
host_intermediate = shared_temp / host_src.name
- vm_shared_temp = pathlib.Path("/tmp/shared") / shared_temp.name
+ vm_shared_temp = Path("/tmp/shared") / shared_temp.name
vm_intermediate = vm_shared_temp / host_src.name
self.succeed(make_command(["mkdir", "-p", vm_shared_temp]))
@@ -820,11 +848,11 @@ class Machine:
all the VMs (using a temporary directory).
"""
# Compute the source, target, and intermediate shared file names
- out_dir = pathlib.Path(os.environ.get("out", os.getcwd()))
- vm_src = pathlib.Path(source)
+ out_dir = Path(os.environ.get("out", os.getcwd()))
+ vm_src = Path(source)
with tempfile.TemporaryDirectory(dir=self.shared_dir) as shared_td:
- shared_temp = pathlib.Path(shared_td)
- vm_shared_temp = pathlib.Path("/tmp/shared") / shared_temp.name
+ shared_temp = Path(shared_td)
+ vm_shared_temp = Path("/tmp/shared") / shared_temp.name
vm_intermediate = vm_shared_temp / vm_src.name
intermediate = shared_temp / vm_src.name
# Copy the file to the shared directory inside VM
@@ -870,24 +898,25 @@ class Machine:
retry(screen_matches)
def wait_for_console_text(self, regex: str) -> None:
- self.log("waiting for {} to appear on console".format(regex))
- # Buffer the console output, this is needed
- # to match multiline regexes.
- console = io.StringIO()
- while True:
- try:
- console.write(self.last_lines.get())
- except queue.Empty:
- self.sleep(1)
- continue
- console.seek(0)
- matches = re.search(regex, console.read())
- if matches is not None:
- return
+ with self.nested("waiting for {} to appear on console".format(regex)):
+ # Buffer the console output, this is needed
+ # to match multiline regexes.
+ console = io.StringIO()
+ while True:
+ try:
+ console.write(self.last_lines.get())
+ except queue.Empty:
+ self.sleep(1)
+ continue
+ console.seek(0)
+ matches = re.search(regex, console.read())
+ if matches is not None:
+ return
def send_key(self, key: str) -> None:
key = CHAR_TO_KEY.get(key, key)
self.send_monitor_command("sendkey {}".format(key))
+ time.sleep(0.01)
def start(self) -> None:
if self.booted:
@@ -895,12 +924,12 @@ class Machine:
self.log("starting vm")
- def clear(path: pathlib.Path) -> pathlib.Path:
+ def clear(path: Path) -> Path:
if path.exists():
path.unlink()
return path
- def create_socket(path: pathlib.Path) -> socket.socket:
+ def create_socket(path: Path) -> socket.socket:
s = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM)
s.bind(str(path))
s.listen(1)
@@ -998,7 +1027,7 @@ class Machine:
)
return any(pattern.search(name) for name in names)
- with self.nested("Waiting for a window to appear"):
+ with self.nested("waiting for a window to appear"):
retry(window_is_visible)
def sleep(self, secs: int) -> None:
@@ -1045,7 +1074,7 @@ class VLan:
"""
nr: int
- socket_dir: pathlib.Path
+ socket_dir: Path
process: subprocess.Popen
pid: int
@@ -1054,7 +1083,7 @@ class VLan:
def __repr__(self) -> str:
return f""
- def __init__(self, nr: int, tmp_dir: pathlib.Path):
+ def __init__(self, nr: int, tmp_dir: Path):
self.nr = nr
self.socket_dir = tmp_dir / f"vde{self.nr}.ctl"
@@ -1107,7 +1136,7 @@ class Driver:
):
self.tests = tests
- tmp_dir = pathlib.Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
+ tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
tmp_dir.mkdir(mode=0o700, exist_ok=True)
with rootlog.nested("start all VLans"):
@@ -1167,9 +1196,11 @@ class Driver:
serial_stdout_on=self.serial_stdout_on,
Machine=Machine, # for typing
)
- machine_symbols = {
- m.name: self.machines[idx] for idx, m in enumerate(self.machines)
- }
+ machine_symbols = {m.name: m for m in self.machines}
+ # If there's exactly one machine, make it available under the name
+ # "machine", even if it's not called that.
+ if len(self.machines) == 1:
+ (machine_symbols["machine"],) = self.machines
vlan_symbols = {
f"vlan{v.nr}": self.vlans[idx] for idx, v in enumerate(self.vlans)
}
@@ -1214,7 +1245,7 @@ class Driver:
"Using legacy create_machine(), please instantiate the"
"Machine class directly, instead"
)
- tmp_dir = pathlib.Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
+ tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
tmp_dir.mkdir(mode=0o700, exist_ok=True)
if args.get("startCommand"):
@@ -1300,7 +1331,7 @@ if __name__ == "__main__":
action=EnvDefault,
envvar="testScript",
help="the test script to run",
- type=pathlib.Path,
+ type=Path,
)
args = arg_parser.parse_args()
diff --git a/third_party/nixpkgs/nixos/lib/testing-python.nix b/third_party/nixpkgs/nixos/lib/testing-python.nix
index dbba9e4c44..4306d102b2 100644
--- a/third_party/nixpkgs/nixos/lib/testing-python.nix
+++ b/third_party/nixpkgs/nixos/lib/testing-python.nix
@@ -134,7 +134,9 @@ rec {
vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes);
vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
- nodeHostNames = map (c: c.config.system.name) (lib.attrValues nodes);
+ nodeHostNames = let
+ nodesList = map (c: c.config.system.name) (lib.attrValues nodes);
+ in nodesList ++ lib.optional (lib.length nodesList == 1) "machine";
# TODO: This is an implementation error and needs fixing
# the testing famework cannot legitimately restrict hostnames further
@@ -209,11 +211,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/third_party/nixpkgs/nixos/lib/utils.nix b/third_party/nixpkgs/nixos/lib/utils.nix
index 439b627dc3..f1fa9f07a9 100644
--- a/third_party/nixpkgs/nixos/lib/utils.nix
+++ b/third_party/nixpkgs/nixos/lib/utils.nix
@@ -10,7 +10,7 @@ rec {
# Check whenever fileSystem is needed for boot. NOTE: Make sure
# pathsNeededForBoot is closed under the parent relationship, i.e. if /a/b/c
# is in the list, put /a and /a/b in as well.
- pathsNeededForBoot = [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/var/lib/nixos" "/etc" ];
+ pathsNeededForBoot = [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/var/lib/nixos" "/etc" "/usr" ];
fsNeededForBoot = fs: fs.neededForBoot || elem fs.mountPoint pathsNeededForBoot;
# Check whenever `b` depends on `a` as a fileSystem
diff --git a/third_party/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix b/third_party/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
index fcb369e87f..6358ec68f7 100644
--- a/third_party/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/third_party/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -4,6 +4,7 @@ with lib;
let
cfg = config.amazonImage;
+ amiBootMode = if config.ec2.efi then "uefi" else "legacy-bios";
in {
@@ -106,10 +107,12 @@ in {
--arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \
--arg root_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
--arg boot_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$bootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+ --arg boot_mode "${amiBootMode}" \
--arg root "$rootDisk" \
--arg boot "$bootDisk" \
'{}
| .label = $system_label
+ | .boot_mode = $boot_mode
| .system = $system
| .disks.boot.logical_bytes = $boot_logical_bytes
| .disks.boot.file = $boot
@@ -145,9 +148,11 @@ in {
--arg system_label ${lib.escapeShellArg config.system.nixos.label} \
--arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \
--arg logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$diskImage" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+ --arg boot_mode "${amiBootMode}" \
--arg file "$diskImage" \
'{}
| .label = $system_label
+ | .boot_mode = $boot_mode
| .system = $system
| .logical_bytes = $logical_bytes
| .file = $file
diff --git a/third_party/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh b/third_party/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh
index 712d9b548f..797fe03e20 100755
--- a/third_party/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/third_party/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -1,6 +1,9 @@
#!/usr/bin/env nix-shell
#!nix-shell -p awscli -p jq -p qemu -i bash
# shellcheck shell=bash
+#
+# Future Deprecation?
+# This entire thing should probably be replaced with a generic terraform config
# Uploads and registers NixOS images built from the
# amazonImage attribute. Images are uploaded and
@@ -65,13 +68,18 @@ read_image_info() {
# We handle a single image per invocation, store all attributes in
# globals for convenience.
zfs_disks=$(read_image_info .disks)
-image_label="$(read_image_info .label)${zfs_disks:+-ZFS}"
+is_zfs_image=
+if jq -e .boot <<< "$zfs_disks"; then
+ is_zfs_image=1
+ zfs_boot=".disks.boot"
+fi
+image_label="$(read_image_info .label)${is_zfs_image:+-ZFS}"
image_system=$(read_image_info .system)
-image_files=( $(read_image_info "${zfs_disks:+.disks.root}.file") )
+image_files=( $(read_image_info ".disks.root.file") )
-image_logical_bytes=$(read_image_info "${zfs_disks:+.disks.boot}.logical_bytes")
+image_logical_bytes=$(read_image_info "${zfs_boot:-.disks.root}.logical_bytes")
-if [[ -n "$zfs_disks" ]]; then
+if [[ -n "$is_zfs_image" ]]; then
image_files+=( $(read_image_info .disks.boot.file) )
fi
@@ -192,7 +200,7 @@ upload_image() {
for image_file in "${image_files[@]}"; do
local aws_path=${image_file#/}
- if [[ -n "$zfs_disks" ]]; then
+ if [[ -n "$is_zfs_image" ]]; then
local suffix=${image_file%.*}
suffix=${suffix##*.}
fi
@@ -239,7 +247,7 @@ upload_image() {
"DeviceName=/dev/xvda,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
)
- if [[ -n "$zfs_disks" ]]; then
+ if [[ -n "$is_zfs_image" ]]; then
local root_snapshot_id=$(read_state "$region.$image_label.root.$image_system" snapshot_id)
local root_image_logical_bytes=$(read_image_info ".disks.root.logical_bytes")
@@ -270,6 +278,7 @@ upload_image() {
--region "$region" \
--architecture $amazon_arch \
--block-device-mappings "${block_device_mappings[@]}" \
+ --boot-mode $(read_image_info .boot_mode) \
"${extra_flags[@]}" \
| jq -r '.ImageId'
)
diff --git a/third_party/nixpkgs/nixos/maintainers/scripts/lxd/lxd-image-inner.nix b/third_party/nixpkgs/nixos/maintainers/scripts/lxd/lxd-image-inner.nix
new file mode 100644
index 0000000000..74634fd167
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/maintainers/scripts/lxd/lxd-image.nix b/third_party/nixpkgs/nixos/maintainers/scripts/lxd/lxd-image.nix
new file mode 100644
index 0000000000..c76b9fcc7f
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/maintainers/scripts/lxd/nix.tpl b/third_party/nixpkgs/nixos/maintainers/scripts/lxd/nix.tpl
new file mode 100644
index 0000000000..307258ddc6
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/config/fonts/fontdir.nix b/third_party/nixpkgs/nixos/modules/config/fonts/fontdir.nix
index db4b6c638a..560918302c 100644
--- a/third_party/nixpkgs/nixos/modules/config/fonts/fontdir.nix
+++ b/third_party/nixpkgs/nixos/modules/config/fonts/fontdir.nix
@@ -39,6 +39,7 @@ in
decompressFonts = mkOption {
type = types.bool;
default = config.programs.xwayland.enable;
+ defaultText = literalExpression "config.programs.xwayland.enable";
description = ''
Whether to decompress fonts in
/run/current-system/sw/share/X11/fonts.
diff --git a/third_party/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix b/third_party/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix
index 7441f4de40..ff9aa7c6a0 100644
--- a/third_party/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix
+++ b/third_party/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix
@@ -6,6 +6,7 @@ with lib;
gtk.iconCache.enable = mkOption {
type = types.bool;
default = config.services.xserver.enable;
+ defaultText = literalExpression "config.services.xserver.enable";
description = ''
Whether to build icon theme caches for GTK applications.
'';
diff --git a/third_party/nixpkgs/nixos/modules/config/i18n.nix b/third_party/nixpkgs/nixos/modules/config/i18n.nix
index 545d4a3dca..5b8d5b2144 100644
--- a/third_party/nixpkgs/nixos/modules/config/i18n.nix
+++ b/third_party/nixpkgs/nixos/modules/config/i18n.nix
@@ -14,6 +14,12 @@ with lib;
allLocales = any (x: x == "all") config.i18n.supportedLocales;
locales = config.i18n.supportedLocales;
};
+ defaultText = literalExpression ''
+ pkgs.buildPackages.glibcLocales.override {
+ allLocales = any (x: x == "all") config.i18n.supportedLocales;
+ locales = config.i18n.supportedLocales;
+ }
+ '';
example = literalExpression "pkgs.glibcLocales";
description = ''
Customized pkg.glibcLocales package.
diff --git a/third_party/nixpkgs/nixos/modules/config/swap.nix b/third_party/nixpkgs/nixos/modules/config/swap.nix
index ff2ae1da31..2b94b954cb 100644
--- a/third_party/nixpkgs/nixos/modules/config/swap.nix
+++ b/third_party/nixpkgs/nixos/modules/config/swap.nix
@@ -47,6 +47,15 @@ let
'';
};
+ allowDiscards = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Whether to allow TRIM requests to the underlying device. This option
+ has security implications; please read the LUKS documentation before
+ activating it.
+ '';
+ };
};
};
@@ -194,7 +203,6 @@ in
];
# Create missing swapfiles.
- # FIXME: support changing the size of existing swapfiles.
systemd.services =
let
@@ -214,17 +222,14 @@ in
${optionalString (sw.size != null) ''
currentSize=$(( $(stat -c "%s" "${sw.device}" 2>/dev/null || echo 0) / 1024 / 1024 ))
if [ "${toString sw.size}" != "$currentSize" ]; then
- fallocate -l ${toString sw.size}M "${sw.device}" ||
- dd if=/dev/zero of="${sw.device}" bs=1M count=${toString sw.size}
- if [ "${toString sw.size}" -lt "$currentSize" ]; then
- truncate --size "${toString sw.size}M" "${sw.device}"
- fi
+ dd if=/dev/zero of="${sw.device}" bs=1M count=${toString sw.size}
chmod 0600 ${sw.device}
${optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"}
fi
''}
${optionalString sw.randomEncryption.enable ''
- cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} ${optionalString (sw.discardPolicy != null) "--allow-discards"} ${sw.device} ${sw.deviceName}
+ cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} \
+ ${optionalString sw.randomEncryption.allowDiscards "--allow-discards"} ${sw.device} ${sw.deviceName}
mkswap ${sw.realDevice}
''}
'';
diff --git a/third_party/nixpkgs/nixos/modules/config/users-groups.nix b/third_party/nixpkgs/nixos/modules/config/users-groups.nix
index 629905e609..a34d281434 100644
--- a/third_party/nixpkgs/nixos/modules/config/users-groups.nix
+++ b/third_party/nixpkgs/nixos/modules/config/users-groups.nix
@@ -558,6 +558,7 @@ in {
input.gid = ids.gids.input;
kvm.gid = ids.gids.kvm;
render.gid = ids.gids.render;
+ sgx.gid = ids.gids.sgx;
shadow.gid = ids.gids.shadow;
};
diff --git a/third_party/nixpkgs/nixos/modules/hardware/all-firmware.nix b/third_party/nixpkgs/nixos/modules/hardware/all-firmware.nix
index bdf9081674..ce87f9e8be 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/all-firmware.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/all-firmware.nix
@@ -83,7 +83,7 @@ in {
b43Firmware_5_1_138
b43Firmware_6_30_163_46
b43FirmwareCutter
- ] ++ optional (pkgs.stdenv.hostPlatform.isi686 || pkgs.stdenv.hostPlatform.isx86_64) facetimehd-firmware;
+ ] ++ optional pkgs.stdenv.hostPlatform.isx86 facetimehd-firmware;
})
(mkIf cfg.wirelessRegulatoryDatabase {
hardware.firmware = [ pkgs.wireless-regdb ];
diff --git a/third_party/nixpkgs/nixos/modules/hardware/flirc.nix b/third_party/nixpkgs/nixos/modules/hardware/flirc.nix
new file mode 100644
index 0000000000..94ec715b9f
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/hardware/printers.nix b/third_party/nixpkgs/nixos/modules/hardware/printers.nix
index 7bab4f7038..ef07542950 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/printers.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix b/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix
index c480cc481d..ac72b65250 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix
@@ -12,6 +12,5 @@ with lib;
boot.loader.systemd-boot.consoleMode = mkDefault "1";
# TODO Find reasonable defaults X11 & wayland
- services.xserver.dpi = lib.mkDefault 192;
};
}
diff --git a/third_party/nixpkgs/nixos/modules/hardware/video/nvidia.nix b/third_party/nixpkgs/nixos/modules/hardware/video/nvidia.nix
index 8f6b5c22ea..ff4225dc29 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/video/nvidia.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/video/nvidia.nix
@@ -179,7 +179,7 @@ in
in mkIf enabled {
assertions = [
{
- assertion = with config.services.xserver.displayManager; gdm.nvidiaWayland -> cfg.modesetting.enable;
+ assertion = with config.services.xserver.displayManager; (gdm.enable && gdm.nvidiaWayland) -> cfg.modesetting.enable;
message = "You cannot use wayland with GDM without modesetting enabled for NVIDIA drivers, set `hardware.nvidia.modesetting.enable = true`";
}
@@ -284,13 +284,17 @@ 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;
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32;
environment.systemPackages = [ nvidia_x11.bin ]
- ++ optionals nvidiaSettings [ nvidia_x11.settings ]
+ ++ optionals cfg.nvidiaSettings [ nvidia_x11.settings ]
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;
diff --git a/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix b/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
index 4812cacaba..30610b4f42 100644
--- a/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -467,7 +467,7 @@ let
throw "Unsupported architecture";
# Syslinux (and isolinux) only supports x86-based architectures.
- canx86BiosBoot = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
+ canx86BiosBoot = pkgs.stdenv.hostPlatform.isx86;
in
diff --git a/third_party/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix b/third_party/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
index cb509b7340..065cea470f 100644
--- a/third_party/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/third_party/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,7 +1,7 @@
{
- x86_64-linux = "/nix/store/nzp4m3cmm7wawk031byh8jg4cdzjq212-nix-2.3.16";
- i686-linux = "/nix/store/zsaza9pwim617ak15fsc31lv65b9w3in-nix-2.3.16";
- aarch64-linux = "/nix/store/7f6z40gyd405yd50qkyzwilnqw106bx8-nix-2.3.16";
- x86_64-darwin = "/nix/store/c43kyri67ia8mibs0id5ara7gqwlkybf-nix-2.3.16";
- aarch64-darwin = "/nix/store/6jwhak3cvsgnbqs540n27g8pxnk427fr-nix-2.3.16";
+ x86_64-linux = "/nix/store/hapw7q1fkjxvprnkcgw9ppczavg4daj2-nix-2.4";
+ i686-linux = "/nix/store/8qlvh8pp5j8wgrzj3is2jlbhgrwgsiy9-nix-2.4";
+ aarch64-linux = "/nix/store/h48lkygcqj4hdibbdnpl67q7ks6vkrd6-nix-2.4";
+ x86_64-darwin = "/nix/store/c3mvzszvyzakvcp9spnjvsb8m2bpjk7m-nix-2.4";
+ aarch64-darwin = "/nix/store/hbfqs62r0hga2yr4zi5kc7fzhf71bq9n-nix-2.4";
}
diff --git a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
index 2a6c3ab114..490ede04e6 100644
--- a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
+++ b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
@@ -1,4 +1,5 @@
#! @runtimeShell@ -e
+# shellcheck shell=bash
# Shows the usage of this command to the user
@@ -29,12 +30,12 @@ while [ $# -gt 0 ]; do
nixBuildArgs+=("--option" "$1" "$2"); shift
;;
*)
- if [ ! -z "$networkExpr" ]; then
+ if [ -n "$networkExpr" ]; then
echo "Network expression already set!"
showUsage
exit 1
fi
- networkExpr="$(readlink -f $1)"
+ networkExpr="$(readlink -f "$1")"
;;
esac
@@ -49,4 +50,4 @@ fi
# Build a network of VMs
nix-build '' \
- --argstr networkExpr $networkExpr "${nixBuildArgs[@]}"
+ --argstr networkExpr "$networkExpr" "${nixBuildArgs[@]}"
diff --git a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh
index e57296b38e..6469d9faa0 100644
--- a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh
+++ b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh
@@ -1,4 +1,5 @@
#! @runtimeShell@
+# shellcheck shell=bash
set -e
@@ -60,6 +61,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/third_party/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
index 7bc55e6713..fe8c4fb1a6 100644
--- a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -91,6 +91,11 @@ sub hasCPUFeature {
}
+sub cpuManufacturer {
+ my $id = shift;
+ return $cpuinfo =~ /^vendor_id\s*:.* $id$/m;
+}
+
# Determine CPU governor to use
if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") {
@@ -111,6 +116,9 @@ if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") {
push @kernelModules, "kvm-intel" if hasCPUFeature "vmx";
push @kernelModules, "kvm-amd" if hasCPUFeature "svm";
+push @attrs, "hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;" if cpuManufacturer "AuthenticAMD";
+push @attrs, "hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;" if cpuManufacturer "GenuineIntel";
+
# Look at the PCI devices and add necessary modules. Note that most
# modules are auto-detected so we don't need to list them here.
diff --git a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-install.sh b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-install.sh
index ea9667995e..fc4a69aa17 100644
--- a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-install.sh
+++ b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-install.sh
@@ -1,4 +1,5 @@
#! @runtimeShell@
+# shellcheck shell=bash
set -e
shopt -s nullglob
@@ -58,7 +59,7 @@ while [ "$#" -gt 0 ]; do
--no-channel-copy)
noChannelCopy=1
;;
- --no-root-passwd)
+ --no-root-password|--no-root-passwd)
noRootPasswd=1
;;
--no-bootloader)
diff --git a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-version.sh b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-version.sh
index f5e3f32b3c..59a9c572b4 100644
--- a/third_party/nixpkgs/nixos/modules/installer/tools/nixos-version.sh
+++ b/third_party/nixpkgs/nixos/modules/installer/tools/nixos-version.sh
@@ -1,4 +1,5 @@
#! @runtimeShell@
+# shellcheck shell=bash
case "$1" in
-h|--help)
diff --git a/third_party/nixpkgs/nixos/modules/misc/documentation.nix b/third_party/nixpkgs/nixos/modules/misc/documentation.nix
index c3ded4f1ea..1f837f9efa 100644
--- a/third_party/nixpkgs/nixos/modules/misc/documentation.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/documentation.nix
@@ -80,6 +80,10 @@ let
];
};
+ # list of man outputs currently active intended for use as default values
+ # for man-related options, thus "man" is included unconditionally.
+ activeManOutputs = [ "man" ] ++ lib.optionals cfg.dev.enable [ "devman" ];
+
in
{
@@ -130,7 +134,7 @@ in
name = "man-paths";
paths = config.environment.systemPackages;
pathsToLink = [ "/share/man" ];
- extraOutputsToInstall = ["man"];
+ extraOutputsToInstall = activeManOutputs;
ignoreCollisions = true;
};
defaultText = literalDocBook "all man pages in ";
@@ -226,7 +230,7 @@ in
(mkIf cfg.man.enable {
environment.systemPackages = [ pkgs.man-db ];
environment.pathsToLink = [ "/share/man" ];
- environment.extraOutputsToInstall = [ "man" ] ++ optional cfg.dev.enable "devman";
+ environment.extraOutputsToInstall = activeManOutputs;
environment.etc."man_db.conf".text =
let
manualCache = pkgs.runCommandLocal "man-cache" { } ''
diff --git a/third_party/nixpkgs/nixos/modules/misc/ids.nix b/third_party/nixpkgs/nixos/modules/misc/ids.nix
index f392ca5256..a9f2031d1e 100644
--- a/third_party/nixpkgs/nixos/modules/misc/ids.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/ids.nix
@@ -351,6 +351,7 @@ in
hqplayer = 319;
moonraker = 320;
distcc = 321;
+ webdav = 322;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@@ -638,7 +639,7 @@ in
qemu-libvirtd = 301;
kvm = 302; # default udev rules from systemd requires these
render = 303; # default udev rules from systemd requires these
- # zeronet = 304; # removed 2019-01-03
+ sgx = 304; # default udev rules from systemd requires these
lirc = 305;
lidarr = 306;
slurm = 307;
@@ -656,6 +657,7 @@ in
hqplayer = 319;
moonraker = 320;
distcc = 321;
+ webdav = 322;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal
diff --git a/third_party/nixpkgs/nixos/modules/misc/locate.nix b/third_party/nixpkgs/nixos/modules/misc/locate.nix
index 2f2986c2fe..5fd82aa963 100644
--- a/third_party/nixpkgs/nixos/modules/misc/locate.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/locate.nix
@@ -84,12 +84,15 @@ in {
"bdev"
"binfmt"
"binfmt_misc"
+ "ceph"
"cgroup"
+ "cgroup2"
"cifs"
"coda"
"configfs"
"cramfs"
"cpuset"
+ "curlftpfs"
"debugfs"
"devfs"
"devpts"
@@ -101,6 +104,13 @@ in {
"ftpfs"
"fuse"
"fusectl"
+ "fusesmb"
+ "fuse.ceph"
+ "fuse.glusterfs"
+ "fuse.gvfsd-fuse"
+ "fuse.mfs"
+ "fuse.rclone"
+ "fuse.rozofs"
"fuse.sshfs"
"gfs"
"gfs2"
@@ -110,9 +120,15 @@ in {
"iso9660"
"jffs2"
"lustre"
+ "lustre_lite"
"misc"
+ "mfs"
"mqueue"
"ncpfs"
+ "nfs"
+ "NFS"
+ "nfs4"
+ "nfsd"
"nnpfs"
"ocfs"
"ocfs2"
@@ -127,16 +143,14 @@ in {
"smbfs"
"sockfs"
"spufs"
- "nfs"
- "NFS"
- "nfs4"
- "nfsd"
"sshfs"
"subfs"
"supermount"
"sysfs"
"tmpfs"
+ "tracefs"
"ubifs"
+ "udev"
"udf"
"usbfs"
"vboxsf"
@@ -149,7 +163,7 @@ in {
prunePaths = mkOption {
type = listOf path;
- default = ["/tmp" "/var/tmp" "/var/cache" "/var/lock" "/var/run" "/var/spool" "/nix/store"];
+ default = [ "/tmp" "/var/tmp" "/var/cache" "/var/lock" "/var/run" "/var/spool" "/nix/store" "/nix/var/log/nix" ];
description = ''
Which paths to exclude from indexing
'';
@@ -157,7 +171,7 @@ in {
pruneNames = mkOption {
type = listOf str;
- default = [];
+ default = [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
description = ''
Directory components which should exclude paths containing them from indexing
'';
@@ -202,7 +216,7 @@ in {
PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
- PRUNE_BIND_MOUNTSFR="${lib.boolToString cfg.pruneBindMounts}"
+ PRUNE_BIND_MOUNTS="${if cfg.pruneBindMounts then "yes" else "no"}"
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/misc/meta.nix b/third_party/nixpkgs/nixos/modules/misc/meta.nix
index 1410e33342..3dd97cbec2 100644
--- a/third_party/nixpkgs/nixos/modules/misc/meta.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/meta.nix
@@ -37,7 +37,7 @@ in
type = listOfMaintainers;
internal = true;
default = [];
- example = [ lib.maintainers.all ];
+ example = literalExpression ''[ lib.maintainers.all ]'';
description = ''
List of maintainers of each module. This option should be defined at
most once per module.
diff --git a/third_party/nixpkgs/nixos/modules/module-list.nix b/third_party/nixpkgs/nixos/modules/module-list.nix
index 9343f2dbc8..f36e7dd67e 100644
--- a/third_party/nixpkgs/nixos/modules/module-list.nix
+++ b/third_party/nixpkgs/nixos/modules/module-list.nix
@@ -49,6 +49,7 @@
./hardware/digitalbitbox.nix
./hardware/device-tree.nix
./hardware/gkraken.nix
+ ./hardware/flirc.nix
./hardware/i2c.nix
./hardware/sensor/hddtemp.nix
./hardware/sensor/iio.nix
@@ -128,6 +129,7 @@
./programs/cdemu.nix
./programs/chromium.nix
./programs/clickshare.nix
+ ./programs/cnping.nix
./programs/command-not-found/command-not-found.nix
./programs/criu.nix
./programs/dconf.nix
@@ -390,6 +392,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
@@ -420,6 +423,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
@@ -482,6 +486,9 @@
./services/mail/roundcube.nix
./services/mail/sympa.nix
./services/mail/nullmailer.nix
+ ./services/matrix/mjolnir.nix
+ ./services/matrix/pantalaimon.nix
+ ./services/misc/ananicy.nix
./services/misc/airsonic.nix
./services/misc/ankisyncd.nix
./services/misc/apache-kafka.nix
@@ -584,6 +591,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
@@ -603,6 +611,7 @@
./services/misc/uhub.nix
./services/misc/weechat.nix
./services/misc/xmr-stak.nix
+ ./services/misc/xmrig.nix
./services/misc/zigbee2mqtt.nix
./services/misc/zoneminder.nix
./services/misc/zookeeper.nix
@@ -675,12 +684,15 @@
./services/network-filesystems/tahoe.nix
./services/network-filesystems/diod.nix
./services/network-filesystems/u9fs.nix
+ ./services/network-filesystems/webdav.nix
+ ./services/network-filesystems/webdav-server-rs.nix
./services/network-filesystems/yandex-disk.nix
./services/network-filesystems/xtreemfs.nix
./services/network-filesystems/ceph.nix
./services/networking/3proxy.nix
./services/networking/adguardhome.nix
./services/networking/amuled.nix
+ ./services/networking/antennas.nix
./services/networking/aria2.nix
./services/networking/asterisk.nix
./services/networking/atftpd.nix
@@ -768,6 +780,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
@@ -885,6 +898,7 @@
./services/networking/unbound.nix
./services/networking/unifi.nix
./services/video/unifi-video.nix
+ ./services/video/rtsp-simple-server.nix
./services/networking/v2ray.nix
./services/networking/vsftpd.nix
./services/networking/wasabibackend.nix
@@ -969,6 +983,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
@@ -991,6 +1006,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
@@ -1007,6 +1023,7 @@
./services/web-apps/pgpkeyserver-lite.nix
./services/web-apps/matomo.nix
./services/web-apps/moinmoin.nix
+ ./services/web-apps/openwebrx.nix
./services/web-apps/restya-board.nix
./services/web-apps/sogo.nix
./services/web-apps/rss-bridge.nix
@@ -1182,6 +1199,7 @@
./virtualisation/virtualbox-guest.nix
./virtualisation/virtualbox-host.nix
./virtualisation/vmware-guest.nix
+ ./virtualisation/waydroid.nix
./virtualisation/xen-dom0.nix
./virtualisation/xe-guest-utilities.nix
]
diff --git a/third_party/nixpkgs/nixos/modules/profiles/base.nix b/third_party/nixpkgs/nixos/modules/profiles/base.nix
index 3b67d628f9..33dd80d7c5 100644
--- a/third_party/nixpkgs/nixos/modules/profiles/base.nix
+++ b/third_party/nixpkgs/nixos/modules/profiles/base.nix
@@ -40,6 +40,7 @@
# Tools to create / manipulate filesystems.
pkgs.ntfsprogs # for resizing NTFS partitions
pkgs.dosfstools
+ pkgs.mtools
pkgs.xfsprogs.bin
pkgs.jfsutils
pkgs.f2fs-tools
diff --git a/third_party/nixpkgs/nixos/modules/profiles/minimal.nix b/third_party/nixpkgs/nixos/modules/profiles/minimal.nix
index f044e6f39e..e79b927238 100644
--- a/third_party/nixpkgs/nixos/modules/profiles/minimal.nix
+++ b/third_party/nixpkgs/nixos/modules/profiles/minimal.nix
@@ -14,4 +14,6 @@ with lib;
documentation.enable = mkDefault false;
documentation.nixos.enable = mkDefault false;
+
+ programs.command-not-found.enable = mkDefault false;
}
diff --git a/third_party/nixpkgs/nixos/modules/programs/bcc.nix b/third_party/nixpkgs/nixos/modules/programs/bcc.nix
index d76249bb5c..e475c6ceaa 100644
--- a/third_party/nixpkgs/nixos/modules/programs/bcc.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/bcc.nix
@@ -1,9 +1,9 @@
-{ config, lib, ... }:
+{ config, pkgs, lib, ... }:
{
options.programs.bcc.enable = lib.mkEnableOption "bcc";
config = lib.mkIf config.programs.bcc.enable {
- environment.systemPackages = [ config.boot.kernelPackages.bcc ];
- boot.extraModulePackages = [ config.boot.kernelPackages.bcc ];
+ environment.systemPackages = [ pkgs.bcc ];
+ boot.extraModulePackages = [ pkgs.bcc ];
};
}
diff --git a/third_party/nixpkgs/nixos/modules/programs/cnping.nix b/third_party/nixpkgs/nixos/modules/programs/cnping.nix
new file mode 100644
index 0000000000..d208d2b070
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/programs/cnping.nix
@@ -0,0 +1,21 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.programs.cnping;
+in
+{
+ options = {
+ programs.cnping = {
+ enable = mkEnableOption "Whether to install a setcap wrapper for cnping";
+ };
+ };
+
+ config = mkIf cfg.enable {
+ security.wrappers.cnping = {
+ source = "${pkgs.cnping}/bin/cnping";
+ capabilities = "cap_net_raw+ep";
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/programs/dconf.nix b/third_party/nixpkgs/nixos/modules/programs/dconf.nix
index 298abac8af..265c41cbbb 100644
--- a/third_party/nixpkgs/nixos/modules/programs/dconf.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/dconf.nix
@@ -60,7 +60,7 @@ in
environment.systemPackages = [ pkgs.dconf ];
# Needed for unwrapped applications
- environment.variables.GIO_EXTRA_MODULES = mkIf cfg.enable [ "${pkgs.dconf.lib}/lib/gio/modules" ];
+ environment.sessionVariables.GIO_EXTRA_MODULES = mkIf cfg.enable [ "${pkgs.dconf.lib}/lib/gio/modules" ];
};
}
diff --git a/third_party/nixpkgs/nixos/modules/programs/neovim.nix b/third_party/nixpkgs/nixos/modules/programs/neovim.nix
index 97b77ae98f..4649662542 100644
--- a/third_party/nixpkgs/nixos/modules/programs/neovim.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/neovim.nix
@@ -41,7 +41,19 @@ in {
withRuby = mkOption {
type = types.bool;
default = true;
- description = "Enable ruby provider.";
+ description = "Enable Ruby provider.";
+ };
+
+ withPython3 = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Enable Python 3 provider.";
+ };
+
+ withNodeJs = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Enable Node provider.";
};
configure = mkOption {
@@ -139,10 +151,10 @@ in {
environment.systemPackages = [
cfg.finalPackage
];
- environment.variables = { EDITOR = mkOverride 900 "nvim"; };
+ environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "nvim");
programs.neovim.finalPackage = pkgs.wrapNeovim cfg.package {
- inherit (cfg) viAlias vimAlias;
+ inherit (cfg) viAlias vimAlias withPython3 withNodeJs withRuby;
configure = cfg.configure // {
customRC = (cfg.configure.customRC or "") + ''
diff --git a/third_party/nixpkgs/nixos/modules/programs/sway.nix b/third_party/nixpkgs/nixos/modules/programs/sway.nix
index caf329c253..c64e01a20c 100644
--- a/third_party/nixpkgs/nixos/modules/programs/sway.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/sway.nix
@@ -123,6 +123,8 @@ in {
];
environment = {
systemPackages = [ swayPackage ] ++ cfg.extraPackages;
+ # Needed for the default wallpaper:
+ pathsToLink = [ "/share/backgrounds/sway" ];
etc = {
"sway/config".source = mkOptionDefault "${swayPackage}/etc/sway/config";
"sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
diff --git a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix
index a8fcfff95e..fee324cc73 100644
--- a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix
@@ -36,6 +36,13 @@ in
'';
};
+ async = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Whether to fetch suggestions asynchronously";
+ example = false;
+ };
+
extraConfig = mkOption {
type = with types; attrsOf str;
default = {};
@@ -56,6 +63,7 @@ in
export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="${cfg.highlightStyle}"
export ZSH_AUTOSUGGEST_STRATEGY=("${cfg.strategy}")
+ ${optionalString (!cfg.async) "unset ZSH_AUTOSUGGEST_USE_ASYNC"}
${concatStringsSep "\n" (mapAttrsToList (key: value: ''export ${key}="${value}"'') cfg.extraConfig)}
'';
diff --git a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh.nix b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh.nix
index dc6c958ca8..e5c5b08f8d 100644
--- a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh.nix
@@ -283,21 +283,8 @@ in
# see https://github.com/NixOS/nixpkgs/issues/132732
environment.etc.zinputrc.text = builtins.readFile ./zinputrc;
- environment.systemPackages =
- let
- completions =
- if lib.versionAtLeast (lib.getVersion config.nix.package) "2.4pre"
- then
- pkgs.nix-zsh-completions.overrideAttrs
- (_: {
- postInstall = ''
- rm $out/share/zsh/site-functions/_nix
- '';
- })
- else pkgs.nix-zsh-completions;
- in
- [ pkgs.zsh ]
- ++ optional cfg.enableCompletion completions;
+ environment.systemPackages = [ pkgs.zsh ]
+ ++ optional cfg.enableCompletion pkgs.nix-zsh-completions;
environment.pathsToLink = optional cfg.enableCompletion "/share/zsh";
diff --git a/third_party/nixpkgs/nixos/modules/security/acme.nix b/third_party/nixpkgs/nixos/modules/security/acme.nix
index cfbc8e9190..2815e2593b 100644
--- a/third_party/nixpkgs/nixos/modules/security/acme.nix
+++ b/third_party/nixpkgs/nixos/modules/security/acme.nix
@@ -77,6 +77,7 @@ let
unitConfig = {
ConditionPathExists = "!/var/lib/acme/.minica/key.pem";
+ StartLimitIntervalSec = 0;
};
serviceConfig = commonServiceConfig // {
@@ -235,6 +236,7 @@ let
unitConfig = {
ConditionPathExists = "!/var/lib/acme/${cert}/key.pem";
+ StartLimitIntervalSec = 0;
};
serviceConfig = commonServiceConfig // {
@@ -314,6 +316,9 @@ let
if [ -e renewed ]; then
rm renewed
${data.postRun}
+ ${optionalString (data.reloadServices != [])
+ "systemctl --no-block try-reload-or-restart ${escapeShellArgs data.reloadServices}"
+ }
fi
'');
};
@@ -474,6 +479,15 @@ let
description = "Group running the ACME client.";
};
+ reloadServices = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''
+ The list of systemd services to call systemctl try-reload-or-restart
+ on.
+ '';
+ };
+
postRun = mkOption {
type = types.lines;
default = "";
diff --git a/third_party/nixpkgs/nixos/modules/security/acme.xml b/third_party/nixpkgs/nixos/modules/security/acme.xml
index 8249da948c..bf93800a0a 100644
--- a/third_party/nixpkgs/nixos/modules/security/acme.xml
+++ b/third_party/nixpkgs/nixos/modules/security/acme.xml
@@ -253,7 +253,7 @@ chmod 400 /var/lib/secrets/certs.secret
- Now you're all set to generate certs! You should monitor the first invokation
+ Now you're all set to generate certs! You should monitor the first invocation
by running systemctl start acme-example.com.service &
journalctl -fu acme-example.com.service and watching its log output.
diff --git a/third_party/nixpkgs/nixos/modules/security/ca.nix b/third_party/nixpkgs/nixos/modules/security/ca.nix
index 83c15f90f9..f71d9d90ec 100644
--- a/third_party/nixpkgs/nixos/modules/security/ca.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/security/doas.nix b/third_party/nixpkgs/nixos/modules/security/doas.nix
index 9a3daf4f50..2a814f17e4 100644
--- a/third_party/nixpkgs/nixos/modules/security/doas.nix
+++ b/third_party/nixpkgs/nixos/modules/security/doas.nix
@@ -15,7 +15,7 @@ let
(optionalString rule.noLog "nolog")
(optionalString rule.persist "persist")
(optionalString rule.keepEnv "keepenv")
- "setenv { SSH_AUTH_SOCK ${concatStringsSep " " rule.setEnv} }"
+ "setenv { SSH_AUTH_SOCK TERMINFO TERMINFO_DIRS ${concatStringsSep " " rule.setEnv} }"
];
mkArgs = rule:
diff --git a/third_party/nixpkgs/nixos/modules/security/pam.nix b/third_party/nixpkgs/nixos/modules/security/pam.nix
index d6a6f7ce08..8ed7a721a3 100644
--- a/third_party/nixpkgs/nixos/modules/security/pam.nix
+++ b/third_party/nixpkgs/nixos/modules/security/pam.nix
@@ -38,6 +38,7 @@ let
p11Auth = mkOption {
default = config.security.pam.p11.enable;
+ defaultText = literalExpression "config.security.pam.p11.enable";
type = types.bool;
description = ''
If set, keys listed in
@@ -49,6 +50,7 @@ let
u2fAuth = mkOption {
default = config.security.pam.u2f.enable;
+ defaultText = literalExpression "config.security.pam.u2f.enable";
type = types.bool;
description = ''
If set, users listed in
@@ -61,6 +63,7 @@ let
yubicoAuth = mkOption {
default = config.security.pam.yubico.enable;
+ defaultText = literalExpression "config.security.pam.yubico.enable";
type = types.bool;
description = ''
If set, users listed in
@@ -83,6 +86,7 @@ let
usbAuth = mkOption {
default = config.security.pam.usb.enable;
+ defaultText = literalExpression "config.security.pam.usb.enable";
type = types.bool;
description = ''
If set, users listed in
@@ -93,6 +97,7 @@ let
otpwAuth = mkOption {
default = config.security.pam.enableOTPW;
+ defaultText = literalExpression "config.security.pam.enableOTPW";
type = types.bool;
description = ''
If set, the OTPW system will be used (if
@@ -126,6 +131,7 @@ let
fprintAuth = mkOption {
default = config.services.fprintd.enable;
+ defaultText = literalExpression "config.services.fprintd.enable";
type = types.bool;
description = ''
If set, fingerprint reader will be used (if exists and
@@ -135,6 +141,7 @@ let
oathAuth = mkOption {
default = config.security.pam.oath.enable;
+ defaultText = literalExpression "config.security.pam.oath.enable";
type = types.bool;
description = ''
If set, the OATH Toolkit will be used.
@@ -197,6 +204,46 @@ let
'';
};
+ ttyAudit = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enable or disable TTY auditing for specified users
+ '';
+ };
+
+ enablePattern = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ For each user matching one of comma-separated
+ glob patterns, enable TTY auditing
+ '';
+ };
+
+ disablePattern = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ For each user matching one of comma-separated
+ glob patterns, disable TTY auditing
+ '';
+ };
+
+ openOnly = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Set the TTY audit flag when opening the session,
+ but do not restore it when closing the session.
+ Using this option is necessary for some services
+ that don't fork() to run the authenticated session,
+ such as sudo.
+ '';
+ };
+ };
+
forwardXAuth = mkOption {
default = false;
type = types.bool;
@@ -209,6 +256,7 @@ let
pamMount = mkOption {
default = config.security.pam.mount.enable;
+ defaultText = literalExpression "config.security.pam.mount.enable";
type = types.bool;
description = ''
Enable PAM mount (pam_mount) system to mount fileystems on user login.
@@ -361,6 +409,9 @@ let
};
+ # The resulting /etc/pam.d/* file contents are verified in
+ # nixos/tests/pam/pam-file-contents.nix. Please update tests there when
+ # changing the derivation.
config = {
name = mkDefault name;
setLoginUid = mkDefault cfg.startSession;
@@ -370,46 +421,64 @@ let
# Samba stuff to the Samba module. This requires that the PAM
# module provides the right hooks.
text = mkDefault
- (''
- # Account management.
- account required pam_unix.so
- ${optionalString use_ldap
- "account sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
- ${optionalString (config.services.sssd.enable && cfg.sssdStrictAccess==false)
- "account sufficient ${pkgs.sssd}/lib/security/pam_sss.so"}
- ${optionalString (config.services.sssd.enable && cfg.sssdStrictAccess)
- "account [default=bad success=ok user_unknown=ignore] ${pkgs.sssd}/lib/security/pam_sss.so"}
- ${optionalString config.krb5.enable
- "account sufficient ${pam_krb5}/lib/security/pam_krb5.so"}
- ${optionalString cfg.googleOsLoginAccountVerification ''
+ (
+ ''
+ # Account management.
+ account required pam_unix.so
+ '' +
+ optionalString use_ldap ''
+ account sufficient ${pam_ldap}/lib/security/pam_ldap.so
+ '' +
+ optionalString (config.services.sssd.enable && cfg.sssdStrictAccess==false) ''
+ account sufficient ${pkgs.sssd}/lib/security/pam_sss.so
+ '' +
+ optionalString (config.services.sssd.enable && cfg.sssdStrictAccess) ''
+ account [default=bad success=ok user_unknown=ignore] ${pkgs.sssd}/lib/security/pam_sss.so
+ '' +
+ optionalString config.krb5.enable ''
+ account sufficient ${pam_krb5}/lib/security/pam_krb5.so
+ '' +
+ optionalString cfg.googleOsLoginAccountVerification ''
account [success=ok ignore=ignore default=die] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so
account [success=ok default=ignore] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_admin.so
- ''}
+ '' +
+ ''
- # Authentication management.
- ${optionalString cfg.googleOsLoginAuthentication
- "auth [success=done perm_denied=bad default=ignore] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so"}
- ${optionalString cfg.rootOK
- "auth sufficient pam_rootok.so"}
- ${optionalString cfg.requireWheel
- "auth required pam_wheel.so use_uid"}
- ${optionalString cfg.logFailures
- "auth required pam_faillock.so"}
- ${optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth)
- "auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=${lib.concatStringsSep ":" config.services.openssh.authorizedKeysFiles}"}
- ${let p11 = config.security.pam.p11; in optionalString cfg.p11Auth
- "auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so"}
- ${let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth
- "auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"} ${optionalString (u2f.appId != null) "appid=${u2f.appId}"}"}
- ${optionalString cfg.usbAuth
- "auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
- ${let oath = config.security.pam.oath; in optionalString cfg.oathAuth
- "auth requisite ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}"}
- ${let yubi = config.security.pam.yubico; in optionalString cfg.yubicoAuth
- "auth ${yubi.control} ${pkgs.yubico-pam}/lib/security/pam_yubico.so mode=${toString yubi.mode} ${optionalString (yubi.challengeResponsePath != null) "chalresp_path=${yubi.challengeResponsePath}"} ${optionalString (yubi.mode == "client") "id=${toString yubi.id}"} ${optionalString yubi.debug "debug"}"}
- ${optionalString cfg.fprintAuth
- "auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so"}
- '' +
+ # Authentication management.
+ '' +
+ optionalString cfg.googleOsLoginAuthentication ''
+ auth [success=done perm_denied=bad default=ignore] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so
+ '' +
+ optionalString cfg.rootOK ''
+ auth sufficient pam_rootok.so
+ '' +
+ optionalString cfg.requireWheel ''
+ auth required pam_wheel.so use_uid
+ '' +
+ optionalString cfg.logFailures ''
+ auth required pam_faillock.so
+ '' +
+ optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth) ''
+ auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=${lib.concatStringsSep ":" config.services.openssh.authorizedKeysFiles}
+ '' +
+ (let p11 = config.security.pam.p11; in optionalString cfg.p11Auth ''
+ auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so
+ '') +
+ (let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth ''
+ auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"} ${optionalString (u2f.appId != null) "appid=${u2f.appId}"}
+ '') +
+ optionalString cfg.usbAuth ''
+ auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so
+ '' +
+ (let oath = config.security.pam.oath; in optionalString cfg.oathAuth ''
+ auth requisite ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}
+ '') +
+ (let yubi = config.security.pam.yubico; in optionalString cfg.yubicoAuth ''
+ auth ${yubi.control} ${pkgs.yubico-pam}/lib/security/pam_yubico.so mode=${toString yubi.mode} ${optionalString (yubi.challengeResponsePath != null) "chalresp_path=${yubi.challengeResponsePath}"} ${optionalString (yubi.mode == "client") "id=${toString yubi.id}"} ${optionalString yubi.debug "debug"}
+ '') +
+ optionalString cfg.fprintAuth ''
+ auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so
+ '' +
# Modules in this block require having the password set in PAM_AUTHTOK.
# pam_unix is marked as 'sufficient' on NixOS which means nothing will run
# after it succeeds. Certain modules need to run after pam_unix
@@ -417,109 +486,151 @@ let
# earlier point and it will run again with 'sufficient' further down.
# We use try_first_pass the second time to avoid prompting password twice
(optionalString (cfg.unixAuth &&
- (config.security.pam.enableEcryptfs
- || cfg.pamMount
- || cfg.enableKwallet
- || cfg.enableGnomeKeyring
- || cfg.googleAuthenticator.enable
- || cfg.gnupg.enable
- || cfg.duoSecurity.enable)) ''
- auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth
- ${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 disable_interactive"}
- ${optionalString cfg.enableKwallet
- ("auth optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so" +
- " kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5")}
- ${optionalString cfg.enableGnomeKeyring
- "auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so"}
- ${optionalString cfg.gnupg.enable
- "auth optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"
- + optionalString cfg.gnupg.storeOnly " store-only"
- }
- ${optionalString cfg.googleAuthenticator.enable
- "auth required ${pkgs.googleAuthenticator}/lib/security/pam_google_authenticator.so no_increment_hotp"}
- ${optionalString cfg.duoSecurity.enable
- "auth required ${pkgs.duo-unix}/lib/security/pam_duo.so"}
- '') + ''
- ${optionalString cfg.unixAuth
- "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth try_first_pass"}
- ${optionalString cfg.otpwAuth
- "auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
- ${optionalString use_ldap
- "auth sufficient ${pam_ldap}/lib/security/pam_ldap.so use_first_pass"}
- ${optionalString config.services.sssd.enable
- "auth sufficient ${pkgs.sssd}/lib/security/pam_sss.so use_first_pass"}
- ${optionalString config.krb5.enable ''
+ (config.security.pam.enableEcryptfs
+ || cfg.pamMount
+ || cfg.enableKwallet
+ || cfg.enableGnomeKeyring
+ || cfg.googleAuthenticator.enable
+ || cfg.gnupg.enable
+ || cfg.duoSecurity.enable))
+ (
+ ''
+ auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth
+ '' +
+ 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 disable_interactive
+ '' +
+ optionalString cfg.enableKwallet ''
+ auth optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5
+ '' +
+ optionalString cfg.enableGnomeKeyring ''
+ auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so
+ '' +
+ optionalString cfg.gnupg.enable ''
+ auth optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so ${optionalString cfg.gnupg.storeOnly " store-only"}
+ '' +
+ optionalString cfg.googleAuthenticator.enable ''
+ auth required ${pkgs.googleAuthenticator}/lib/security/pam_google_authenticator.so no_increment_hotp
+ '' +
+ optionalString cfg.duoSecurity.enable ''
+ auth required ${pkgs.duo-unix}/lib/security/pam_duo.so
+ ''
+ )) +
+ optionalString cfg.unixAuth ''
+ auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth try_first_pass
+ '' +
+ optionalString cfg.otpwAuth ''
+ auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so
+ '' +
+ optionalString use_ldap ''
+ auth sufficient ${pam_ldap}/lib/security/pam_ldap.so use_first_pass
+ '' +
+ optionalString config.services.sssd.enable ''
+ auth sufficient ${pkgs.sssd}/lib/security/pam_sss.so use_first_pass
+ '' +
+ optionalString config.krb5.enable ''
auth [default=ignore success=1 service_err=reset] ${pam_krb5}/lib/security/pam_krb5.so use_first_pass
auth [default=die success=done] ${pam_ccreds}/lib/security/pam_ccreds.so action=validate use_first_pass
auth sufficient ${pam_ccreds}/lib/security/pam_ccreds.so action=store use_first_pass
- ''}
- auth required pam_deny.so
+ '' +
+ ''
+ auth required pam_deny.so
- # Password management.
- password sufficient pam_unix.so nullok sha512
- ${optionalString config.security.pam.enableEcryptfs
- "password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
- ${optionalString cfg.pamMount
- "password optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
- ${optionalString use_ldap
- "password sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
- ${optionalString config.services.sssd.enable
- "password sufficient ${pkgs.sssd}/lib/security/pam_sss.so use_authtok"}
- ${optionalString config.krb5.enable
- "password sufficient ${pam_krb5}/lib/security/pam_krb5.so use_first_pass"}
- ${optionalString cfg.enableGnomeKeyring
- "password optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so use_authtok"}
+ # Password management.
+ password sufficient pam_unix.so nullok sha512
+ '' +
+ optionalString config.security.pam.enableEcryptfs ''
+ password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
+ '' +
+ optionalString cfg.pamMount ''
+ password optional ${pkgs.pam_mount}/lib/security/pam_mount.so
+ '' +
+ optionalString use_ldap ''
+ password sufficient ${pam_ldap}/lib/security/pam_ldap.so
+ '' +
+ optionalString config.services.sssd.enable ''
+ password sufficient ${pkgs.sssd}/lib/security/pam_sss.so use_authtok
+ '' +
+ optionalString config.krb5.enable ''
+ password sufficient ${pam_krb5}/lib/security/pam_krb5.so use_first_pass
+ '' +
+ optionalString cfg.enableGnomeKeyring ''
+ password optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so use_authtok
+ '' +
+ ''
- # Session management.
- ${optionalString cfg.setEnvironment ''
+ # Session management.
+ '' +
+ optionalString cfg.setEnvironment ''
session required pam_env.so conffile=/etc/pam/environment readenv=0
- ''}
- session required pam_unix.so
- ${optionalString cfg.setLoginUid
- "session ${
- 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"}
- ${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 disable_interactive"}
- ${optionalString use_ldap
- "session optional ${pam_ldap}/lib/security/pam_ldap.so"}
- ${optionalString config.services.sssd.enable
- "session optional ${pkgs.sssd}/lib/security/pam_sss.so"}
- ${optionalString config.krb5.enable
- "session optional ${pam_krb5}/lib/security/pam_krb5.so"}
- ${optionalString cfg.otpwAuth
- "session optional ${pkgs.otpw}/lib/security/pam_otpw.so"}
- ${optionalString cfg.startSession
- "session optional ${pkgs.systemd}/lib/security/pam_systemd.so"}
- ${optionalString cfg.forwardXAuth
- "session optional pam_xauth.so xauthpath=${pkgs.xorg.xauth}/bin/xauth systemuser=99"}
- ${optionalString (cfg.limits != [])
- "session required ${pkgs.pam}/lib/security/pam_limits.so conf=${makeLimitsConf cfg.limits}"}
- ${optionalString (cfg.showMotd && config.users.motd != null)
- "session optional ${pkgs.pam}/lib/security/pam_motd.so motd=${motd}"}
- ${optionalString (cfg.enableAppArmor && config.security.apparmor.enable)
- "session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"}
- ${optionalString (cfg.enableKwallet)
- ("session optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so" +
- " kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5")}
- ${optionalString (cfg.enableGnomeKeyring)
- "session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start"}
- ${optionalString cfg.gnupg.enable
- "session optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"
- + optionalString cfg.gnupg.noAutostart " no-autostart"
- }
- ${optionalString (config.virtualisation.lxc.lxcfs.enable)
- "session optional ${pkgs.lxc}/lib/security/pam_cgfs.so -c all"}
- '');
+ '' +
+ ''
+ session required pam_unix.so
+ '' +
+ optionalString cfg.setLoginUid ''
+ session ${if config.boot.isContainer then "optional" else "required"} pam_loginuid.so
+ '' +
+ optionalString cfg.ttyAudit.enable ''
+ session required ${pkgs.pam}/lib/security/pam_tty_audit.so
+ open_only=${toString cfg.ttyAudit.openOnly}
+ ${optionalString (cfg.ttyAudit.enablePattern != null) "enable=${cfg.ttyAudit.enablePattern}"}
+ ${optionalString (cfg.ttyAudit.disablePattern != null) "disable=${cfg.ttyAudit.disablePattern}"}
+ '' +
+ optionalString cfg.makeHomeDir ''
+ 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 disable_interactive
+ '' +
+ optionalString use_ldap ''
+ session optional ${pam_ldap}/lib/security/pam_ldap.so
+ '' +
+ optionalString config.services.sssd.enable ''
+ session optional ${pkgs.sssd}/lib/security/pam_sss.so
+ '' +
+ optionalString config.krb5.enable ''
+ session optional ${pam_krb5}/lib/security/pam_krb5.so
+ '' +
+ optionalString cfg.otpwAuth ''
+ session optional ${pkgs.otpw}/lib/security/pam_otpw.so
+ '' +
+ optionalString cfg.startSession ''
+ session optional ${pkgs.systemd}/lib/security/pam_systemd.so
+ '' +
+ optionalString cfg.forwardXAuth ''
+ session optional pam_xauth.so xauthpath=${pkgs.xorg.xauth}/bin/xauth systemuser=99
+ '' +
+ optionalString (cfg.limits != []) ''
+ session required ${pkgs.pam}/lib/security/pam_limits.so conf=${makeLimitsConf cfg.limits}
+ '' +
+ optionalString (cfg.showMotd && config.users.motd != null) ''
+ session optional ${pkgs.pam}/lib/security/pam_motd.so motd=${motd}
+ '' +
+ optionalString (cfg.enableAppArmor && config.security.apparmor.enable) ''
+ session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug
+ '' +
+ optionalString (cfg.enableKwallet) ''
+ session optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5
+ '' +
+ optionalString (cfg.enableGnomeKeyring) ''
+ session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
+ '' +
+ optionalString cfg.gnupg.enable ''
+ session optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so ${optionalString cfg.gnupg.noAutostart " no-autostart"}
+ '' +
+ optionalString (config.virtualisation.lxc.lxcfs.enable) ''
+ session optional ${pkgs.lxc}/lib/security/pam_cgfs.so -c all
+ ''
+ );
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/audio/icecast.nix b/third_party/nixpkgs/nixos/modules/services/audio/icecast.nix
index 6ca20a7a10..5ee5bd745f 100644
--- a/third_party/nixpkgs/nixos/modules/services/audio/icecast.nix
+++ b/third_party/nixpkgs/nixos/modules/services/audio/icecast.nix
@@ -50,6 +50,7 @@ in {
type = types.nullOr types.str;
description = "DNS name or IP address that will be used for the stream directory lookups or possibily the playlist generation if a Host header is not provided.";
default = config.networking.domain;
+ defaultText = literalExpression "config.networking.domain";
};
admin = {
diff --git a/third_party/nixpkgs/nixos/modules/services/audio/navidrome.nix b/third_party/nixpkgs/nixos/modules/services/audio/navidrome.nix
index c2fe429f98..3660e05310 100644
--- a/third_party/nixpkgs/nixos/modules/services/audio/navidrome.nix
+++ b/third_party/nixpkgs/nixos/modules/services/audio/navidrome.nix
@@ -9,7 +9,7 @@ in {
options = {
services.navidrome = {
- enable = mkEnableOption pkgs.navidrome.meta.description;
+ enable = mkEnableOption "Navidrome music server";
settings = mkOption rec {
type = settingsFormat.type;
diff --git a/third_party/nixpkgs/nixos/modules/services/audio/roon-server.nix b/third_party/nixpkgs/nixos/modules/services/audio/roon-server.nix
index 42da5a1001..566c7cae42 100644
--- a/third_party/nixpkgs/nixos/modules/services/audio/roon-server.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/audio/ympd.nix b/third_party/nixpkgs/nixos/modules/services/audio/ympd.nix
index 36c5527027..84b72d1425 100644
--- a/third_party/nixpkgs/nixos/modules/services/audio/ympd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/audio/ympd.nix
@@ -31,6 +31,7 @@ in {
port = mkOption {
type = types.int;
default = config.services.mpd.network.port;
+ defaultText = literalExpression "config.services.mpd.network.port";
description = "The port where MPD is listening.";
example = 6600;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/backup/bacula.nix b/third_party/nixpkgs/nixos/modules/services/backup/bacula.nix
index cc8b77cbfb..5989020423 100644
--- a/third_party/nixpkgs/nixos/modules/services/backup/bacula.nix
+++ b/third_party/nixpkgs/nixos/modules/services/backup/bacula.nix
@@ -302,6 +302,7 @@ in {
name = mkOption {
default = "${config.networking.hostName}-fd";
+ defaultText = literalExpression ''"''${config.networking.hostName}-fd"'';
type = types.str;
description = ''
The client name that must be used by the Director when connecting.
@@ -364,6 +365,7 @@ in {
name = mkOption {
default = "${config.networking.hostName}-sd";
+ defaultText = literalExpression ''"''${config.networking.hostName}-sd"'';
type = types.str;
description = ''
Specifies the Name of the Storage daemon.
@@ -439,6 +441,7 @@ in {
name = mkOption {
default = "${config.networking.hostName}-dir";
+ defaultText = literalExpression ''"''${config.networking.hostName}-dir"'';
type = types.str;
description = ''
The director name used by the system administrator. This directive is
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/conf.nix b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/conf.nix
index 69472408ca..0caec5cfc2 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/conf.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/conf.nix
@@ -35,6 +35,7 @@ pkgs.runCommand "hadoop-conf" {} ''
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/
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
index da3e47b95d..90f22c48e0 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
@@ -15,7 +15,10 @@ with lib;
"fs.defaultFS" = "hdfs://localhost";
}
'';
- description = "Hadoop core-site.xml definition";
+ description = ''
+ Hadoop core-site.xml definition
+
+ '';
};
hdfsSite = mkOption {
@@ -28,7 +31,10 @@ with lib;
"dfs.nameservices" = "namenode1";
}
'';
- description = "Hadoop hdfs-site.xml definition";
+ description = ''
+ Hadoop hdfs-site.xml definition
+
+ '';
};
mapredSite = mkOption {
@@ -44,7 +50,10 @@ with lib;
"mapreduce.map.java.opts" = "-Xmx900m -XX:+UseParallelGC";
}
'';
- description = "Hadoop mapred-site.xml definition";
+ description = ''
+ Hadoop mapred-site.xml definition
+
+ '';
};
yarnSite = mkOption {
@@ -67,7 +76,24 @@ with lib;
"yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
}
'';
- description = "Hadoop yarn-site.xml definition";
+ description = ''
+ Hadoop yarn-site.xml definition
+
+ '';
+ };
+
+ httpfsSite = mkOption {
+ default = { };
+ type = types.attrsOf types.anything;
+ example = literalExpression ''
+ {
+ "hadoop.http.max.threads" = 500;
+ }
+ '';
+ description = ''
+ Hadoop httpfs-site.xml definition
+
+ '';
};
log4jProperties = mkOption {
@@ -92,7 +118,10 @@ with lib;
"feature.terminal.enabled" = 0;
}
'';
- description = "Yarn container-executor.cfg definition";
+ description = ''
+ Yarn container-executor.cfg definition
+
+ '';
};
extraConfDirs = mkOption {
@@ -118,7 +147,8 @@ 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;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hdfs.nix b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hdfs.nix
index e347b682b9..be667aa82d 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hdfs.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hdfs.nix
@@ -17,11 +17,14 @@ in
{
options.services.hadoop.hdfs = {
namenode = {
- enabled = mkOption {
+ enable = mkEnableOption "Whether to run the HDFS NameNode";
+ formatOnInit = mkOption {
type = types.bool;
default = false;
description = ''
- Whether to run the HDFS NameNode
+ 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;
@@ -34,13 +37,7 @@ in
};
};
datanode = {
- enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the HDFS DataNode
- '';
- };
+ enable = mkEnableOption "Whether to run the HDFS DataNode";
inherit restartIfChanged;
openFirewall = mkOption {
type = types.bool;
@@ -50,18 +47,51 @@ in
'';
};
};
+ journalnode = {
+ enable = mkEnableOption "Whether to run the HDFS JournalNode";
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for journalnode
+ '';
+ };
+ };
+ zkfc = {
+ enable = mkEnableOption "Whether to run the HDFS ZooKeeper failover controller";
+ inherit restartIfChanged;
+ };
+ httpfs = {
+ enable = mkEnableOption "Whether to run the HDFS HTTPfs server";
+ tempPath = mkOption {
+ type = types.path;
+ default = "/tmp/hadoop/httpfs";
+ description = ''
+ HTTPFS_TEMP path used by HTTPFS
+ '';
+ };
+ inherit restartIfChanged;
+ openFirewall = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Open firewall ports for HTTPFS
+ '';
+ };
+ };
};
config = mkMerge [
- (mkIf cfg.hdfs.namenode.enabled {
+ (mkIf cfg.hdfs.namenode.enable {
systemd.services.hdfs-namenode = {
description = "Hadoop HDFS NameNode";
wantedBy = [ "multi-user.target" ];
inherit (cfg.hdfs.namenode) restartIfChanged;
- preStart = ''
+ preStart = (mkIf cfg.hdfs.namenode.formatOnInit ''
${cfg.package}/bin/hdfs --config ${hadoopConf} namenode -format -nonInteractive || true
- '';
+ '');
serviceConfig = {
User = "hdfs";
@@ -74,9 +104,10 @@ in
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" ];
@@ -96,8 +127,64 @@ in
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";
@@ -105,6 +192,12 @@ in
uid = config.ids.uids.hdfs;
};
})
-
+ (mkIf cfg.hdfs.httpfs.enable {
+ users.users.httpfs = {
+ description = "Hadoop HTTPFS user";
+ group = "hadoop";
+ isSystemUser = true;
+ };
+ })
];
}
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/yarn.nix b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/yarn.nix
index 0086a53e3b..37c26ea10f 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/yarn.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/yarn.nix
@@ -17,13 +17,7 @@ in
{
options.services.hadoop.yarn = {
resourcemanager = {
- enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN ResourceManager
- '';
- };
+ enable = mkEnableOption "Whether to run the Hadoop YARN ResourceManager";
inherit restartIfChanged;
openFirewall = mkOption {
type = types.bool;
@@ -34,13 +28,7 @@ in
};
};
nodemanager = {
- enabled = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to run the Hadoop YARN NodeManager
- '';
- };
+ enable = mkEnableOption "Whether to run the Hadoop YARN NodeManager";
inherit restartIfChanged;
addBinBash = mkOption {
type = types.bool;
@@ -62,7 +50,7 @@ in
config = mkMerge [
(mkIf (
- cfg.yarn.resourcemanager.enabled || cfg.yarn.nodemanager.enabled
+ cfg.yarn.resourcemanager.enable || cfg.yarn.nodemanager.enable
) {
users.users.yarn = {
@@ -72,7 +60,7 @@ in
};
})
- (mkIf cfg.yarn.resourcemanager.enabled {
+ (mkIf cfg.yarn.resourcemanager.enable {
systemd.services.yarn-resourcemanager = {
description = "Hadoop YARN ResourceManager";
wantedBy = [ "multi-user.target" ];
@@ -91,10 +79,11 @@ in
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 = [
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 3a2a0ed363..2806f73375 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -168,6 +168,7 @@ in
hostname = mkOption {
description = "Kubernetes kubelet hostname override.";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
type = str;
};
@@ -258,6 +259,8 @@ in
"net.bridge.bridge-nf-call-ip6tables" = 1;
};
+ systemd.enableUnifiedCgroupHierarchy = false; # true breaks node memory metrics
+
systemd.services.kubelet = {
description = "Kubernetes Kubelet Service";
wantedBy = [ "kubernetes.target" ];
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
index faf951d815..76ab03cd52 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -98,6 +98,7 @@ in
the public and private keys respectively.
'';
default = "${config.services.cfssl.dataDir}/ca";
+ defaultText = literalExpression ''"''${config.services.cfssl.dataDir}/ca"'';
type = str;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix
index a92043d525..a09efcef94 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix
@@ -37,6 +37,7 @@ in
hostname = mkOption {
description = "Kubernetes proxy hostname override.";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
type = str;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix b/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
index 0c96f32313..d2f3feffc9 100644
--- a/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
+++ b/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
@@ -80,6 +80,7 @@ in
dbdHost = mkOption {
type = types.str;
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
description = ''
Hostname of the machine where slurmdbd
is running (i.e. name returned by hostname -s).
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix
index 943c1e4598..59370f43fe 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix
@@ -58,6 +58,7 @@ in
'';
example = "nixos";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
};
runnerGroup = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
index d53d68bdcf..80c88714bf 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -1,10 +1,10 @@
/*
-This file is for options that NixOS and nix-darwin have in common.
+ This file is for options that NixOS and nix-darwin have in common.
-Platform-specific code is in the respective default.nix files.
+ Platform-specific code is in the respective default.nix files.
- */
+*/
{ config, lib, options, pkgs, ... }:
let
@@ -27,6 +27,16 @@ let
settingsModule = { config, ... }: {
freeformType = format.type;
options = {
+ apiBaseUrl = mkOption {
+ description = ''
+ API base URL that the agent will connect to.
+
+ When using Hercules CI Enterprise, set this to the URL where your
+ Hercules CI server is reachable.
+ '';
+ type = types.str;
+ default = "https://hercules-ci.com";
+ };
baseDirectory = mkOption {
type = types.path;
default = "/var/lib/hercules-ci-agent";
@@ -55,6 +65,25 @@ let
type = types.either types.ints.positive (types.enum [ "auto" ]);
default = "auto";
};
+ labels = mkOption {
+ description = ''
+ A key-value map of user data.
+
+ This data will be available to organization members in the dashboard and API.
+
+ The values can be of any TOML type that corresponds to a JSON type, but arrays
+ can not contain tables/objects due to limitations of the TOML library. Values
+ involving arrays of non-primitive types may not be representable currently.
+ '';
+ type = format.type;
+ defaultText = literalExpression ''
+ {
+ agent.source = "..."; # One of "nixpkgs", "flake", "override"
+ lib.version = "...";
+ pkgs.version = "...";
+ }
+ '';
+ };
workDirectory = mkOption {
description = ''
The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
@@ -66,6 +95,8 @@ let
staticSecretsDirectory = mkOption {
description = ''
This is the default directory to look for statically configured secrets like cluster-join-token.key.
+
+ See also clusterJoinTokenPath and binaryCachesPath for fine-grained configuration.
'';
type = types.path;
default = config.baseDirectory + "/secrets";
@@ -74,24 +105,48 @@ let
clusterJoinTokenPath = mkOption {
description = ''
Location of the cluster-join-token.key file.
+
+ You can retrieve the contents of the file when creating a new agent via
+ https://hercules-ci.com/dashboard.
+
+ As this value is confidential, it should not be in the store, but
+ installed using other means, such as agenix, NixOps
+ deployment.keys, or manual installation.
+
+ The contents of the file are used for authentication between the agent and the API.
'';
type = types.path;
default = config.staticSecretsDirectory + "/cluster-join-token.key";
defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
- # internal: It's a bit too detailed to show by default in the docs,
- # but useful to define explicitly to allow reuse by other modules.
- internal = true;
};
binaryCachesPath = mkOption {
description = ''
- Location of the binary-caches.json file.
+ Path to a JSON file containing binary cache secret keys.
+
+ As these values are confidential, they should not be in the store, but
+ copied over using other means, such as agenix, NixOps
+ deployment.keys, or manual installation.
+
+ The format is described on https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/.
'';
type = types.path;
default = config.staticSecretsDirectory + "/binary-caches.json";
defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
- # internal: It's a bit too detailed to show by default in the docs,
- # but useful to define explicitly to allow reuse by other modules.
- internal = true;
+ };
+ secretsJsonPath = mkOption {
+ description = ''
+ Path to a JSON file containing secrets for effects.
+
+ As these values are confidential, they should not be in the store, but
+ copied over using other means, such as agenix, NixOps
+ deployment.keys, or manual installation.
+
+ The format is described on https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/.
+
+ '';
+ type = types.path;
+ default = config.staticSecretsDirectory + "/secrets.json";
+ defaultText = literalExpression ''staticSecretsDirectory + "/secrets.json"'';
};
};
};
@@ -177,7 +232,7 @@ in
These are written as options instead of let binding to allow sharing with
default.nix on both NixOS and nix-darwin.
- */
+ */
tomlFile = mkOption {
type = types.path;
internal = true;
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
index 06c174e7d3..968bc8f1e5 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
@@ -1,10 +1,10 @@
/*
-This file is for NixOS-specific options and configs.
+ This file is for NixOS-specific options and configs.
-Code that is shared with nix-darwin goes in common.nix.
+ Code that is shared with nix-darwin goes in common.nix.
- */
+*/
{ pkgs, config, lib, ... }:
let
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
index d6cde77c0a..ccb7cc2173 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -203,6 +203,7 @@ in
buildMachinesFiles = mkOption {
type = types.listOf types.path;
default = optional (config.nix.buildMachines != []) "/etc/nix/machines";
+ defaultText = literalExpression ''optional (config.nix.buildMachines != []) "/etc/nix/machines"'';
example = [ "/etc/nix/machines" "/var/lib/hydra/provisioner/machines" ];
description = "List of files containing build machines.";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/clickhouse.nix b/third_party/nixpkgs/nixos/modules/services/databases/clickhouse.nix
index f2f4e9d255..3a161d5610 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/clickhouse.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/clickhouse.nix
@@ -13,6 +13,15 @@ with lib;
enable = mkEnableOption "ClickHouse database server";
+ package = mkOption {
+ type = types.package;
+ default = pkgs.clickhouse;
+ defaultText = "pkgs.clickhouse";
+ description = ''
+ ClickHouse package to use.
+ '';
+ };
+
};
};
@@ -45,21 +54,21 @@ with lib;
AmbientCapabilities = "CAP_SYS_NICE";
StateDirectory = "clickhouse";
LogsDirectory = "clickhouse";
- ExecStart = "${pkgs.clickhouse}/bin/clickhouse-server --config-file=${pkgs.clickhouse}/etc/clickhouse-server/config.xml";
+ ExecStart = "${cfg.package}/bin/clickhouse-server --config-file=${cfg.package}/etc/clickhouse-server/config.xml";
};
};
environment.etc = {
"clickhouse-server/config.xml" = {
- source = "${pkgs.clickhouse}/etc/clickhouse-server/config.xml";
+ source = "${cfg.package}/etc/clickhouse-server/config.xml";
};
"clickhouse-server/users.xml" = {
- source = "${pkgs.clickhouse}/etc/clickhouse-server/users.xml";
+ source = "${cfg.package}/etc/clickhouse-server/users.xml";
};
};
- environment.systemPackages = [ pkgs.clickhouse ];
+ environment.systemPackages = [ cfg.package ];
# startup requires a `/etc/localtime` which only if exists if `time.timeZone != null`
time.timeZone = mkDefault "UTC";
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/hbase.nix b/third_party/nixpkgs/nixos/modules/services/databases/hbase.nix
index 9132b7ed35..181be2d6b0 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/hbase.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/hbase.nix
@@ -5,18 +5,27 @@ with lib;
let
cfg = config.services.hbase;
- configFile = pkgs.writeText "hbase-site.xml" ''
-
-
- hbase.rootdir
- file://${cfg.dataDir}/hbase
-
-
- hbase.zookeeper.property.dataDir
- ${cfg.dataDir}/zookeeper
-
-
- '';
+ defaultConfig = {
+ "hbase.rootdir" = "file://${cfg.dataDir}/hbase";
+ "hbase.zookeeper.property.dataDir" = "${cfg.dataDir}/zookeeper";
+ };
+
+ buildProperty = configAttr:
+ (builtins.concatStringsSep "\n"
+ (lib.mapAttrsToList
+ (name: value: ''
+
+ ${name}
+ ${builtins.toString value}
+
+ '')
+ configAttr));
+
+ configFile = pkgs.writeText "hbase-site.xml"
+ ''
+ ${buildProperty (defaultConfig // cfg.settings)}
+
+ '';
configDir = pkgs.runCommand "hbase-config-dir" { preferLocalBuild = true; } ''
mkdir -p $out
@@ -85,6 +94,14 @@ in {
'';
};
+ settings = mkOption {
+ type = with lib.types; attrsOf (oneOf [ str int bool ]);
+ default = defaultConfig;
+ description = ''
+ configurations in hbase-site.xml, see for details.
+ '';
+ };
+
};
};
@@ -103,7 +120,8 @@ in {
wantedBy = [ "multi-user.target" ];
environment = {
- JAVA_HOME = "${pkgs.jre}";
+ # JRE 15 removed option `UseConcMarkSweepGC` which is needed.
+ JAVA_HOME = "${pkgs.jre8}";
HBASE_LOG_DIR = cfg.logDir;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/influxdb2.nix b/third_party/nixpkgs/nixos/modules/services/databases/influxdb2.nix
index 01b9c49348..15f008cbc6 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/influxdb2.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/influxdb2.nix
@@ -17,7 +17,7 @@ in
};
settings = mkOption {
default = { };
- description = "configuration options for influxdb2, see https://docs.influxdata.com/influxdb/v2.0/reference/config-options for details.";
+ description = ''configuration options for influxdb2, see for details.'';
type = format.type;
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix b/third_party/nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix
index 4288b6b5de..1039605391 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix
+++ b/third_party/nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix
@@ -38,7 +38,7 @@ with lib;
systemd.packages = [ pkgs.glib-networking ];
- environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.glib-networking.out}/lib/gio/modules" ];
+ environment.sessionVariables.GIO_EXTRA_MODULES = [ "${pkgs.glib-networking.out}/lib/gio/modules" ];
};
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/gvfs.nix b/third_party/nixpkgs/nixos/modules/services/desktops/gvfs.nix
index b6a27279bd..f2b2855dc3 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/gvfs.nix
+++ b/third_party/nixpkgs/nixos/modules/services/desktops/gvfs.nix
@@ -57,7 +57,7 @@ in
services.udev.packages = [ pkgs.libmtp.bin ];
# Needed for unwrapped applications
- environment.variables.GIO_EXTRA_MODULES = [ "${cfg.package}/lib/gio/modules" ];
+ environment.sessionVariables.GIO_EXTRA_MODULES = [ "${cfg.package}/lib/gio/modules" ];
};
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/client-rt.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/client-rt.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/client.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/client.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/client.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/client.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/jack.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/jack.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
similarity index 100%
rename from third_party/nixpkgs/nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json
rename to third_party/nixpkgs/nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
index 4ae6aab29c..4be3e881a9 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
index 604645b2b1..55755ecd64 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/finance/odoo.nix b/third_party/nixpkgs/nixos/modules/services/finance/odoo.nix
new file mode 100644
index 0000000000..422ee95100
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/games/factorio.nix b/third_party/nixpkgs/nixos/modules/services/games/factorio.nix
index 0e8860a028..96fcd6d2c8 100644
--- a/third_party/nixpkgs/nixos/modules/services/games/factorio.nix
+++ b/third_party/nixpkgs/nixos/modules/services/games/factorio.nix
@@ -75,8 +75,8 @@ in
description = ''
The name of the savegame that will be used by the server.
- When not present in ${stateDir}/saves, a new map with default
- settings will be generated before starting the service.
+ When not present in /var/lib/''${config.services.factorio.stateDirName}/saves,
+ a new map with default settings will be generated before starting the service.
'';
};
# TODO Add more individual settings as nixos-options?
diff --git a/third_party/nixpkgs/nixos/modules/services/hardware/bluetooth.nix b/third_party/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
index 7f75ac272d..69a66723e7 100644
--- a/third_party/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
+++ b/third_party/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
@@ -11,12 +11,8 @@ let
cfgFmt = pkgs.formats.ini { };
- # bluez will complain if some of the sections are not found, so just make them
- # empty (but present in the file) for now
defaults = {
General.ControllerMode = "dual";
- Controller = { };
- GATT = { };
Policy.AutoEnable = cfg.powerOnBoot;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/hardware/fancontrol.nix b/third_party/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
index 5574c5a132..861b70970b 100644
--- a/third_party/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/hardware/power-profiles-daemon.nix b/third_party/nixpkgs/nixos/modules/services/hardware/power-profiles-daemon.nix
index 70b7a72b8b..4144bc6670 100644
--- a/third_party/nixpkgs/nixos/modules/services/hardware/power-profiles-daemon.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/hardware/rasdaemon.nix b/third_party/nixpkgs/nixos/modules/services/hardware/rasdaemon.nix
new file mode 100644
index 0000000000..b1efe0f18c
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/logging/journalwatch.nix b/third_party/nixpkgs/nixos/modules/services/logging/journalwatch.nix
index 576c646c0f..fb86904d1e 100644
--- a/third_party/nixpkgs/nixos/modules/services/logging/journalwatch.nix
+++ b/third_party/nixpkgs/nixos/modules/services/logging/journalwatch.nix
@@ -74,6 +74,7 @@ in {
mailFrom = mkOption {
type = types.str;
default = "journalwatch@${config.networking.hostName}";
+ defaultText = literalExpression ''"journalwatch@''${config.networking.hostName}"'';
description = ''
Mail address to send journalwatch reports from.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/logging/klogd.nix b/third_party/nixpkgs/nixos/modules/services/logging/klogd.nix
index 2d1f515da9..8d371c161e 100644
--- a/third_party/nixpkgs/nixos/modules/services/logging/klogd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/logging/klogd.nix
@@ -10,6 +10,7 @@ with lib;
services.klogd.enable = mkOption {
type = types.bool;
default = versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5";
+ defaultText = literalExpression ''versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5"'';
description = ''
Whether to enable klogd, the kernel log message processing
daemon. Since systemd handles logging of kernel messages on
diff --git a/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix b/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix
index 624b6cfb12..ba5d6e29d0 100644
--- a/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix
+++ b/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix
@@ -40,7 +40,7 @@ let
};
frequency = mkOption {
- type = types.enum [ "daily" "weekly" "monthly" "yearly" ];
+ type = types.enum [ "hourly" "daily" "weekly" "monthly" "yearly" ];
default = "daily";
description = ''
How often to rotate the logs.
@@ -155,7 +155,7 @@ in
systemd.services.logrotate = {
description = "Logrotate Service";
wantedBy = [ "multi-user.target" ];
- startAt = "*-*-* *:05:00";
+ startAt = "hourly";
script = ''
exec ${pkgs.logrotate}/sbin/logrotate ${configFile}
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/logging/logstash.nix b/third_party/nixpkgs/nixos/modules/services/logging/logstash.nix
index 044d533023..a08203dffe 100644
--- a/third_party/nixpkgs/nixos/modules/services/logging/logstash.nix
+++ b/third_party/nixpkgs/nixos/modules/services/logging/logstash.nix
@@ -23,12 +23,16 @@ let
logstashSettingsYml = pkgs.writeText "logstash.yml" cfg.extraSettings;
+ logstashJvmOptionsFile = pkgs.writeText "jvm.options" cfg.extraJvmOptions;
+
logstashSettingsDir = pkgs.runCommand "logstash-settings" {
+ inherit logstashJvmOptionsFile;
inherit logstashSettingsYml;
preferLocalBuild = true;
} ''
mkdir -p $out
ln -s $logstashSettingsYml $out/logstash.yml
+ ln -s $logstashJvmOptionsFile $out/jvm.options
'';
in
@@ -152,6 +156,15 @@ in
'';
};
+ extraJvmOptions = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Extra JVM options, one per line (jvm.options format).";
+ example = ''
+ -Xms2g
+ -Xmx2g
+ '';
+ };
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/mail/dovecot.nix b/third_party/nixpkgs/nixos/modules/services/mail/dovecot.nix
index 223f3bef77..c39827c5b8 100644
--- a/third_party/nixpkgs/nixos/modules/services/mail/dovecot.nix
+++ b/third_party/nixpkgs/nixos/modules/services/mail/dovecot.nix
@@ -103,11 +103,12 @@ let
plugin {
quota_rule = *:storage=${cfg.quotaGlobalPerUser}
- quota = maildir:User quota # per virtual mail user quota # BUG/FIXME broken, we couldn't get this working
+ quota = count:User quota # per virtual mail user quota
quota_status_success = DUNNO
quota_status_nouser = DUNNO
quota_status_overquota = "552 5.2.2 Mailbox is full"
quota_grace = 10%%
+ quota_vsizes = yes
}
''
)
diff --git a/third_party/nixpkgs/nixos/modules/services/mail/opendkim.nix b/third_party/nixpkgs/nixos/modules/services/mail/opendkim.nix
index beff57613a..f1ffc5d3ae 100644
--- a/third_party/nixpkgs/nixos/modules/services/mail/opendkim.nix
+++ b/third_party/nixpkgs/nixos/modules/services/mail/opendkim.nix
@@ -55,6 +55,7 @@ in {
domains = mkOption {
type = types.str;
default = "csl:${config.networking.hostName}";
+ defaultText = literalExpression ''"csl:''${config.networking.hostName}"'';
example = "csl:example.com,mydomain.net";
description = ''
Local domains set (see opendkim(8) for more information on datasets).
diff --git a/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix b/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix
index 6fc09682e0..23d3574ae2 100644
--- a/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix
+++ b/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix
@@ -294,7 +294,7 @@ in
};
submissionOptions = mkOption {
- type = types.attrs;
+ type = with types; attrsOf str;
default = {
smtpd_tls_security_level = "encrypt";
smtpd_sasl_auth_enable = "yes";
@@ -312,7 +312,7 @@ in
};
submissionsOptions = mkOption {
- type = types.attrs;
+ type = with types; attrsOf str;
default = {
smtpd_sasl_auth_enable = "yes";
smtpd_client_restrictions = "permit_sasl_authenticated,reject";
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix b/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix
new file mode 100644
index 0000000000..278924b05c
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix
@@ -0,0 +1,242 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.mjolnir;
+
+ yamlConfig = {
+ inherit (cfg) dataPath managementRoom protectedRooms;
+
+ accessToken = "@ACCESS_TOKEN@"; # will be replaced in "generateConfig"
+ homeserverUrl =
+ if cfg.pantalaimon.enable then
+ "http://${cfg.pantalaimon.options.listenAddress}:${toString cfg.pantalaimon.options.listenPort}"
+ else
+ cfg.homeserverUrl;
+
+ rawHomeserverUrl = cfg.homeserverUrl;
+
+ pantalaimon = {
+ inherit (cfg.pantalaimon) username;
+
+ use = cfg.pantalaimon.enable;
+ password = "@PANTALAIMON_PASSWORD@"; # will be replaced in "generateConfig"
+ };
+ };
+
+ moduleConfigFile = pkgs.writeText "module-config.yaml" (
+ generators.toYAML { } (filterAttrs (_: v: v != null)
+ (fold recursiveUpdate { } [ yamlConfig cfg.settings ])));
+
+ # these config files will be merged one after the other to build the final config
+ configFiles = [
+ "${pkgs.mjolnir}/share/mjolnir/config/default.yaml"
+ moduleConfigFile
+ ];
+
+ # this will generate the default.yaml file with all configFiles as inputs and
+ # replace all secret strings using replace-secret
+ generateConfig = pkgs.writeShellScript "mjolnir-generate-config" (
+ let
+ yqEvalStr = concatImapStringsSep " * " (pos: _: "select(fileIndex == ${toString (pos - 1)})") configFiles;
+ yqEvalArgs = concatStringsSep " " configFiles;
+ in
+ ''
+ set -euo pipefail
+
+ umask 077
+
+ # mjolnir will try to load a config from "./config/default.yaml" in the working directory
+ # -> let's place the generated config there
+ mkdir -p ${cfg.dataPath}/config
+
+ # merge all config files into one, overriding settings of the previous one with the next config
+ # e.g. "eval-all 'select(fileIndex == 0) * select(fileIndex == 1)' filea.yaml fileb.yaml" will merge filea.yaml with fileb.yaml
+ ${pkgs.yq-go}/bin/yq eval-all -P '${yqEvalStr}' ${yqEvalArgs} > ${cfg.dataPath}/config/default.yaml
+
+ ${optionalString (cfg.accessTokenFile != null) ''
+ ${pkgs.replace-secret}/bin/replace-secret '@ACCESS_TOKEN@' '${cfg.accessTokenFile}' ${cfg.dataPath}/config/default.yaml
+ ''}
+ ${optionalString (cfg.pantalaimon.passwordFile != null) ''
+ ${pkgs.replace-secret}/bin/replace-secret '@PANTALAIMON_PASSWORD@' '${cfg.pantalaimon.passwordFile}' ${cfg.dataPath}/config/default.yaml
+ ''}
+ ''
+ );
+in
+{
+ options.services.mjolnir = {
+ enable = mkEnableOption "Mjolnir, a moderation tool for Matrix";
+
+ homeserverUrl = mkOption {
+ type = types.str;
+ default = "https://matrix.org";
+ description = ''
+ Where the homeserver is located (client-server URL).
+
+ If pantalaimon.enable is true, this option will become the homeserver to which pantalaimon connects.
+ The listen address of pantalaimon will then become the homeserverUrl of mjolnir.
+ '';
+ };
+
+ accessTokenFile = mkOption {
+ type = with types; nullOr path;
+ default = null;
+ description = ''
+ File containing the matrix access token for the mjolnir user.
+ '';
+ };
+
+ pantalaimon = mkOption {
+ description = ''
+ pantalaimon options (enables E2E Encryption support).
+
+ This will create a pantalaimon instance with the name "mjolnir".
+ '';
+ default = { };
+ type = types.submodule {
+ options = {
+ enable = mkEnableOption ''
+ If true, accessToken is ignored and the username/password below will be
+ used instead. The access token of the bot will be stored in the dataPath.
+ '';
+
+ username = mkOption {
+ type = types.str;
+ description = "The username to login with.";
+ };
+
+ passwordFile = mkOption {
+ type = with types; nullOr path;
+ default = null;
+ description = ''
+ File containing the matrix password for the mjolnir user.
+ '';
+ };
+
+ options = mkOption {
+ type = types.submodule (import ./pantalaimon-options.nix);
+ default = { };
+ description = ''
+ passthrough additional options to the pantalaimon service.
+ '';
+ };
+ };
+ };
+ };
+
+ dataPath = mkOption {
+ type = types.path;
+ default = "/var/lib/mjolnir";
+ description = ''
+ The directory the bot should store various bits of information in.
+ '';
+ };
+
+ managementRoom = mkOption {
+ type = types.str;
+ default = "#moderators:example.org";
+ description = ''
+ The room ID where people can use the bot. The bot has no access controls, so
+ anyone in this room can use the bot - secure your room!
+ This should be a room alias or room ID - not a matrix.to URL.
+ Note: mjolnir is fairly verbose - expect a lot of messages from it.
+ '';
+ };
+
+ protectedRooms = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ example = literalExpression ''
+ [
+ "https://matrix.to/#/#yourroom:example.org"
+ "https://matrix.to/#/#anotherroom:example.org"
+ ]
+ '';
+ description = ''
+ A list of rooms to protect (matrix.to URLs).
+ '';
+ };
+
+ settings = mkOption {
+ default = { };
+ type = (pkgs.formats.yaml { }).type;
+ example = literalExpression ''
+ {
+ autojoinOnlyIfManager = true;
+ automaticallyRedactForReasons = [ "spam" "advertising" ];
+ }
+ '';
+ description = ''
+ Additional settings (see mjolnir default config for available settings). These settings will override settings made by the module config.
+ '';
+ };
+ };
+
+ config = mkIf config.services.mjolnir.enable {
+ assertions = [
+ {
+ assertion = !(cfg.pantalaimon.enable && cfg.pantalaimon.passwordFile == null);
+ message = "Specify pantalaimon.passwordFile";
+ }
+ {
+ assertion = !(cfg.pantalaimon.enable && cfg.accessTokenFile != null);
+ message = "Do not specify accessTokenFile when using pantalaimon";
+ }
+ {
+ assertion = !(!cfg.pantalaimon.enable && cfg.accessTokenFile == null);
+ message = "Specify accessTokenFile when not using pantalaimon";
+ }
+ ];
+
+ services.pantalaimon-headless.instances."mjolnir" = mkIf cfg.pantalaimon.enable
+ {
+ homeserver = cfg.homeserverUrl;
+ } // cfg.pantalaimon.options;
+
+ systemd.services.mjolnir = {
+ description = "mjolnir - a moderation tool for Matrix";
+ wants = [ "network-online.target" ] ++ optionals (cfg.pantalaimon.enable) [ "pantalaimon-mjolnir.service" ];
+ after = [ "network-online.target" ] ++ optionals (cfg.pantalaimon.enable) [ "pantalaimon-mjolnir.service" ];
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ ExecStart = ''${pkgs.mjolnir}/bin/mjolnir'';
+ ExecStartPre = [ generateConfig ];
+ WorkingDirectory = cfg.dataPath;
+ StateDirectory = "mjolnir";
+ StateDirectoryMode = "0700";
+ ProtectSystem = "strict";
+ ProtectHome = true;
+ PrivateTmp = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ User = "mjolnir";
+ Restart = "on-failure";
+
+ /* TODO: wait for #102397 to be resolved. Then load secrets from $CREDENTIALS_DIRECTORY+"/NAME"
+ DynamicUser = true;
+ LoadCredential = [] ++
+ optionals (cfg.accessTokenFile != null) [
+ "access_token:${cfg.accessTokenFile}"
+ ] ++
+ optionals (cfg.pantalaimon.passwordFile != null) [
+ "pantalaimon_password:${cfg.pantalaimon.passwordFile}"
+ ];
+ */
+ };
+ };
+
+ users = {
+ users.mjolnir = {
+ group = "mjolnir";
+ isSystemUser = true;
+ };
+ groups.mjolnir = { };
+ };
+ };
+
+ meta = {
+ doc = ./mjolnir.xml;
+ maintainers = with maintainers; [ jojosch ];
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.xml b/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.xml
new file mode 100644
index 0000000000..d462ddf7b0
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.xml
@@ -0,0 +1,134 @@
+
+ Mjolnir (Matrix Moderation Tool)
+
+ This chapter will show you how to set up your own, self-hosted
+ Mjolnir
+ instance.
+
+
+ As an all-in-one moderation tool, it can protect your server from
+ malicious invites, spam messages, and whatever else you don't want.
+ In addition to server-level protection, Mjolnir is great for communities
+ wanting to protect their rooms without having to use their personal
+ accounts for moderation.
+
+
+ The bot by default includes support for bans, redactions, anti-spam,
+ server ACLs, room directory changes, room alias transfers, account
+ deactivation, room shutdown, and more.
+
+
+ See the README
+ page and the Moderator's guide
+ for additional instructions on how to setup and use Mjolnir.
+
+
+ For additional settings
+ see the default configuration.
+
+
+ Mjolnir Setup
+
+ First create a new Room which will be used as a management room for Mjolnir. In
+ this room, Mjolnir will log possible errors and debugging information. You'll
+ need to set this Room-ID in services.mjolnir.managementRoom.
+
+
+ Next, create a new user for Mjolnir on your homeserver, if not present already.
+
+
+ The Mjolnir Matrix user expects to be free of any rate limiting.
+ See Synapse #6286
+ for an example on how to achieve this.
+
+
+ If you want Mjolnir to be able to deactivate users, move room aliases, shutdown rooms, etc.
+ you'll need to make the Mjolnir user a Matrix server admin.
+
+
+ Now invite the Mjolnir user to the management room.
+
+
+ It is recommended to use Pantalaimon,
+ so your management room can be encrypted. This also applies if you are looking to moderate an encrypted room.
+
+
+ To enable the Pantalaimon E2E Proxy for mjolnir, enable
+ services.mjolnir.pantalaimon. This will
+ autoconfigure a new Pantalaimon instance, which will connect to the homeserver
+ set in services.mjolnir.homeserverUrl and Mjolnir itself
+ will be configured to connect to the new Pantalaimon instance.
+
+
+{
+ services.mjolnir = {
+ enable = true;
+ homeserverUrl = "https://matrix.domain.tld";
+ pantalaimon = {
+ enable = true;
+ username = "mjolnir";
+ passwordFile = "/run/secrets/mjolnir-password";
+ };
+ protectedRooms = [
+ "https://matrix.to/#/!xxx:domain.tld"
+ ];
+ managementRoom = "!yyy:domain.tld";
+ };
+}
+
+
+ Element Matrix Services (EMS)
+
+ If you are using a managed "Element Matrix Services (EMS)"
+ server, you will need to consent to the terms and conditions. Upon startup, an error
+ log entry with a URL to the consent page will be generated.
+
+
+
+
+
+ Synapse Antispam Module
+
+ A Synapse module is also available to apply the same rulesets the bot
+ uses across an entire homeserver.
+
+
+ To use the Antispam Module, add matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
+ to the Synapse plugin list and enable the mjolnir.AntiSpam module.
+
+
+{
+ services.matrix-synapse = {
+ plugins = with pkgs; [
+ matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
+ ];
+ extraConfig = ''
+ modules:
+ - module: mjolnir.AntiSpam
+ config:
+ # Prevent servers/users in the ban lists from inviting users on this
+ # server to rooms. Default true.
+ block_invites: true
+ # Flag messages sent by servers/users in the ban lists as spam. Currently
+ # this means that spammy messages will appear as empty to users. Default
+ # false.
+ block_messages: false
+ # Remove users from the user directory search by filtering matrix IDs and
+ # display names by the entries in the user ban list. Default false.
+ block_usernames: false
+ # The room IDs of the ban lists to honour. Unlike other parts of Mjolnir,
+ # this list cannot be room aliases or permalinks. This server is expected
+ # to already be joined to the room - Mjolnir will not automatically join
+ # these rooms.
+ ban_lists:
+ - "!roomid:example.org"
+ '';
+ };
+}
+
+
+
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix
new file mode 100644
index 0000000000..035c57540d
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix
@@ -0,0 +1,70 @@
+{ config, lib, name, ... }:
+
+with lib;
+{
+ options = {
+ dataPath = mkOption {
+ type = types.path;
+ default = "/var/lib/pantalaimon-${name}";
+ description = ''
+ The directory where pantalaimon should store its state such as the database file.
+ '';
+ };
+
+ logLevel = mkOption {
+ type = types.enum [ "info" "warning" "error" "debug" ];
+ default = "warning";
+ description = ''
+ Set the log level of the daemon.
+ '';
+ };
+
+ homeserver = mkOption {
+ type = types.str;
+ example = "https://matrix.org";
+ description = ''
+ The URI of the homeserver that the pantalaimon proxy should
+ forward requests to, without the matrix API path but including
+ the http(s) schema.
+ '';
+ };
+
+ ssl = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether or not SSL verification should be enabled for outgoing
+ connections to the homeserver.
+ '';
+ };
+
+ listenAddress = mkOption {
+ type = types.str;
+ default = "localhost";
+ description = ''
+ The address where the daemon will listen to client connections
+ for this homeserver.
+ '';
+ };
+
+ listenPort = mkOption {
+ type = types.port;
+ default = 8009;
+ description = ''
+ The port where the daemon will listen to client connections for
+ this homeserver. Note that the listen address/port combination
+ needs to be unique between different homeservers.
+ '';
+ };
+
+ extraSettings = mkOption {
+ type = types.attrs;
+ default = { };
+ description = ''
+ Extra configuration options. See
+ pantalaimon(5)
+ for available options.
+ '';
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix
new file mode 100644
index 0000000000..63b40099ca
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix
@@ -0,0 +1,70 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.pantalaimon-headless;
+
+ iniFmt = pkgs.formats.ini { };
+
+ mkConfigFile = name: instanceConfig: iniFmt.generate "pantalaimon.conf" {
+ Default = {
+ LogLevel = instanceConfig.logLevel;
+ Notifications = false;
+ };
+
+ ${name} = (recursiveUpdate
+ {
+ Homeserver = instanceConfig.homeserver;
+ ListenAddress = instanceConfig.listenAddress;
+ ListenPort = instanceConfig.listenPort;
+ SSL = instanceConfig.ssl;
+
+ # Set some settings to prevent user interaction for headless operation
+ IgnoreVerification = true;
+ UseKeyring = false;
+ }
+ instanceConfig.extraSettings
+ );
+ };
+
+ mkPantalaimonService = name: instanceConfig:
+ nameValuePair "pantalaimon-${name}" {
+ description = "pantalaimon instance ${name} - E2EE aware proxy daemon for matrix clients";
+ wants = [ "network-online.target" ];
+ after = [ "network-online.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ ExecStart = ''${pkgs.pantalaimon-headless}/bin/pantalaimon --config ${mkConfigFile name instanceConfig} --data-path ${instanceConfig.dataPath}'';
+ Restart = "on-failure";
+ DynamicUser = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ PrivateTmp = true;
+ ProtectHome = true;
+ ProtectSystem = "strict";
+ StateDirectory = "pantalaimon-${name}";
+ };
+ };
+in
+{
+ options.services.pantalaimon-headless.instances = mkOption {
+ default = { };
+ type = types.attrsOf (types.submodule (import ./pantalaimon-options.nix));
+ description = ''
+ Declarative instance config.
+
+ Note: to use pantalaimon interactively, e.g. for a Matrix client which does not
+ support End-to-end encryption (like fractal), refer to the home-manager module.
+ '';
+ };
+
+ config = mkIf (config.services.pantalaimon-headless.instances != { })
+ {
+ systemd.services = mapAttrs' mkPantalaimonService config.services.pantalaimon-headless.instances;
+ };
+
+ meta = {
+ maintainers = with maintainers; [ jojosch ];
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/ananicy.nix b/third_party/nixpkgs/nixos/modules/services/misc/ananicy.nix
new file mode 100644
index 0000000000..f76f534fb4
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/misc/ananicy.nix
@@ -0,0 +1,107 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.ananicy;
+ configFile = pkgs.writeText "ananicy.conf" (generators.toKeyValue { } cfg.settings);
+ extraRules = pkgs.writeText "extraRules" cfg.extraRules;
+ servicename = if ((lib.getName cfg.package) == (lib.getName pkgs.ananicy-cpp)) then "ananicy-cpp" else "ananicy";
+in
+{
+ options = {
+ services.ananicy = {
+ enable = mkEnableOption "Ananicy, an auto nice daemon";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.ananicy;
+ defaultText = literalExpression "pkgs.ananicy";
+ example = literalExpression "pkgs.ananicy-cpp";
+ description = ''
+ Which ananicy package to use.
+ '';
+ };
+
+ settings = mkOption {
+ type = with types; attrsOf (oneOf [ int bool str ]);
+ default = { };
+ example = {
+ apply_nice = false;
+ };
+ description = ''
+ See
+ '';
+ };
+
+ extraRules = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ Extra rules in json format on separate lines. See:
+
+
+ '';
+ example = literalExpression ''
+ '''
+ { "name": "eog", "type": "Image-View" }
+ { "name": "fdupes", "type": "BG_CPUIO" }
+ '''
+ '';
+
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment = {
+ systemPackages = [ cfg.package ];
+ etc."ananicy.d".source = pkgs.runCommandLocal "ananicyfiles" { } ''
+ mkdir -p $out
+ # ananicy-cpp does not include rules or settings on purpose
+ cp -r ${pkgs.ananicy}/etc/ananicy.d/* $out
+ rm $out/ananicy.conf
+ cp ${configFile} $out/ananicy.conf
+ ${optionalString (cfg.extraRules != "") "cp ${extraRules} $out/nixRules.rules"}
+ '';
+ };
+
+ # ananicy and ananicy-cpp have different default settings
+ services.ananicy.settings =
+ let
+ mkOD = mkOptionDefault;
+ in
+ {
+ cgroup_load = mkOD true;
+ type_load = mkOD true;
+ rule_load = mkOD true;
+ apply_nice = mkOD true;
+ apply_ioclass = mkOD true;
+ apply_ionice = mkOD true;
+ apply_sched = mkOD true;
+ apply_oom_score_adj = mkOD true;
+ apply_cgroup = mkOD true;
+ } // (if ((lib.getName cfg.package) == (lib.getName pkgs.ananicy-cpp)) then {
+ # https://gitlab.com/ananicy-cpp/ananicy-cpp/-/blob/master/src/config.cpp#L12
+ loglevel = mkOD "warn"; # default is info but its spammy
+ cgroup_realtime_workaround = mkOD true;
+ } else {
+ # https://github.com/Nefelim4ag/Ananicy/blob/master/ananicy.d/ananicy.conf
+ check_disks_schedulers = mkOD true;
+ check_freq = mkOD 5;
+ });
+
+ systemd = {
+ # https://gitlab.com/ananicy-cpp/ananicy-cpp/#cgroups applies to both ananicy and -cpp
+ enableUnifiedCgroupHierarchy = mkDefault false;
+ packages = [ cfg.package ];
+ services."${servicename}" = {
+ wantedBy = [ "default.target" ];
+ };
+ };
+ };
+
+ meta = {
+ maintainers = with maintainers; [ artturin ];
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/etcd.nix b/third_party/nixpkgs/nixos/modules/services/misc/etcd.nix
index c4ea091a03..26ad1ad553 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/etcd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/etcd.nix
@@ -17,6 +17,7 @@ in {
name = mkOption {
description = "Etcd unique node name.";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
type = types.str;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix
index c0f7661c56..022a73c2b5 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix
@@ -299,7 +299,7 @@ in
ENABLED = true;
MAILER_TYPE = "sendmail";
FROM = "do-not-reply@example.org";
- SENDMAIL_PATH = "${pkgs.system-sendmail}/bin/sendmail";
+ SENDMAIL_PATH = "''${pkgs.system-sendmail}/bin/sendmail";
};
other = {
SHOW_FOOTER_VERSION = false;
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
index b2abe70627..01a7ea42d9 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -475,6 +475,7 @@ in {
host = mkOption {
type = types.str;
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
description = "GitLab host name. Used e.g. for copy-paste URLs.";
};
@@ -534,6 +535,7 @@ in {
host = mkOption {
type = types.str;
default = config.services.gitlab.host;
+ defaultText = literalExpression "config.services.gitlab.host";
description = "GitLab container registry host name.";
};
port = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gollum.nix b/third_party/nixpkgs/nixos/modules/services/misc/gollum.nix
index 4053afa69b..cad73a871b 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gollum.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gollum.nix
@@ -100,6 +100,7 @@ in
serviceConfig = {
User = config.users.users.gollum.name;
Group = config.users.groups.gollum.name;
+ WorkingDirectory = cfg.stateDir;
ExecStart = ''
${pkgs.gollum}/bin/gollum \
--port ${toString cfg.port} \
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix b/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix
index 8279d075ba..2de25d87ed 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix
@@ -24,6 +24,8 @@ let
availableComponents = cfg.package.availableComponents;
+ explicitComponents = cfg.package.extraComponents;
+
usedPlatforms = config:
if isAttrs config then
optional (config ? platform) config.platform
@@ -42,10 +44,13 @@ let
# } ];
useComponentPlatform = component: elem component (usedPlatforms cfg.config);
- # Returns whether component is used in config
+ useExplicitComponent = component: elem component explicitComponents;
+
+ # Returns whether component is used in config or explicitly passed into package
useComponent = component:
hasAttrByPath (splitString "." component) cfg.config
- || useComponentPlatform component;
+ || useComponentPlatform component
+ || useExplicitComponent component;
# List of components used in config
extraComponents = filter useComponent availableComponents;
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/matrix-appservice-discord.nix b/third_party/nixpkgs/nixos/modules/services/misc/matrix-appservice-discord.nix
index c448614eca..947471e56b 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/matrix-appservice-discord.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/matrix-appservice-discord.nix
@@ -98,6 +98,9 @@ in {
serviceDependencies = mkOption {
type = with types; listOf str;
default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+ defaultText = literalExpression ''
+ optional config.services.matrix-synapse.enable "matrix-synapse.service"
+ '';
description = ''
List of Systemd services to require and wait for when starting the application service,
such as the Matrix homeserver if it's running on the same host.
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix b/third_party/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
index 950c72c6e5..0f96f6b1ee 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
@@ -227,6 +227,7 @@ in {
type = types.str;
example = "example.com";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
description = ''
The domain name of the server, with optional explicit port.
This is used by remote servers to look up the server address.
@@ -379,6 +380,11 @@ in {
default = if versionAtLeast config.system.stateVersion "18.03"
then "psycopg2"
else "sqlite3";
+ defaultText = literalExpression ''
+ if versionAtLeast config.system.stateVersion "18.03"
+ then "psycopg2"
+ else "sqlite3"
+ '';
description = ''
The database engine name. Can be sqlite or psycopg2.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix b/third_party/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
index 59d0b68240..3b070b873b 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
@@ -108,6 +108,9 @@ in {
serviceDependencies = mkOption {
type = with types; listOf str;
default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+ defaultText = literalExpression ''
+ optional config.services.matrix-synapse.enable "matrix-synapse.service"
+ '';
description = ''
List of Systemd services to require and wait for when starting the application service.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/moonraker.nix b/third_party/nixpkgs/nixos/modules/services/misc/moonraker.nix
index de8668a0c0..e08d2f8421 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/moonraker.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/moonraker.nix
@@ -18,6 +18,7 @@ in {
klipperSocket = mkOption {
type = types.path;
default = config.services.klipper.apiSocket;
+ defaultText = literalExpression "config.services.klipper.apiSocket";
description = "Path to Klipper's API socket.";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/mx-puppet-discord.nix b/third_party/nixpkgs/nixos/modules/services/misc/mx-puppet-discord.nix
index c34803f972..b6f5e04511 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/mx-puppet-discord.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/mx-puppet-discord.nix
@@ -39,7 +39,7 @@ in {
#defaults to sqlite but can be configured to use postgresql with
#connstring
- database.filename = "${dataDir}/mx-puppet-discord/database.db";
+ database.filename = "${dataDir}/database.db";
logging = {
console = "info";
lineDateFormat = "MMM-D HH:mm:ss.SSS";
@@ -67,6 +67,9 @@ in {
serviceDependencies = mkOption {
type = with types; listOf str;
default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+ defaultText = literalExpression ''
+ optional config.services.matrix-synapse.enable "matrix-synapse.service"
+ '';
description = ''
List of Systemd services to require and wait for when starting the application service.
'';
@@ -110,7 +113,9 @@ in {
UMask = 0027;
ExecStart = ''
- ${pkgs.mx-puppet-discord}/bin/mx-puppet-discord -c ${settingsFile}
+ ${pkgs.mx-puppet-discord}/bin/mx-puppet-discord \
+ -c ${settingsFile} \
+ -f ${registrationFile}
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix b/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
index d049370047..fb643e7a66 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
@@ -74,6 +74,8 @@ in
imports = [
(mkRenamedOptionModule [ "nix" "useChroot" ] [ "nix" "useSandbox" ])
(mkRenamedOptionModule [ "nix" "chrootDirs" ] [ "nix" "sandboxPaths" ])
+ (mkRenamedOptionModule [ "nix" "daemonIONiceLevel" ] [ "nix" "daemonIOSchedPriority" ])
+ (mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.")
];
###### interface
@@ -184,34 +186,51 @@ in
'';
};
- daemonNiceLevel = mkOption {
- type = types.int;
- default = 0;
+ daemonCPUSchedPolicy = mkOption {
+ type = types.enum ["other" "batch" "idle"];
+ default = "other";
+ example = "batch";
description = ''
- Nix daemon process priority. This priority propagates to build processes.
- 0 is the default Unix process priority, 19 is the lowest. Note that nix
- bypasses nix-daemon when running as root and this option does not have
- any effect in such a case.
+ Nix daemon process CPU scheduling policy. This policy propagates to
+ build processes. other is the default scheduling policy for regular
+ tasks. The batch policy is similar to other, but optimised for
+ non-interactive tasks. idle is for extremely low-priority tasks
+ that should only be run when no other task requires CPU time.
- Please note that if used on a recent Linux kernel with group scheduling,
- setting the nice level will only have an effect relative to other threads
- in the same task group. Therefore this option is only useful if
- autogrouping has been disabled (see the kernel.sched_autogroup_enabled
- sysctl) and no systemd unit uses any of the per-service CPU accounting
- features of systemd. Otherwise the Nix daemon process may be placed in a
- separate task group and the nice level setting will have no effect.
- Refer to the man pages sched(7) and systemd.resource-control(5) for
- details.
- '';
+ Please note that while using the idle policy may greatly improve
+ responsiveness of a system performing expensive builds, it may also
+ slow down and potentially starve crucial configuration updates
+ during load.
+ '';
};
- daemonIONiceLevel = mkOption {
+ daemonIOSchedClass = mkOption {
+ type = types.enum ["best-effort" "idle"];
+ default = "best-effort";
+ example = "idle";
+ description = ''
+ Nix daemon process I/O scheduling class. This class propagates to
+ build processes. best-effort is the default class for regular tasks.
+ The idle class is for extremely low-priority tasks that should only
+ perform I/O when no other task does.
+
+ Please note that while using the idle scheduling class can improve
+ responsiveness of a system performing expensive builds, it might also
+ slow down or starve crucial configuration updates during load.
+ '';
+ };
+
+ daemonIOSchedPriority = mkOption {
type = types.int;
default = 0;
+ example = 1;
description = ''
- Nix daemon process I/O priority. This priority propagates to build processes.
- 0 is the default Unix process I/O priority, 7 is the lowest.
- '';
+ Nix daemon process I/O scheduling priority. This priority propagates
+ to build processes. The supported priorities depend on the
+ scheduling policy: With idle, priorities are not used in scheduling
+ decisions. best-effort supports values in the range 0 (high) to 7
+ (low).
+ '';
};
buildMachines = mkOption {
@@ -529,7 +548,7 @@ in
[ nix
pkgs.nix-info
]
- ++ optional (config.programs.bash.enableCompletion && !versionAtLeast nixVersion "2.4pre") pkgs.nix-bash-completions;
+ ++ optional (config.programs.bash.enableCompletion) pkgs.nix-bash-completions;
environment.etc."nix/nix.conf".source = nixConf;
@@ -587,8 +606,9 @@ in
unitConfig.RequiresMountsFor = "/nix/store";
serviceConfig =
- { Nice = cfg.daemonNiceLevel;
- IOSchedulingPriority = cfg.daemonIONiceLevel;
+ { CPUSchedulingPolicy = cfg.daemonCPUSchedPolicy;
+ IOSchedulingClass = cfg.daemonIOSchedClass;
+ IOSchedulingPriority = cfg.daemonIOSchedPriority;
LimitNOFILE = 4096;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/plex.nix b/third_party/nixpkgs/nixos/modules/services/misc/plex.nix
index 5f99ee866a..2ae4e80d5c 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/plex.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/plex.nix
@@ -65,6 +65,29 @@ in
'';
};
+ extraScanners = mkOption {
+ type = types.listOf types.path;
+ default = [];
+ description = ''
+ A list of paths to extra scanners to install in Plex's scanners
+ directory.
+
+ Every time the systemd unit for Plex starts up, all of the symlinks
+ in Plex's scanners directory will be cleared and this module will
+ symlink all of the paths specified here to that directory.
+ '';
+ example = literalExpression ''
+ [
+ (fetchFromGitHub {
+ owner = "ZeroQI";
+ repo = "Absolute-Series-Scanner";
+ rev = "773a39f502a1204b0b0255903cee4ed02c46fde0";
+ sha256 = "4l+vpiDdC8L/EeJowUgYyB3JPNTZ1sauN8liFAcK+PY=";
+ })
+ ]
+ '';
+ };
+
package = mkOption {
type = types.package;
default = pkgs.plex;
@@ -113,6 +136,7 @@ in
# Configuration for our FHS userenv script
PLEX_DATADIR=cfg.dataDir;
PLEX_PLUGINS=concatMapStringsSep ":" builtins.toString cfg.extraPlugins;
+ PLEX_SCANNERS=concatMapStringsSep ":" builtins.toString cfg.extraScanners;
# The following variables should be set by the FHS userenv script:
# PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/signald.nix b/third_party/nixpkgs/nixos/modules/services/misc/signald.nix
new file mode 100644
index 0000000000..4cd34e4326
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix b/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
index 9c812d6b04..c84a75b0ca 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
@@ -71,6 +71,9 @@ in
originBase = mkOption {
type = types.str;
default = with config.networking; hostName + lib.optionalString (domain != null) ".${domain}";
+ defaultText = literalExpression ''
+ with config.networking; hostName + optionalString (domain != null) ".''${domain}"
+ '';
description = ''
Host name used by reverse-proxy and for default settings. Will host services at git."''${originBase}". For example: git.sr.ht
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/xmrig.nix b/third_party/nixpkgs/nixos/modules/services/misc/xmrig.nix
new file mode 100644
index 0000000000..c5c3803920
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/misc/xmrig.nix
@@ -0,0 +1,76 @@
+{ 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;
+ defaultText = literalExpression "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 {
+ boot.kernelModules = [ "msr" ];
+
+ 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}";
+ # https://xmrig.com/docs/miner/randomx-optimization-guide/msr
+ # If you use recent XMRig with root privileges (Linux) or admin
+ # privileges (Windows) the miner configure all MSR registers
+ # automatically.
+ DynamicUser = lib.mkDefault false;
+ };
+ };
+ };
+
+ meta = with lib; {
+ maintainers = with maintainers; [ ratsclub ];
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix
index da051dbe46..dfbf07efca 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix
@@ -111,6 +111,8 @@ in {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "docker.service" "influxdb.service" ];
+ path = optionals config.boot.zfs.enabled [ pkgs.zfs ];
+
postStart = mkBefore ''
until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/containers/'; do
sleep 1;
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix
index ad0cf4735a..660d108587 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix
@@ -57,7 +57,7 @@ in {
description = ''
Build a minimal collectd package with only the configured `services.collectd.plugins`
'';
- type = types.bool;
+ type = bool;
};
user = mkOption {
@@ -98,7 +98,7 @@ in {
description = ''
Attribute set of plugin names to plugin config segments
'';
- type = types.attrsOf types.str;
+ type = attrsOf lines;
};
extraConfig = mkOption {
@@ -132,7 +132,12 @@ in {
users.users = optionalAttrs (cfg.user == "collectd") {
collectd = {
isSystemUser = true;
+ group = "collectd";
};
};
+
+ users.groups = optionalAttrs (cfg.user == "collectd") {
+ collectd = {};
+ };
};
}
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/graphite.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/graphite.nix
index 4690a252c9..0dbb33530c 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/graphite.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/graphite.nix
@@ -324,6 +324,7 @@ in {
mongoUrl = mkOption {
default = "mongodb://${config.services.mongodb.bind_ip}:27017/seyren";
+ defaultText = literalExpression ''"mongodb://''${config.services.mongodb.bind_ip}:27017/seyren"'';
description = "Mongodb connection string.";
type = types.str;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix
index 83020d52fc..2c7f0ed196 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix
@@ -131,6 +131,7 @@ in
validateConfig = mkOption {
type = types.bool;
default = pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform;
+ defaultText = literalExpression "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform";
description = "if true, the syntax of the nagios configuration file is checked at build time";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/parsedmarc.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/parsedmarc.nix
index eeee04b440..8571e1f01e 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/parsedmarc.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/parsedmarc.nix
@@ -93,6 +93,7 @@ in
dashboard = lib.mkOption {
type = lib.types.bool;
default = config.services.grafana.enable;
+ defaultText = lib.literalExpression "config.services.grafana.enable";
description = ''
Whether the official parsedmarc grafana dashboard should
be provisioned to the local grafana instance.
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
index d2b37cf688..f20b8dde1a 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
@@ -7,19 +7,36 @@ let
workingDir = "/var/lib/" + cfg.stateDir;
+ prometheusYmlOut = "${workingDir}/prometheus-substituted.yaml";
+
+ triggerReload = pkgs.writeShellScriptBin "trigger-reload-prometheus" ''
+ PATH="${makeBinPath (with pkgs; [ systemd ])}"
+ if systemctl -q is-active prometheus.service; then
+ systemctl reload prometheus.service
+ fi
+ '';
+
+ reload = pkgs.writeShellScriptBin "reload-prometheus" ''
+ PATH="${makeBinPath (with pkgs; [ systemd coreutils gnugrep ])}"
+ cursor=$(journalctl --show-cursor -n0 | grep -oP "cursor: \K.*")
+ kill -HUP $MAINPID
+ journalctl -u prometheus.service --after-cursor="$cursor" -f \
+ | grep -m 1 "Completed loading of configuration file" > /dev/null
+ '';
+
# a wrapper that verifies that the configuration is valid
promtoolCheck = what: name: file:
if cfg.checkConfig then
pkgs.runCommandLocal
"${name}-${replaceStrings [" "] [""] what}-checked"
{ buildInputs = [ cfg.package ]; } ''
- ln -s ${file} $out
- promtool ${what} $out
- '' else file;
+ ln -s ${file} $out
+ promtool ${what} $out
+ '' else file;
# Pretty-print JSON to a file
writePrettyJSON = name: x:
- pkgs.runCommandLocal name {} ''
+ pkgs.runCommandLocal name { } ''
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
'';
@@ -39,48 +56,111 @@ let
};
};
- prometheusYml = let
- yml = if cfg.configText != null then
- pkgs.writeText "prometheus.yml" cfg.configText
- else generatedPrometheusYml;
- in promtoolCheck "check config" "prometheus.yml" yml;
+ prometheusYml =
+ let
+ yml =
+ if cfg.configText != null then
+ pkgs.writeText "prometheus.yml" cfg.configText
+ else generatedPrometheusYml;
+ in
+ promtoolCheck "check config" "prometheus.yml" yml;
cmdlineArgs = cfg.extraFlags ++ [
"--storage.tsdb.path=${workingDir}/data/"
- "--config.file=/run/prometheus/prometheus-substituted.yaml"
+ "--config.file=${
+ if cfg.enableReload
+ then "/etc/prometheus/prometheus.yaml"
+ else prometheusYml
+ }"
"--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
"--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
"--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
- ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
+ ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
filterValidPrometheus = filterAttrsListRecursive (n: v: !(n == "_module" || v == null));
filterAttrsListRecursive = pred: x:
if isAttrs x then
- listToAttrs (
- concatMap (name:
- let v = x.${name}; in
- if pred name v then [
- (nameValuePair name (filterAttrsListRecursive pred v))
- ] else []
- ) (attrNames x)
- )
+ listToAttrs
+ (
+ concatMap
+ (name:
+ let v = x.${name}; in
+ if pred name v then [
+ (nameValuePair name (filterAttrsListRecursive pred v))
+ ] else [ ]
+ )
+ (attrNames x)
+ )
else if isList x then
map (filterAttrsListRecursive pred) x
else x;
- mkDefOpt = type : defaultStr : description : mkOpt type (description + ''
+ #
+ # Config types: helper functions
+ #
+
+ mkDefOpt = type: defaultStr: description: mkOpt type (description + ''
Defaults to ${defaultStr} in prometheus
when set to null.
'');
- mkOpt = type : description : mkOption {
+ mkOpt = type: description: mkOption {
type = types.nullOr type;
default = null;
inherit description;
};
+ mkSdConfigModule = extraOptions: types.submodule {
+ options = {
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Optional HTTP basic authentication information.
+ '';
+
+ authorization = mkOpt
+ (types.submodule {
+ options = {
+ type = mkDefOpt types.str "Bearer" ''
+ Sets the authentication type.
+ '';
+
+ credentials = mkOpt types.str ''
+ Sets the credentials. It is mutually exclusive with `credentials_file`.
+ '';
+
+ credentials_file = mkOpt types.str ''
+ Sets the credentials to the credentials read from the configured file.
+ It is mutually exclusive with `credentials`.
+ '';
+ };
+ }) ''
+ Optional `Authorization` header configuration.
+ '';
+
+ oauth2 = mkOpt promtypes.oauth2 ''
+ Optional OAuth 2.0 configuration.
+ Cannot be used at the same time as basic_auth or authorization.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ } // extraOptions;
+ };
+
+ #
+ # Config types: general
+ #
+
promTypes.globalConfig = types.submodule {
options = {
scrape_interval = mkDefOpt types.str "1m" ''
@@ -103,153 +183,68 @@ let
};
};
- promTypes.remote_read = types.submodule {
+ promTypes.basic_auth = types.submodule {
options = {
- url = mkOption {
+ username = mkOption {
type = types.str;
description = ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
+ HTTP username
'';
};
- name = mkOpt types.str ''
- Name of the remote read config, which if specified must be unique among remote read configs.
- The name will be used in metrics and logging in place of a generated value to help users distinguish between
- remote read configs.
- '';
- required_matchers = mkOpt (types.attrsOf types.str) ''
- An optional list of equality matchers which have to be
- present in a selector to query the remote read endpoint.
- '';
- remote_timeout = mkOpt types.str ''
- Timeout for requests to the remote read endpoint.
- '';
- read_recent = mkOpt types.bool ''
- Whether reads should be made for queries for time ranges that
- the local storage should have complete data for.
- '';
- basic_auth = mkOpt (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOpt types.str "HTTP password";
- password_file = mkOpt types.str "HTTP password file";
- };
- }) ''
- Sets the `Authorization` header on every remote read request with the
- configured username and password.
- password and password_file are mutually exclusive.
- '';
- bearer_token = mkOpt types.str ''
- Sets the `Authorization` header on every remote read request with
- the configured bearer token. It is mutually exclusive with `bearer_token_file`.
- '';
- bearer_token_file = mkOpt types.str ''
- Sets the `Authorization` header on every remote read request with the bearer token
- read from the configured file. It is mutually exclusive with `bearer_token`.
- '';
- tls_config = mkOpt promTypes.tls_config ''
- Configures the remote read request's TLS settings.
- '';
- proxy_url = mkOpt types.str "Optional Proxy URL.";
+ password = mkOpt types.str "HTTP password";
+ password_file = mkOpt types.str "HTTP password file";
};
};
- promTypes.remote_write = types.submodule {
+ promTypes.tls_config = types.submodule {
options = {
- url = mkOption {
- type = types.str;
- description = ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
- '';
- };
- remote_timeout = mkOpt types.str ''
- Timeout for requests to the remote write endpoint.
+ ca_file = mkOpt types.str ''
+ CA certificate to validate API server certificate with.
'';
- write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
- List of remote write relabel configurations.
+
+ cert_file = mkOpt types.str ''
+ Certificate file for client cert authentication to the server.
'';
- name = mkOpt types.str ''
- Name of the remote write config, which if specified must be unique among remote write configs.
- The name will be used in metrics and logging in place of a generated value to help users distinguish between
- remote write configs.
+
+ key_file = mkOpt types.str ''
+ Key file for client cert authentication to the server.
'';
- basic_auth = mkOpt (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOpt types.str "HTTP password";
- password_file = mkOpt types.str "HTTP password file";
- };
- }) ''
- Sets the `Authorization` header on every remote write request with the
- configured username and password.
- password and password_file are mutually exclusive.
+
+ server_name = mkOpt types.str ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
'';
- bearer_token = mkOpt types.str ''
- Sets the `Authorization` header on every remote write request with
- the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+
+ insecure_skip_verify = mkOpt types.bool ''
+ Disable validation of the server certificate.
'';
- bearer_token_file = mkOpt types.str ''
- Sets the `Authorization` header on every remote write request with the bearer token
- read from the configured file. It is mutually exclusive with `bearer_token`.
+ };
+ };
+
+ promtypes.oauth2 = types.submodule {
+ options = {
+ client_id = mkOpt types.str ''
+ OAuth client ID.
'';
- tls_config = mkOpt promTypes.tls_config ''
- Configures the remote write request's TLS settings.
+
+ client_secret = mkOpt types.str ''
+ OAuth client secret.
'';
- proxy_url = mkOpt types.str "Optional Proxy URL.";
- queue_config = mkOpt (types.submodule {
- options = {
- capacity = mkOpt types.int ''
- Number of samples to buffer per shard before we block reading of more
- samples from the WAL. It is recommended to have enough capacity in each
- shard to buffer several requests to keep throughput up while processing
- occasional slow remote requests.
- '';
- max_shards = mkOpt types.int ''
- Maximum number of shards, i.e. amount of concurrency.
- '';
- min_shards = mkOpt types.int ''
- Minimum number of shards, i.e. amount of concurrency.
- '';
- max_samples_per_send = mkOpt types.int ''
- Maximum number of samples per send.
- '';
- batch_send_deadline = mkOpt types.str ''
- Maximum time a sample will wait in buffer.
- '';
- min_backoff = mkOpt types.str ''
- Initial retry delay. Gets doubled for every retry.
- '';
- max_backoff = mkOpt types.str ''
- Maximum retry delay.
- '';
- };
- }) ''
- Configures the queue used to write to remote storage.
+
+ client_secret_file = mkOpt types.str ''
+ Read the client secret from a file. It is mutually exclusive with `client_secret`.
'';
- metadata_config = mkOpt (types.submodule {
- options = {
- send = mkOpt types.bool ''
- Whether metric metadata is sent to remote storage or not.
- '';
- send_interval = mkOpt types.str ''
- How frequently metric metadata is sent to remote storage.
- '';
- };
- }) ''
- Configures the sending of series metadata to remote storage.
- Metadata configuration is subject to change at any point
- or be removed in future releases.
+
+ scopes = mkOpt (types.listOf types.str) ''
+ Scopes for the token request.
+ '';
+
+ token_url = mkOpt types.str ''
+ The URL to fetch the token from.
+ '';
+
+ endpoint_params = mkOpt (types.attrsOf types.str) ''
+ Optional parameters to append to the token URL.
'';
};
};
@@ -307,7 +302,7 @@ let
by the target will be ignored.
'';
- scheme = mkDefOpt (types.enum ["http" "https"]) "http" ''
+ scheme = mkDefOpt (types.enum [ "http" "https" ]) "http" ''
The URL scheme with which to fetch metrics from targets.
'';
@@ -315,18 +310,7 @@ let
Optional HTTP URL parameters.
'';
- basic_auth = mkOpt (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOpt types.str "HTTP password";
- password_file = mkOpt types.str "HTTP password file";
- };
- }) ''
+ basic_auth = mkOpt promTypes.basic_auth ''
Sets the `Authorization` header on every scrape request with the
configured username and password.
password and password_file are mutually exclusive.
@@ -352,16 +336,36 @@ let
Optional proxy URL.
'';
- ec2_sd_configs = mkOpt (types.listOf promTypes.ec2_sd_config) ''
- List of EC2 service discovery configurations.
+ azure_sd_configs = mkOpt (types.listOf promTypes.azure_sd_config) ''
+ List of Azure service discovery configurations.
+ '';
+
+ consul_sd_configs = mkOpt (types.listOf promTypes.consul_sd_config) ''
+ List of Consul service discovery configurations.
+ '';
+
+ digitalocean_sd_configs = mkOpt (types.listOf promTypes.digitalocean_sd_config) ''
+ List of DigitalOcean service discovery configurations.
+ '';
+
+ docker_sd_configs = mkOpt (types.listOf promTypes.docker_sd_config) ''
+ List of Docker service discovery configurations.
+ '';
+
+ dockerswarm_sd_configs = mkOpt (types.listOf promTypes.dockerswarm_sd_config) ''
+ List of Docker Swarm service discovery configurations.
'';
dns_sd_configs = mkOpt (types.listOf promTypes.dns_sd_config) ''
List of DNS service discovery configurations.
'';
- consul_sd_configs = mkOpt (types.listOf promTypes.consul_sd_config) ''
- List of Consul service discovery configurations.
+ ec2_sd_configs = mkOpt (types.listOf promTypes.ec2_sd_config) ''
+ List of EC2 service discovery configurations.
+ '';
+
+ eureka_sd_configs = mkOpt (types.listOf promTypes.eureka_sd_config) ''
+ List of Eureka service discovery configurations.
'';
file_sd_configs = mkOpt (types.listOf promTypes.file_sd_config) ''
@@ -376,6 +380,62 @@ let
relevant Prometheus configuration docs for more detail.
'';
+ hetzner_sd_configs = mkOpt (types.listOf promTypes.hetzner_sd_config) ''
+ List of Hetzner service discovery configurations.
+ '';
+
+ http_sd_configs = mkOpt (types.listOf promTypes.http_sd_config) ''
+ List of HTTP service discovery configurations.
+ '';
+
+ kubernetes_sd_configs = mkOpt (types.listOf promTypes.kubernetes_sd_config) ''
+ List of Kubernetes service discovery configurations.
+ '';
+
+ kuma_sd_configs = mkOpt (types.listOf promTypes.kuma_sd_config) ''
+ List of Kuma service discovery configurations.
+ '';
+
+ lightsail_sd_configs = mkOpt (types.listOf promTypes.lightsail_sd_config) ''
+ List of Lightsail service discovery configurations.
+ '';
+
+ linode_sd_configs = mkOpt (types.listOf promTypes.linode_sd_config) ''
+ List of Linode service discovery configurations.
+ '';
+
+ marathon_sd_configs = mkOpt (types.listOf promTypes.marathon_sd_config) ''
+ List of Marathon service discovery configurations.
+ '';
+
+ nerve_sd_configs = mkOpt (types.listOf promTypes.nerve_sd_config) ''
+ List of AirBnB's Nerve service discovery configurations.
+ '';
+
+ openstack_sd_configs = mkOpt (types.listOf promTypes.openstack_sd_config) ''
+ List of OpenStack service discovery configurations.
+ '';
+
+ puppetdb_sd_configs = mkOpt (types.listOf promTypes.puppetdb_sd_config) ''
+ List of PuppetDB service discovery configurations.
+ '';
+
+ scaleway_sd_configs = mkOpt (types.listOf promTypes.scaleway_sd_config) ''
+ List of Scaleway service discovery configurations.
+ '';
+
+ serverset_sd_configs = mkOpt (types.listOf promTypes.serverset_sd_config) ''
+ List of Zookeeper Serverset service discovery configurations.
+ '';
+
+ triton_sd_configs = mkOpt (types.listOf promTypes.triton_sd_config) ''
+ List of Triton Serverset service discovery configurations.
+ '';
+
+ uyuni_sd_configs = mkOpt (types.listOf promTypes.uyuni_sd_config) ''
+ List of Uyuni Serverset service discovery configurations.
+ '';
+
static_configs = mkOpt (types.listOf promTypes.static_config) ''
List of labeled target groups for this job.
'';
@@ -388,29 +448,245 @@ let
List of metric relabel configurations.
'';
+ body_size_limit = mkDefOpt types.str "0" ''
+ An uncompressed response body larger than this many bytes will cause the
+ scrape to fail. 0 means no limit. Example: 100MB.
+ This is an experimental feature, this behaviour could
+ change or be removed in the future.
+ '';
+
sample_limit = mkDefOpt types.int "0" ''
Per-scrape limit on number of scraped samples that will be accepted.
If more than this number of samples are present after metric relabelling
the entire scrape will be treated as failed. 0 means no limit.
'';
+
+ label_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on number of labels that will be accepted for a sample. If
+ more than this number of labels are present post metric-relabeling, the
+ entire scrape will be treated as failed. 0 means no limit.
+ '';
+
+ label_name_length_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on length of labels name that will be accepted for a sample.
+ If a label name is longer than this number post metric-relabeling, the entire
+ scrape will be treated as failed. 0 means no limit.
+ '';
+
+ label_value_length_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on length of labels value that will be accepted for a sample.
+ If a label value is longer than this number post metric-relabeling, the
+ entire scrape will be treated as failed. 0 means no limit.
+ '';
+
+ target_limit = mkDefOpt types.int "0" ''
+ Per-scrape config limit on number of unique targets that will be
+ accepted. If more than this number of targets are present after target
+ relabeling, Prometheus will mark the targets as failed without scraping them.
+ 0 means no limit. This is an experimental feature, this behaviour could
+ change in the future.
+ '';
};
};
- promTypes.static_config = types.submodule {
+ #
+ # Config types: service discovery
+ #
+
+ # For this one, the docs actually define all types needed to use mkSdConfigModule, but a bunch
+ # of them are marked with 'currently not support by Azure' so we don't bother adding them in
+ # here.
+ promTypes.azure_sd_config = types.submodule {
options = {
- targets = mkOption {
+ environment = mkDefOpt types.str "AzurePublicCloud" ''
+ The Azure environment.
+ '';
+
+ authentication_method = mkDefOpt (types.enum [ "OAuth" "ManagedIdentity" ]) "OAuth" ''
+ The authentication method, either OAuth or ManagedIdentity.
+ See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview
+ '';
+
+ subscription_id = mkOption {
+ type = types.str;
+ description = ''
+ The subscription ID.
+ '';
+ };
+
+ tenant_id = mkOpt types.str ''
+ Optional tenant ID. Only required with authentication_method OAuth.
+ '';
+
+ client_id = mkOpt types.str ''
+ Optional client ID. Only required with authentication_method OAuth.
+ '';
+
+ client_secret = mkOpt types.str ''
+ Optional client secret. Only required with authentication_method OAuth.
+ '';
+
+ refresh_interval = mkDefOpt types.str "300s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP
+ address, this must instead be specified in the relabeling
+ rule.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ promTypes.consul_sd_config = mkSdConfigModule {
+ server = mkDefOpt types.str "localhost:8500" ''
+ Consul server to query.
+ '';
+
+ token = mkOpt types.str "Consul token";
+
+ datacenter = mkOpt types.str "Consul datacenter";
+
+ scheme = mkDefOpt types.str "http" "Consul scheme";
+
+ username = mkOpt types.str "Consul username";
+
+ password = mkOpt types.str "Consul password";
+
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the Consul request's TLS settings.
+ '';
+
+ services = mkOpt (types.listOf types.str) ''
+ A list of services for which targets are retrieved.
+ '';
+
+ tags = mkOpt (types.listOf types.str) ''
+ An optional list of tags used to filter nodes for a given
+ service. Services must contain all tags in the list.
+ '';
+
+ node_meta = mkOpt (types.attrsOf types.str) ''
+ Node metadata used to filter nodes for a given service.
+ '';
+
+ tag_separator = mkDefOpt types.str "," ''
+ The string by which Consul tags are joined into the tag label.
+ '';
+
+ allow_stale = mkOpt types.bool ''
+ Allow stale Consul results
+ (see ).
+
+ Will reduce load on Consul.
+ '';
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time after which the provided names are refreshed.
+
+ On large setup it might be a good idea to increase this value
+ because the catalog will change all the time.
+ '';
+ };
+
+ promTypes.digitalocean_sd_config = mkSdConfigModule {
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the droplets are refreshed.
+ '';
+ };
+
+ mkDockerSdConfigModule = extraOptions: mkSdConfigModule ({
+ host = mkOption {
+ type = types.str;
+ description = ''
+ Address of the Docker daemon.
+ '';
+ };
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from, when `role` is nodes, and for discovered
+ tasks and services that don't have published ports.
+ '';
+
+ filters = mkOpt
+ (types.listOf (types.submodule {
+ options = {
+ name = mkOption {
+ type = types.str;
+ description = ''
+ Name of the filter. The available filters are listed in the upstream documentation:
+ Services:
+ Tasks:
+ Nodes:
+ '';
+ };
+ values = mkOption {
+ type = types.str;
+ description = ''
+ Value for the filter.
+ '';
+ };
+ };
+ })) ''
+ Optional filters to limit the discovery process to a subset of available resources.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the containers are refreshed.
+ '';
+ } // extraOptions);
+
+ promTypes.docker_sd_config = mkDockerSdConfigModule {
+ host_networking_host = mkDefOpt types.str "localhost" ''
+ The host to use if the container is in host networking mode.
+ '';
+ };
+
+ promTypes.dockerswarm_sd_config = mkDockerSdConfigModule {
+ role = mkOption {
+ type = types.enum [ "services" "tasks" "nodes" ];
+ description = ''
+ Role of the targets to retrieve. Must be `services`, `tasks`, or `nodes`.
+ '';
+ };
+ };
+
+ promTypes.dns_sd_config = types.submodule {
+ options = {
+ names = mkOption {
type = types.listOf types.str;
description = ''
- The targets specified by the target group.
- '';
- };
- labels = mkOption {
- type = types.attrsOf types.str;
- default = {};
- description = ''
- Labels assigned to all metrics scraped from the targets.
+ A list of DNS SRV record names to be queried.
'';
};
+
+ type = mkDefOpt (types.enum [ "SRV" "A" "AAAA" ]) "SRV" ''
+ The type of DNS query to perform. One of SRV, A, or AAAA.
+ '';
+
+ port = mkOpt types.int ''
+ The port number used if the query type is not SRV.
+ '';
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time after which the provided names are refreshed.
+ '';
};
};
@@ -419,7 +695,7 @@ let
region = mkOption {
type = types.str;
description = ''
- The AWS Region.
+ The AWS Region. If blank, the region from the instance metadata is used.
'';
};
endpoint = mkOpt types.str ''
@@ -436,7 +712,7 @@ let
AWS_SECRET_ACCESS_KEY is used.
'';
- profile = mkOpt types.str ''
+ profile = mkOpt types.str ''
Named AWS profile used to connect to the API.
'';
@@ -454,96 +730,36 @@ let
rule.
'';
- filters = mkOpt (types.listOf promTypes.filter) ''
+ filters = mkOpt
+ (types.listOf (types.submodule {
+ options = {
+ name = mkOption {
+ type = types.str;
+ description = ''
+ See this list
+ for the available filters.
+ '';
+ };
+
+ values = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ description = ''
+ Value of the filter.
+ '';
+ };
+ };
+ })) ''
Filters can be used optionally to filter the instance list by other criteria.
'';
};
};
- promTypes.filter = types.submodule {
- options = {
- name = mkOption {
- type = types.str;
- description = ''
- See this list
- for the available filters.
- '';
- };
-
- values = mkOption {
- type = types.listOf types.str;
- default = [];
- description = ''
- Value of the filter.
- '';
- };
- };
- };
-
- promTypes.dns_sd_config = types.submodule {
- options = {
- names = mkOption {
- type = types.listOf types.str;
- description = ''
- A list of DNS SRV record names to be queried.
- '';
- };
-
- refresh_interval = mkDefOpt types.str "30s" ''
- The time after which the provided names are refreshed.
- '';
- };
- };
-
- promTypes.consul_sd_config = types.submodule {
- options = {
- server = mkDefOpt types.str "localhost:8500" ''
- Consul server to query.
- '';
-
- token = mkOpt types.str "Consul token";
-
- datacenter = mkOpt types.str "Consul datacenter";
-
- scheme = mkDefOpt types.str "http" "Consul scheme";
-
- username = mkOpt types.str "Consul username";
-
- password = mkOpt types.str "Consul password";
-
- tls_config = mkOpt promTypes.tls_config ''
- Configures the Consul request's TLS settings.
- '';
-
- services = mkOpt (types.listOf types.str) ''
- A list of services for which targets are retrieved.
- '';
-
- tags = mkOpt (types.listOf types.str) ''
- An optional list of tags used to filter nodes for a given
- service. Services must contain all tags in the list.
- '';
-
- node_meta = mkOpt (types.attrsOf types.str) ''
- Node metadata used to filter nodes for a given service.
- '';
-
- tag_separator = mkDefOpt types.str "," ''
- The string by which Consul tags are joined into the tag label.
- '';
-
- allow_stale = mkOpt types.bool ''
- Allow stale Consul results
- (see ).
-
- Will reduce load on Consul.
- '';
-
- refresh_interval = mkDefOpt types.str "30s" ''
- The time after which the provided names are refreshed.
-
- On large setup it might be a good idea to increase this value
- because the catalog will change all the time.
+ promTypes.eureka_sd_config = mkSdConfigModule {
+ server = mkOption {
+ type = types.str;
+ description = ''
+ The URL to connect to the Eureka server.
'';
};
};
@@ -604,13 +820,563 @@ let
tag_separator = mkDefOpt types.str "," ''
The tag separator used to separate concatenated GCE instance network tags.
- See the GCP documentation on network tags for more information:
+ See the GCP documentation on network tags for more information:
+
'';
};
};
+ promTypes.hetzner_sd_config = mkSdConfigModule {
+ role = mkOption {
+ type = types.enum [ "robot" "hcloud" ];
+ description = ''
+ The Hetzner role of entities that should be discovered.
+ One of robot or hcloud.
+ '';
+ };
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the servers are refreshed.
+ '';
+ };
+
+ promTypes.http_sd_config = types.submodule {
+ options = {
+ url = mkOption {
+ type = types.str;
+ description = ''
+ URL from which the targets are fetched.
+ '';
+ };
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-query the endpoint.
+ '';
+
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Authentication information used to authenticate to the API server.
+ password and password_file are mutually exclusive.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the scrape request's TLS settings.
+ '';
+ };
+ };
+
+ promTypes.kubernetes_sd_config = mkSdConfigModule {
+ api_server = mkOpt types.str ''
+ The API server addresses. If left empty, Prometheus is assumed to run inside
+ of the cluster and will discover API servers automatically and use the pod's
+ CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
+ '';
+
+ role = mkOption {
+ type = types.enum [ "endpoints" "service" "pod" "node" "ingress" ];
+ description = ''
+ The Kubernetes role of entities that should be discovered.
+ One of endpoints, service, pod, node, or ingress.
+ '';
+ };
+
+ kubeconfig_file = mkOpt types.str ''
+ Optional path to a kubeconfig file.
+ Note that api_server and kube_config are mutually exclusive.
+ '';
+
+ namespaces = mkOpt
+ (
+ types.submodule {
+ options = {
+ names = mkOpt (types.listOf types.str) ''
+ Namespace name.
+ '';
+ };
+ }
+ ) ''
+ Optional namespace discovery. If omitted, all namespaces are used.
+ '';
+
+ selectors = mkOpt
+ (
+ types.listOf (
+ types.submodule {
+ options = {
+ role = mkOption {
+ type = types.str;
+ description = ''
+ Selector role
+ '';
+ };
+
+ label = mkOpt types.str ''
+ Selector label
+ '';
+
+ field = mkOpt types.str ''
+ Selector field
+ '';
+ };
+ }
+ )
+ ) ''
+ Optional label and field selectors to limit the discovery process to a subset of available resources.
+ See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
+ and https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ to learn more about the possible
+ filters that can be used. Endpoints role supports pod, service and endpoints selectors, other roles
+ only support selectors matching the role itself (e.g. node role can only contain node selectors).
+
+ Note: When making decision about using field/label selector make sure that this
+ is the best approach - it will prevent Prometheus from reusing single list/watch
+ for all scrape configs. This might result in a bigger load on the Kubernetes API,
+ because per each selector combination there will be additional LIST/WATCH. On the other hand,
+ if you just want to monitor small subset of pods in large cluster it's recommended to use selectors.
+ Decision, if selectors should be used or not depends on the particular situation.
+ '';
+ };
+
+ promTypes.kuma_sd_config = mkSdConfigModule {
+ server = mkOption {
+ type = types.str;
+ description = ''
+ Address of the Kuma Control Plane's MADS xDS server.
+ '';
+ };
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time to wait between polling update requests.
+ '';
+
+ fetch_timeout = mkDefOpt types.str "2m" ''
+ The time after which the monitoring assignments are refreshed.
+ '';
+ };
+
+ promTypes.lightsail_sd_config = types.submodule {
+ options = {
+ region = mkOpt types.str ''
+ The AWS region. If blank, the region from the instance metadata is used.
+ '';
+
+ endpoint = mkOpt types.str ''
+ Custom endpoint to be used.
+ '';
+
+ access_key = mkOpt types.str ''
+ The AWS API keys. If blank, the environment variable AWS_ACCESS_KEY_ID is used.
+ '';
+
+ secret_key = mkOpt types.str ''
+ The AWS API keys. If blank, the environment variable AWS_SECRET_ACCESS_KEY is used.
+ '';
+
+ profile = mkOpt types.str ''
+ Named AWS profile used to connect to the API.
+ '';
+
+ role_arn = mkOpt types.str ''
+ AWS Role ARN, an alternative to using AWS API keys.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ '';
+ };
+ };
+
+ promTypes.linode_sd_config = mkSdConfigModule {
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ tag_separator = mkDefOpt types.str "," ''
+ The string by which Linode Instance tags are joined into the tag label.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The time after which the linode instances are refreshed.
+ '';
+ };
+
+ promTypes.marathon_sd_config = mkSdConfigModule {
+ servers = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ List of URLs to be used to contact Marathon servers. You need to provide at least one server URL.
+ '';
+ };
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ Polling interval.
+ '';
+
+ auth_token = mkOpt types.str ''
+ Optional authentication information for token-based authentication:
+
+ It is mutually exclusive with auth_token_file and other authentication mechanisms.
+ '';
+
+ auth_token_file = mkOpt types.str ''
+ Optional authentication information for token-based authentication:
+
+ It is mutually exclusive with auth_token and other authentication mechanisms.
+ '';
+ };
+
+ promTypes.nerve_sd_config = types.submodule {
+ options = {
+ servers = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ The Zookeeper servers.
+ '';
+ };
+
+ paths = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ Paths can point to a single service, or the root of a tree of services.
+ '';
+ };
+
+ timeout = mkDefOpt types.str "10s" ''
+ Timeout value.
+ '';
+ };
+ };
+
+ promTypes.openstack_sd_config = types.submodule {
+ options =
+ let
+ userDescription = ''
+ username is required if using Identity V2 API. Consult with your provider's
+ control panel to discover your account's username. In Identity V3, either
+ userid or a combination of username and domain_id or domain_name are needed.
+ '';
+
+ domainDescription = ''
+ At most one of domain_id and domain_name must be provided if using username
+ with Identity V3. Otherwise, either are optional.
+ '';
+
+ projectDescription = ''
+ The project_id and project_name fields are optional for the Identity V2 API.
+ Some providers allow you to specify a project_name instead of the project_id.
+ Some require both. Your provider's authentication policies will determine
+ how these fields influence authentication.
+ '';
+
+ applicationDescription = ''
+ The application_credential_id or application_credential_name fields are
+ required if using an application credential to authenticate. Some providers
+ allow you to create an application credential to authenticate rather than a
+ password.
+ '';
+ in
+ {
+ role = mkOption {
+ type = types.str;
+ description = ''
+ The OpenStack role of entities that should be discovered.
+ '';
+ };
+
+ region = mkOption {
+ type = types.str;
+ description = ''
+ The OpenStack Region.
+ '';
+ };
+
+ identity_endpoint = mkOpt types.str ''
+ identity_endpoint specifies the HTTP endpoint that is required to work with
+ the Identity API of the appropriate version. While it's ultimately needed by
+ all of the identity services, it will often be populated by a provider-level
+ function.
+ '';
+
+ username = mkOpt types.str userDescription;
+ userid = mkOpt types.str userDescription;
+
+ password = mkOpt types.str ''
+ password for the Identity V2 and V3 APIs. Consult with your provider's
+ control panel to discover your account's preferred method of authentication.
+ '';
+
+ domain_name = mkOpt types.str domainDescription;
+ domain_id = mkOpt types.str domainDescription;
+
+ project_name = mkOpt types.str projectDescription;
+ project_id = mkOpt types.str projectDescription;
+
+ application_credential_name = mkOpt types.str applicationDescription;
+ application_credential_id = mkOpt types.str applicationDescription;
+
+ application_credential_secret = mkOpt types.str ''
+ The application_credential_secret field is required if using an application
+ credential to authenticate.
+ '';
+
+ all_tenants = mkDefOpt types.bool "false" ''
+ Whether the service discovery should list all instances for all projects.
+ It is only relevant for the 'instance' role and usually requires admin permissions.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ '';
+
+ availability = mkDefOpt (types.enum [ "public" "admin" "internal" ]) "public" ''
+ The availability of the endpoint to connect to. Must be one of public, admin or internal.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ promTypes.puppetdb_sd_config = mkSdConfigModule {
+ url = mkOption {
+ type = types.str;
+ description = ''
+ The URL of the PuppetDB root query endpoint.
+ '';
+ };
+
+ query = mkOption {
+ type = types.str;
+ description = ''
+ Puppet Query Language (PQL) query. Only resources are supported.
+ https://puppet.com/docs/puppetdb/latest/api/query/v4/pql.html
+ '';
+ };
+
+ include_parameters = mkDefOpt types.bool "false" ''
+ Whether to include the parameters as meta labels.
+ Due to the differences between parameter types and Prometheus labels,
+ some parameters might not be rendered. The format of the parameters might
+ also change in future releases.
+
+ Note: Enabling this exposes parameters in the Prometheus UI and API. Make sure
+ that you don't have secrets exposed as parameters if you enable this.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the resources list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+ };
+
+ promTypes.scaleway_sd_config = types.submodule {
+ options = {
+ access_key = mkOption {
+ type = types.str;
+ description = ''
+ Access key to use. https://console.scaleway.com/project/credentials
+ '';
+ };
+
+ secret_key = mkOpt types.str ''
+ Secret key to use when listing targets. https://console.scaleway.com/project/credentials
+ It is mutually exclusive with `secret_key_file`.
+ '';
+
+ secret_key_file = mkOpt types.str ''
+ Sets the secret key with the credentials read from the configured file.
+ It is mutually exclusive with `secret_key`.
+ '';
+
+ project_id = mkOption {
+ type = types.str;
+ description = ''
+ Project ID of the targets.
+ '';
+ };
+
+ role = mkOption {
+ type = types.enum [ "instance" "baremetal" ];
+ description = ''
+ Role of the targets to retrieve. Must be `instance` or `baremetal`.
+ '';
+ };
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from.
+ '';
+
+ api_url = mkDefOpt types.str "https://api.scaleway.com" ''
+ API URL to use when doing the server listing requests.
+ '';
+
+ zone = mkDefOpt types.str "fr-par-1" ''
+ Zone is the availability zone of your targets (e.g. fr-par-1).
+ '';
+
+ name_filter = mkOpt types.str ''
+ Specify a name filter (works as a LIKE) to apply on the server listing request.
+ '';
+
+ tags_filter = mkOpt (types.listOf types.str) ''
+ Specify a tag filter (a server needs to have all defined tags to be listed) to apply on the server listing request.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the managed targets list.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ follow_redirects = mkDefOpt types.bool "true" ''
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ # These are exactly the same.
+ promTypes.serverset_sd_config = promTypes.nerve_sd_config;
+
+ promTypes.triton_sd_config = types.submodule {
+ options = {
+ account = mkOption {
+ type = types.str;
+ description = ''
+ The account to use for discovering new targets.
+ '';
+ };
+
+ role = mkDefOpt (types.enum [ "container" "cn" ]) "container" ''
+ The type of targets to discover, can be set to:
+ - "container" to discover virtual machines (SmartOS zones, lx/KVM/bhyve branded zones) running on Triton
+ - "cn" to discover compute nodes (servers/global zones) making up the Triton infrastructure
+ '';
+
+ dns_suffix = mkOption {
+ type = types.str;
+ description = ''
+ The DNS suffix which should be applied to target.
+ '';
+ };
+
+ endpoint = mkOption {
+ type = types.str;
+ description = ''
+ The Triton discovery endpoint (e.g. cmon.us-east-3b.triton.zone). This is
+ often the same value as dns_suffix.
+ '';
+ };
+
+ groups = mkOpt (types.listOf types.str) ''
+ A list of groups for which targets are retrieved, only supported when targeting the container role.
+ If omitted all containers owned by the requesting account are scraped.
+ '';
+
+ port = mkDefOpt types.int "9163" ''
+ The port to use for discovery and metric scraping.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ The interval which should be used for refreshing targets.
+ '';
+
+ version = mkDefOpt types.int "1" ''
+ The Triton discovery API version.
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ TLS configuration.
+ '';
+ };
+ };
+
+ promTypes.uyuni_sd_config = mkSdConfigModule {
+ server = mkOption {
+ type = types.str;
+ description = ''
+ The URL to connect to the Uyuni server.
+ '';
+ };
+
+ username = mkOption {
+ type = types.str;
+ description = ''
+ Credentials are used to authenticate the requests to Uyuni API.
+ '';
+ };
+
+ password = mkOption {
+ type = types.str;
+ description = ''
+ Credentials are used to authenticate the requests to Uyuni API.
+ '';
+ };
+
+ entitlement = mkDefOpt types.str "monitoring_entitled" ''
+ The entitlement string to filter eligible systems.
+ '';
+
+ separator = mkDefOpt types.str "," ''
+ The string by which Uyuni group names are joined into the groups label
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the managed targets list.
+ '';
+ };
+
+ promTypes.static_config = types.submodule {
+ options = {
+ targets = mkOption {
+ type = types.listOf types.str;
+ description = ''
+ The targets specified by the target group.
+ '';
+ };
+ labels = mkOption {
+ type = types.attrsOf types.str;
+ default = { };
+ description = ''
+ Labels assigned to all metrics scraped from the targets.
+ '';
+ };
+ };
+ };
+
+ #
+ # Config types: relabling
+ #
+
promTypes.relabel_config = types.submodule {
options = {
source_labels = mkOpt (types.listOf types.str) ''
@@ -642,41 +1408,154 @@ let
'';
action =
- mkDefOpt (types.enum ["replace" "keep" "drop" "hashmod" "labelmap" "labeldrop" "labelkeep"]) "replace" ''
- Action to perform based on regex matching.
- '';
+ mkDefOpt (types.enum [ "replace" "keep" "drop" "hashmod" "labelmap" "labeldrop" "labelkeep" ]) "replace" ''
+ Action to perform based on regex matching.
+ '';
};
};
- promTypes.tls_config = types.submodule {
+ #
+ # Config types : remote read / write
+ #
+
+ promTypes.remote_write = types.submodule {
options = {
- ca_file = mkOpt types.str ''
- CA certificate to validate API server certificate with.
+ url = mkOption {
+ type = types.str;
+ description = ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
+ '';
+ };
+ remote_timeout = mkOpt types.str ''
+ Timeout for requests to the remote write endpoint.
'';
-
- cert_file = mkOpt types.str ''
- Certificate file for client cert authentication to the server.
+ write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
+ List of remote write relabel configurations.
'';
-
- key_file = mkOpt types.str ''
- Key file for client cert authentication to the server.
+ name = mkOpt types.str ''
+ Name of the remote write config, which if specified must be unique among remote write configs.
+ The name will be used in metrics and logging in place of a generated value to help users distinguish between
+ remote write configs.
'';
-
- server_name = mkOpt types.str ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Sets the `Authorization` header on every remote write request with the
+ configured username and password.
+ password and password_file are mutually exclusive.
'';
-
- insecure_skip_verify = mkOpt types.bool ''
- Disable validation of the server certificate.
+ bearer_token = mkOpt types.str ''
+ Sets the `Authorization` header on every remote write request with
+ the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+ '';
+ bearer_token_file = mkOpt types.str ''
+ Sets the `Authorization` header on every remote write request with the bearer token
+ read from the configured file. It is mutually exclusive with `bearer_token`.
+ '';
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the remote write request's TLS settings.
+ '';
+ proxy_url = mkOpt types.str "Optional Proxy URL.";
+ queue_config = mkOpt
+ (types.submodule {
+ options = {
+ capacity = mkOpt types.int ''
+ Number of samples to buffer per shard before we block reading of more
+ samples from the WAL. It is recommended to have enough capacity in each
+ shard to buffer several requests to keep throughput up while processing
+ occasional slow remote requests.
+ '';
+ max_shards = mkOpt types.int ''
+ Maximum number of shards, i.e. amount of concurrency.
+ '';
+ min_shards = mkOpt types.int ''
+ Minimum number of shards, i.e. amount of concurrency.
+ '';
+ max_samples_per_send = mkOpt types.int ''
+ Maximum number of samples per send.
+ '';
+ batch_send_deadline = mkOpt types.str ''
+ Maximum time a sample will wait in buffer.
+ '';
+ min_backoff = mkOpt types.str ''
+ Initial retry delay. Gets doubled for every retry.
+ '';
+ max_backoff = mkOpt types.str ''
+ Maximum retry delay.
+ '';
+ };
+ }) ''
+ Configures the queue used to write to remote storage.
+ '';
+ metadata_config = mkOpt
+ (types.submodule {
+ options = {
+ send = mkOpt types.bool ''
+ Whether metric metadata is sent to remote storage or not.
+ '';
+ send_interval = mkOpt types.str ''
+ How frequently metric metadata is sent to remote storage.
+ '';
+ };
+ }) ''
+ Configures the sending of series metadata to remote storage.
+ Metadata configuration is subject to change at any point
+ or be removed in future releases.
'';
};
};
-in {
+ promTypes.remote_read = types.submodule {
+ options = {
+ url = mkOption {
+ type = types.str;
+ description = ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
+ '';
+ };
+ name = mkOpt types.str ''
+ Name of the remote read config, which if specified must be unique among remote read configs.
+ The name will be used in metrics and logging in place of a generated value to help users distinguish between
+ remote read configs.
+ '';
+ required_matchers = mkOpt (types.attrsOf types.str) ''
+ An optional list of equality matchers which have to be
+ present in a selector to query the remote read endpoint.
+ '';
+ remote_timeout = mkOpt types.str ''
+ Timeout for requests to the remote read endpoint.
+ '';
+ read_recent = mkOpt types.bool ''
+ Whether reads should be made for queries for time ranges that
+ the local storage should have complete data for.
+ '';
+ basic_auth = mkOpt promTypes.basic_auth ''
+ Sets the `Authorization` header on every remote read request with the
+ configured username and password.
+ password and password_file are mutually exclusive.
+ '';
+ bearer_token = mkOpt types.str ''
+ Sets the `Authorization` header on every remote read request with
+ the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+ '';
+ bearer_token_file = mkOpt types.str ''
+ Sets the `Authorization` header on every remote read request with the bearer token
+ read from the configured file. It is mutually exclusive with `bearer_token`.
+ '';
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the remote read request's TLS settings.
+ '';
+ proxy_url = mkOpt types.str "Optional Proxy URL.";
+ };
+ };
+
+in
+{
imports = [
(mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
+ (mkRemovedOptionModule [ "services" "prometheus" "environmentFile" ]
+ "It has been removed since it was causing issues (https://github.com/NixOS/nixpkgs/issues/126083) and Prometheus now has native support for secret files, i.e. `basic_auth.password_file` and `authorization.credentials_file`.")
];
options.services.prometheus = {
@@ -725,48 +1604,22 @@ in {
extraFlags = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Extra commandline options when launching Prometheus.
'';
};
- environmentFile = mkOption {
- type = types.nullOr types.path;
- default = null;
- example = "/root/prometheus.env";
+ enableReload = mkOption {
+ default = false;
+ type = types.bool;
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Reload prometheus when configuration file changes (instead of restart).
- Secrets may be passed to the service without adding them to the
- world-readable Nix store, by specifying placeholder variables as
- the option value in Nix and setting these variables accordingly in the
- environment file.
-
- Environment variables from this file will be interpolated into the
- config file using envsubst with this syntax:
- $ENVIRONMENT ''${VARIABLE}
-
-
- # Example scrape config entry handling an OAuth bearer token
- {
- job_name = "home_assistant";
- metrics_path = "/api/prometheus";
- scheme = "https";
- bearer_token = "\''${HOME_ASSISTANT_BEARER_TOKEN}";
- [...]
- }
-
-
-
- # Content of the environment file
- HOME_ASSISTANT_BEARER_TOKEN=someoauthbearertoken
-
-
- Note that this file needs to be available on the host on which
- Prometheus is running.
+ The following property holds: switching to a configuration
+ (switch-to-configuration) that changes the prometheus
+ configuration only finishes successully when prometheus has finished
+ loading the new configuration.
'';
};
@@ -782,7 +1635,7 @@ in {
globalConfig = mkOption {
type = promTypes.globalConfig;
- default = {};
+ default = { };
description = ''
Parameters that are valid in all configuration contexts. They
also serve as defaults for other configuration sections
@@ -791,7 +1644,7 @@ in {
remoteRead = mkOption {
type = types.listOf promTypes.remote_read;
- default = [];
+ default = [ ];
description = ''
Parameters of the endpoints to query from.
See the official documentation for more information.
@@ -800,7 +1653,7 @@ in {
remoteWrite = mkOption {
type = types.listOf promTypes.remote_write;
- default = [];
+ default = [ ];
description = ''
Parameters of the endpoints to send samples to.
See the official documentation for more information.
@@ -809,7 +1662,7 @@ in {
rules = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Alerting and/or Recording rules to evaluate at runtime.
'';
@@ -817,7 +1670,7 @@ in {
ruleFiles = mkOption {
type = types.listOf types.path;
- default = [];
+ default = [ ];
description = ''
Any additional rules files to include in this configuration.
'';
@@ -825,7 +1678,7 @@ in {
scrapeConfigs = mkOption {
type = types.listOf promTypes.scrape_config;
- default = [];
+ default = [ ];
description = ''
A list of scrape configurations.
'';
@@ -844,7 +1697,7 @@ in {
} ];
} ]
'';
- default = [];
+ default = [ ];
description = ''
A list of alertmanagers to send alerts to.
See the official documentation for more information.
@@ -903,11 +1756,13 @@ in {
config = mkIf cfg.enable {
assertions = [
- ( let
+ (
+ let
# Match something with dots (an IPv4 address) or something ending in
# a square bracket (an IPv6 addresses) followed by a port number.
legacy = builtins.match "(.*\\..*|.*]):([[:digit:]]+)" cfg.listenAddress;
- in {
+ in
+ {
assertion = legacy == null;
message = ''
Do not specify the port for Prometheus to listen on in the
@@ -925,20 +1780,19 @@ in {
uid = config.ids.uids.prometheus;
group = "prometheus";
};
+ environment.etc."prometheus/prometheus.yaml" = mkIf cfg.enableReload {
+ source = prometheusYml;
+ };
systemd.services.prometheus = {
wantedBy = [ "multi-user.target" ];
- after = [ "network.target" ];
- preStart = ''
- ${lib.getBin pkgs.envsubst}/bin/envsubst -o "/run/prometheus/prometheus-substituted.yaml" \
- -i "${prometheusYml}"
- '';
+ after = [ "network.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/prometheus" +
optionalString (length cmdlineArgs != 0) (" \\\n " +
concatStringsSep " \\\n " cmdlineArgs);
+ ExecReload = mkIf cfg.enableReload "+${reload}/bin/reload-prometheus";
User = "prometheus";
- Restart = "always";
- EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
+ Restart = "always";
RuntimeDirectory = "prometheus";
RuntimeDirectoryMode = "0700";
WorkingDirectory = workingDir;
@@ -946,5 +1800,29 @@ in {
StateDirectoryMode = "0700";
};
};
+ # prometheus-config-reload will activate after prometheus. However, what we
+ # don't want is that on startup it immediately reloads prometheus because
+ # prometheus itself might have just started.
+ #
+ # Instead we only want to reload prometheus when the config file has
+ # changed. So on startup prometheus-config-reload will just output a
+ # harmless message and then stay active (RemainAfterExit).
+ #
+ # Then, when the config file has changed, switch-to-configuration notices
+ # that this service has changed (restartTriggers) and needs to be reloaded
+ # (reloadIfChanged). The reload command then reloads prometheus.
+ systemd.services.prometheus-config-reload = mkIf cfg.enableReload {
+ wantedBy = [ "prometheus.service" ];
+ after = [ "prometheus.service" ];
+ reloadIfChanged = true;
+ restartTriggers = [ prometheusYml ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ TimeoutSec = 60;
+ ExecStart = "${pkgs.logger}/bin/logger 'prometheus-config-reload will only reload prometheus when reloaded itself.'";
+ ExecReload = [ "${triggerReload}/bin/trigger-reload-prometheus" ];
+ };
+ };
};
}
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index 62e90232e1..d29d50706e 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -61,6 +61,7 @@ let
"rtl_433"
"script"
"snmp"
+ "smartctl"
"smokeping"
"sql"
"surfboard"
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
index 5ee8c346be..3cdd7866bd 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
@@ -47,7 +47,7 @@ in
ExecStart = ''
${pkgs.prometheus-nginx-exporter}/bin/nginx-prometheus-exporter \
--nginx.scrape-uri '${cfg.scrapeUri}' \
- --nginx.ssl-verify ${toString cfg.sslVerify} \
+ --nginx.ssl-verify ${boolToString cfg.sslVerify} \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
--web.telemetry-path ${cfg.telemetryPath} \
--prometheus.const-labels ${concatStringsSep "," cfg.constLabels} \
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
index f57589a59c..4d3c1fa267 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
@@ -76,6 +76,9 @@ in
serviceOpts = {
serviceConfig = {
DynamicUser = false;
+ # By default, each prometheus exporter only gets AF_INET & AF_INET6,
+ # but AF_UNIX is needed to read from the `showq`-socket.
+ RestrictAddressFamilies = [ "AF_UNIX" ];
ExecStart = ''
${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
new file mode 100644
index 0000000000..b6416b93e6
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
@@ -0,0 +1,64 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+ cfg = config.services.prometheus.exporters.smartctl;
+ format = pkgs.formats.yaml {};
+ configFile = format.generate "smartctl-exporter.yml" {
+ smartctl_exporter = {
+ bind_to = "${cfg.listenAddress}:${toString cfg.port}";
+ url_path = "/metrics";
+ smartctl_location = "${pkgs.smartmontools}/bin/smartctl";
+ collect_not_more_than_period = cfg.maxInterval;
+ devices = cfg.devices;
+ };
+ };
+in {
+ port = 9633;
+
+ extraOpts = {
+ devices = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ example = literalExpression ''
+ [ "/dev/sda", "/dev/nvme0n1" ];
+ '';
+ description = ''
+ Paths to disks that will be monitored.
+ '';
+ };
+ maxInterval = mkOption {
+ type = types.str;
+ default = "60s";
+ example = "2m";
+ description = ''
+ Interval that limits how often a disk can be queried.
+ '';
+ };
+ };
+
+ serviceOpts = {
+ serviceConfig = {
+ AmbientCapabilities = [
+ "CAP_SYS_ADMIN"
+ ];
+ CapabilityBoundingSet = [
+ "CAP_SYS_ADMIN"
+ ];
+ DevicePolicy = "closed";
+ DeviceAllow = lib.mkForce cfg.devices;
+ ExecStart = ''
+ ${pkgs.prometheus-smartctl-exporter}/bin/smartctl_exporter -config ${configFile}
+ '';
+ PrivateDevices = lib.mkForce false;
+ ProtectProc = "invisible";
+ ProcSubset = "pid";
+ SupplementaryGroups = [ "disk" ];
+ SystemCallFilter = [
+ "@system-service"
+ "~@privileged @resources"
+ ];
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/smartd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/smartd.nix
index 3ea2543711..73021b1b4d 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/smartd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/smartd.nix
@@ -125,6 +125,7 @@ in
mail = {
enable = mkOption {
default = config.services.mail.sendmailSetuidWrapper != null;
+ defaultText = literalExpression "config.services.mail.sendmailSetuidWrapper != null";
type = types.bool;
description = "Whenever to send e-mail notifications.";
};
@@ -169,12 +170,14 @@ in
x11 = {
enable = mkOption {
default = config.services.xserver.enable;
+ defaultText = literalExpression "config.services.xserver.enable";
type = types.bool;
description = "Whenever to send X11 xmessage notifications.";
};
display = mkOption {
default = ":${toString config.services.xserver.display}";
+ defaultText = literalExpression ''":''${toString config.services.xserver.display}"'';
type = types.str;
description = "DISPLAY to send X11 notifications to.";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix
index 81a7b408bc..cca4a0e720 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix
index 9b0fd9dbff..0141c073da 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix
@@ -250,7 +250,12 @@ in
};
security.wrappers = {
- fping.source = "${pkgs.fping}/bin/fping";
+ fping =
+ { setuid = true;
+ owner = "root";
+ group = "root";
+ source = "${pkgs.fping}/bin/fping";
+ };
};
systemd.services.zabbix-server = {
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix
index 916e7eaaaa..c730e0b34e 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix
@@ -47,19 +47,17 @@ let cfg = config.services.drbd; in
options drbd usermode_helper=/run/current-system/sw/bin/drbdadm
'';
- environment.etc.drbd.conf =
+ environment.etc."drbd.conf" =
{ source = pkgs.writeText "drbd.conf" cfg.config; };
systemd.services.drbd = {
after = [ "systemd-udev.settle.service" "network.target" ];
wants = [ "systemd-udev.settle.service" ];
wantedBy = [ "multi-user.target" ];
- script = ''
- ${pkgs.drbd}/sbin/drbdadm up all
- '';
- serviceConfig.ExecStop = ''
- ${pkgs.drbd}/sbin/drbdadm down all
- '';
+ serviceConfig = {
+ ExecStart = "${pkgs.drbd}/sbin/drbdadm up all";
+ ExecStop = "${pkgs.drbd}/sbin/drbdadm down all";
+ };
};
};
}
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix
index 36b72ca48b..5482b2aaf8 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix
@@ -79,6 +79,11 @@ in
if versionAtLeast config.system.stateVersion "17.09"
then "/var/lib/ipfs"
else "/var/lib/ipfs/.ipfs";
+ defaultText = literalExpression ''
+ if versionAtLeast config.system.stateVersion "17.09"
+ then "/var/lib/ipfs"
+ else "/var/lib/ipfs/.ipfs"
+ '';
description = "The data dir for IPFS";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix
new file mode 100644
index 0000000000..1c5c299cb6
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix
@@ -0,0 +1,144 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.webdav-server-rs;
+ format = pkgs.formats.toml { };
+ settings = recursiveUpdate
+ {
+ server.uid = config.users.users."${cfg.user}".uid;
+ server.gid = config.users.groups."${cfg.group}".gid;
+ }
+ cfg.settings;
+in
+{
+ options = {
+ services.webdav-server-rs = {
+ enable = mkEnableOption "WebDAV server";
+
+ user = mkOption {
+ type = types.str;
+ default = "webdav";
+ description = "User to run under when setuid is not enabled.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "webdav";
+ description = "Group to run under when setuid is not enabled.";
+ };
+
+ settings = mkOption {
+ type = format.type;
+ default = { };
+ description = ''
+ Attrset that is converted and passed as config file. Available
+ options can be found at
+ here.
+ '';
+ example = literalExpression ''
+ {
+ server.listen = [ "0.0.0.0:4918" "[::]:4918" ];
+ accounts = {
+ auth-type = "htpasswd.default";
+ acct-type = "unix";
+ };
+ htpasswd.default = {
+ htpasswd = "/etc/htpasswd";
+ };
+ location = [
+ {
+ route = [ "/public/*path" ];
+ directory = "/srv/public";
+ handler = "filesystem";
+ methods = [ "webdav-ro" ];
+ autoindex = true;
+ auth = "false";
+ }
+ {
+ route = [ "/user/:user/*path" ];
+ directory = "~";
+ handler = "filesystem";
+ methods = [ "webdav-rw" ];
+ autoindex = true;
+ auth = "true";
+ setuid = true;
+ }
+ ];
+ }
+ '';
+ };
+
+ configFile = mkOption {
+ type = types.path;
+ default = format.generate "webdav-server.toml" settings;
+ defaultText = "Config file generated from services.webdav-server-rs.settings";
+ description = ''
+ Path to config file. If this option is set, it will override any
+ configuration done in services.webdav-server-rs.settings.
+ '';
+ example = "/etc/webdav-server.toml";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = hasAttr cfg.user config.users.users && config.users.users."${cfg.user}".uid != null;
+ message = "users.users.${cfg.user} and users.users.${cfg.user}.uid must be defined.";
+ }
+ {
+ assertion = hasAttr cfg.group config.users.groups && config.users.groups."${cfg.group}".gid != null;
+ message = "users.groups.${cfg.group} and users.groups.${cfg.group}.gid must be defined.";
+ }
+ ];
+
+ users.users = optionalAttrs (cfg.user == "webdav") {
+ webdav = {
+ description = "WebDAV user";
+ group = cfg.group;
+ uid = config.ids.uids.webdav;
+ };
+ };
+
+ users.groups = optionalAttrs (cfg.group == "webdav") {
+ webdav.gid = config.ids.gids.webdav;
+ };
+
+ systemd.services.webdav-server-rs = {
+ description = "WebDAV server";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.webdav-server-rs}/bin/webdav-server -c ${cfg.configFile}";
+
+ CapabilityBoundingSet = [
+ "CAP_SETUID"
+ "CAP_SETGID"
+ ];
+
+ NoExecPaths = [ "/" ];
+ ExecPaths = [ "/nix/store" ];
+
+ # This program actively detects if it is running in root user account
+ # when it starts and uses root privilege to switch process uid to
+ # respective unix user when a user logs in. Maybe we can enable
+ # DynamicUser in the future when it's able to detect CAP_SETUID and
+ # CAP_SETGID capabilities.
+
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ PrivateTmp = true;
+ ProtectClock = true;
+ ProtectControlGroups = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectSystem = true;
+ };
+ };
+ };
+
+ meta.maintainers = with maintainers; [ pmy ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
new file mode 100644
index 0000000000..a810af40fd
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
@@ -0,0 +1,107 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.webdav;
+ format = pkgs.formats.yaml { };
+in
+{
+ options = {
+ services.webdav = {
+ enable = mkEnableOption "WebDAV server";
+
+ user = mkOption {
+ type = types.str;
+ default = "webdav";
+ description = "User account under which WebDAV runs.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "webdav";
+ description = "Group under which WebDAV runs.";
+ };
+
+ settings = mkOption {
+ type = format.type;
+ default = { };
+ description = ''
+ Attrset that is converted and passed as config file. Available options
+ can be found at
+ here.
+
+ This program supports reading username and password configuration
+ from environment variables, so it's strongly recommended to store
+ username and password in a separate
+ EnvironmentFile.
+ This prevents adding secrets to the world-readable Nix store.
+ '';
+ example = literalExpression ''
+ {
+ address = "0.0.0.0";
+ port = 8080;
+ scope = "/srv/public";
+ modify = true;
+ auth = true;
+ users = [
+ {
+ username = "{env}ENV_USERNAME";
+ password = "{env}ENV_PASSWORD";
+ }
+ ];
+ }
+ '';
+ };
+
+ configFile = mkOption {
+ type = types.path;
+ default = format.generate "webdav.yaml" cfg.settings;
+ defaultText = "Config file generated from services.webdav.settings";
+ description = ''
+ Path to config file. If this option is set, it will override any
+ configuration done in options.services.webdav.settings.
+ '';
+ example = "/etc/webdav/config.yaml";
+ };
+
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Environment file as defined in
+ systemd.exec5
+ .
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ users.users = mkIf (cfg.user == "webdav") {
+ webdav = {
+ description = "WebDAV daemon user";
+ group = cfg.group;
+ uid = config.ids.uids.webdav;
+ };
+ };
+
+ users.groups = mkIf (cfg.group == "webdav") {
+ webdav.gid = config.ids.gids.webdav;
+ };
+
+ systemd.services.webdav = {
+ description = "WebDAV server";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.webdav}/bin/webdav -c ${cfg.configFile}";
+ Restart = "on-failure";
+ User = cfg.user;
+ Group = cfg.group;
+ EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
+ };
+ };
+ };
+
+ meta.maintainers = with maintainers; [ pmy ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/antennas.nix b/third_party/nixpkgs/nixos/modules/services/networking/antennas.nix
new file mode 100644
index 0000000000..ef98af22f2
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/networking/antennas.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.services.antennas;
+in
+
+{
+ options = {
+ services.antennas = {
+ enable = mkEnableOption "Antennas";
+
+ tvheadendUrl = mkOption {
+ type = types.str;
+ default = "http://localhost:9981";
+ description = "URL of Tvheadend.";
+ };
+
+ antennasUrl = mkOption {
+ type = types.str;
+ default = "http://127.0.0.1:5004";
+ description = "URL of Antennas.";
+ };
+
+ tunerCount = mkOption {
+ type = types.int;
+ default = 6;
+ description = "Numbers of tuners in tvheadend.";
+ };
+
+ deviceUUID = mkOption {
+ type = types.str;
+ default = "2f70c0d7-90a3-4429-8275-cbeeee9cd605";
+ description = "Device tuner UUID. Change this if you are running multiple instances.";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.antennas = {
+ description = "Antennas HDHomeRun emulator for Tvheadend. ";
+ wantedBy = [ "multi-user.target" ];
+
+ # Config
+ environment = {
+ TVHEADEND_URL = cfg.tvheadendUrl;
+ ANTENNAS_URL = cfg.antennasUrl;
+ TUNER_COUNT = toString cfg.tunerCount;
+ DEVICE_UUID = cfg.deviceUUID;
+ };
+
+ serviceConfig = {
+ ExecStart = "${pkgs.antennas}/bin/antennas";
+
+ # Antennas expects all resources like html and config to be relative to it's working directory
+ WorkingDirectory = "${pkgs.antennas}/libexec/antennas/deps/antennas/";
+
+ # Hardening
+ CapabilityBoundingSet = [ "" ];
+ DynamicUser = true;
+ LockPersonality = true;
+ ProcSubset = "pid";
+ PrivateDevices = true;
+ PrivateUsers = true;
+ PrivateTmp = true;
+ ProtectClock = true;
+ ProtectControlGroups = true;
+ ProtectHome = true;
+ ProtectHostname = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectProc = "invisible";
+ ProtectSystem = "strict";
+ RestrictNamespaces = true;
+ RestrictRealtime = true;
+ };
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/bind.nix b/third_party/nixpkgs/nixos/modules/services/networking/bind.nix
index f2b2e4c4d5..e44f8d4cf3 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/bind.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/bind.nix
@@ -144,6 +144,7 @@ in
forwarders = mkOption {
default = config.networking.nameservers;
+ defaultText = literalExpression "config.networking.nameservers";
type = types.listOf types.str;
description = "
List of servers we should forward requests to.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/charybdis.nix b/third_party/nixpkgs/nixos/modules/services/networking/charybdis.nix
index 43829d36e4..ff09c0160c 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/charybdis.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/charybdis.nix
@@ -85,14 +85,21 @@ in
"d ${cfg.statedir} - ${cfg.user} ${cfg.group} - -"
];
+ environment.etc."charybdis/ircd.conf".source = configFile;
+
systemd.services.charybdis = {
description = "Charybdis IRC daemon";
wantedBy = [ "multi-user.target" ];
+ reloadIfChanged = true;
+ restartTriggers = [
+ configFile
+ ];
environment = {
BANDB_DBPATH = "${cfg.statedir}/ban.db";
};
serviceConfig = {
- ExecStart = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile ${configFile}";
+ ExecStart = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile /etc/charybdis/ircd.conf";
+ ExecReload = "${coreutils}/bin/kill -HUP $MAINPID";
Group = cfg.group;
User = cfg.user;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/consul.nix b/third_party/nixpkgs/nixos/modules/services/networking/consul.nix
index 792b2e7f5d..ca9c422e6d 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/consul.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/consul.nix
@@ -8,7 +8,9 @@ let
configOptions = {
data_dir = dataDir;
- ui = cfg.webUi;
+ ui_config = {
+ enabled = cfg.webUi;
+ };
} // cfg.extraConfig;
configFiles = [ "/etc/consul.json" "/etc/consul-addrs.json" ]
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/coturn.nix b/third_party/nixpkgs/nixos/modules/services/networking/coturn.nix
index 610754e9bd..ce563c3113 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/coturn.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/coturn.nix
@@ -193,6 +193,7 @@ in {
realm = mkOption {
type = types.str;
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
example = "example.com";
description = ''
The default realm to be used for the users when no explicit
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ddclient.nix b/third_party/nixpkgs/nixos/modules/services/networking/ddclient.nix
index 7820eedd93..021b28d5c3 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ddclient.nix
+++ b/third_party/nixpkgs/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 --mode=0400 ${configFile} /run/${RuntimeDirectory}/ddclient.conf
+ ${lib.optionalString (cfg.configFile == null) (if (cfg.passwordFile != null) then ''
+ password=$(printf "%q" "$(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/third_party/nixpkgs/nixos/modules/services/networking/dnscrypt-wrapper.nix b/third_party/nixpkgs/nixos/modules/services/networking/dnscrypt-wrapper.nix
index 400d6e6704..c2add170e9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/dnscrypt-wrapper.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/dnscrypt-wrapper.nix
@@ -145,6 +145,7 @@ in {
providerName = mkOption {
type = types.str;
default = "2.dnscrypt-cert.${config.networking.hostName}";
+ defaultText = literalExpression ''"2.dnscrypt-cert.''${config.networking.hostName}"'';
example = "2.dnscrypt-cert.myresolver";
description = ''
The name that will be given to this DNSCrypt resolver.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/flannel.nix b/third_party/nixpkgs/nixos/modules/services/networking/flannel.nix
index b15339870e..ac84b3d35a 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/flannel.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/flannel.nix
@@ -93,6 +93,9 @@ in {
'';
type = types.nullOr types.str;
default = with config.networking; (hostName + optionalString (domain != null) ".${domain}");
+ defaultText = literalExpression ''
+ with config.networking; (hostName + optionalString (domain != null) ".''${domain}")
+ '';
example = "node1.example.com";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/knot.nix b/third_party/nixpkgs/nixos/modules/services/networking/knot.nix
index 67eadbd767..a58a03997b 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/knot.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/knot.nix
@@ -80,13 +80,13 @@ in {
};
config = mkIf config.services.knot.enable {
+ users.groups.knot = {};
users.users.knot = {
isSystemUser = true;
group = "knot";
description = "Knot daemon user";
};
- users.groups.knot.gid = null;
systemd.services.knot = {
unitConfig.Documentation = "man:knotd(8) man:knot.conf(5) man:knotc(8) https://www.knot-dns.cz/docs/${cfg.package.version}/html/";
description = cfg.package.meta.description;
@@ -98,17 +98,52 @@ in {
Type = "notify";
ExecStart = "${cfg.package}/bin/knotd --config=${configFile} --socket=${socketFile} ${concatStringsSep " " cfg.extraArgs}";
ExecReload = "${knot-cli-wrappers}/bin/knotc reload";
- CapabilityBoundingSet = "CAP_NET_BIND_SERVICE CAP_SETPCAP";
- AmbientCapabilities = "CAP_NET_BIND_SERVICE CAP_SETPCAP";
- NoNewPrivileges = true;
User = "knot";
+ Group = "knot";
+
+ AmbientCapabilities = [
+ "CAP_NET_BIND_SERVICE"
+ ];
+ CapabilityBoundingSet = [
+ "CAP_NET_BIND_SERVICE"
+ ];
+ DeviceAllow = "";
+ DevicePolicy = "closed";
+ LockPersonality = true;
+ MemoryDenyWriteExecute = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ PrivateTmp = true;
+ PrivateUsers = false; # breaks capability passing
+ ProcSubset = "pid";
+ ProtectClock = true;
+ ProtectControlGroups = true;
+ ProtectHome = true;
+ ProtectHostname = true;
+ ProtectKernelLogs = true;
+ ProtectKernelModules = true;
+ ProtectKernelTunables = true;
+ ProtectProc = "invisible";
+ ProtectSystem = "strict";
+ RemoveIPC = true;
+ Restart = "on-abort";
+ RestrictAddressFamilies = [
+ "AF_INET"
+ "AF_INET6"
+ "AF_UNIX"
+ ];
+ RestrictNamespaces = true;
+ RestrictRealtime =true;
+ RestrictSUIDSGID = true;
RuntimeDirectory = "knot";
StateDirectory = "knot";
StateDirectoryMode = "0700";
- PrivateDevices = true;
- RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
SystemCallArchitectures = "native";
- Restart = "on-abort";
+ SystemCallFilter = [
+ "@system-service"
+ "~@privileged"
+ ];
+ UMask = "0077";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/lxd-image-server.nix b/third_party/nixpkgs/nixos/modules/services/networking/lxd-image-server.nix
new file mode 100644
index 0000000000..b119ba8acf
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/networking/lxd-image-server.nix
@@ -0,0 +1,137 @@
+{ 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;
+ extraConfig = ''
+ create 755 lxd-image-server ${cfg.group}
+ 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/third_party/nixpkgs/nixos/modules/services/networking/monero.nix b/third_party/nixpkgs/nixos/modules/services/networking/monero.nix
index 9a9084e4ce..8bed89917c 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/monero.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/monero.nix
@@ -222,7 +222,7 @@ in
serviceConfig = {
User = "monero";
Group = "monero";
- ExecStart = "${pkgs.monero}/bin/monerod --config-file=${configFile} --non-interactive";
+ ExecStart = "${pkgs.monero-cli}/bin/monerod --config-file=${configFile} --non-interactive";
Restart = "always";
SuccessExitStatus = [ 0 1 ];
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.md b/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.md
new file mode 100644
index 0000000000..5cdb598151
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.nix b/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.nix
index 5a573cbf4a..2d498d4dbb 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.nix
@@ -257,18 +257,28 @@ let
users = mkOption {
type = attrsOf userOptions;
- example = { john = { password = "123456"; acl = [ "topic readwrite john/#" ]; }; };
+ example = { john = { password = "123456"; acl = [ "readwrite john/#" ]; }; };
description = ''
A set of users and their passwords and ACLs.
'';
default = {};
};
+ omitPasswordAuth = mkOption {
+ type = bool;
+ description = ''
+ Omits password checking, allowing anyone to log in with any user name unless
+ other mandatory authentication methods (eg TLS client certificates) are configured.
+ '';
+ default = false;
+ };
+
acl = mkOption {
type = listOf str;
description = ''
Additional ACL items to prepend to the generated ACL file.
'';
+ example = [ "pattern read #" "topic readwrite anon/report/#" ];
default = [];
};
@@ -294,9 +304,9 @@ let
formatListener = idx: listener:
[
"listener ${toString listener.port} ${toString listener.address}"
- "password_file ${cfg.dataDir}/passwd-${toString idx}"
"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;
@@ -645,5 +655,10 @@ in
};
- meta.maintainers = with lib.maintainers; [ pennae ];
+ 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/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.xml b/third_party/nixpkgs/nixos/modules/services/networking/mosquitto.xml
new file mode 100644
index 0000000000..d16ab28c02
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix b/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix
index af17fc0814..82c285d051 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix
@@ -76,6 +76,7 @@ in
identity.hostname = mkOption {
type = types.str;
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
example = "example.com";
description = ''
The hostname of this ncdns instance, which defaults to the machine
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix b/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix
index 2a826e0f08..73e63e2ee9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix
+++ b/third_party/nixpkgs/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 ];
@@ -534,7 +527,6 @@ in {
{
networkmanager.connectionConfig = {
- "ipv6.ip6-privacy" = 2;
"ethernet.cloned-mac-address" = cfg.ethernet.macAddress;
"wifi.cloned-mac-address" = cfg.wifi.macAddress;
"wifi.powersave" =
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix b/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix
index 7fc145f230..390f0ddaee 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix
@@ -37,8 +37,6 @@ in
nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
```
- Make sure user `nix-serve` has read access to the private key file.
-
For more details see nix-store1.
'';
};
@@ -61,16 +59,22 @@ in
path = [ config.nix.package.out pkgs.bzip2.bin ];
environment.NIX_REMOTE = "daemon";
- environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
+
+ script = ''
+ ${lib.optionalString (cfg.secretKeyFile != null) ''
+ export NIX_SECRET_KEY_FILE="$CREDENTIALS_DIRECTORY/NIX_SECRET_KEY_FILE"
+ ''}
+ exec ${pkgs.nix-serve}/bin/nix-serve --listen ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}
+ '';
serviceConfig = {
Restart = "always";
RestartSec = "5s";
- ExecStart = "${pkgs.nix-serve}/bin/nix-serve " +
- "--listen ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}";
User = "nix-serve";
Group = "nix-serve";
DynamicUser = true;
+ LoadCredential = lib.optionalString (cfg.secretKeyFile != null)
+ "NIX_SECRET_KEY_FILE:${cfg.secretKeyFile}";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix b/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix
index 3bd15bd5c8..43333af5e2 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix
@@ -51,7 +51,7 @@ in
extraSettingsPaths = mkOption {
type = types.listOf types.path;
- default = [];
+ default = [ ];
description = ''
Additional settings paths used to configure nomad. These can be files or directories.
'';
@@ -60,9 +60,21 @@ in
'';
};
+ extraSettingsPlugins = mkOption {
+ type = types.listOf (types.either types.package types.path);
+ default = [ ];
+ description = ''
+ Additional plugins dir used to configure nomad.
+ '';
+ example = literalExpression ''
+ [ "" "pkgs."]
+ '';
+ };
+
+
settings = mkOption {
type = format.type;
- default = {};
+ default = { };
description = ''
Configuration for Nomad. See the documentation
for supported values.
@@ -128,7 +140,8 @@ in
DynamicUser = cfg.dropPrivileges;
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStart = "${cfg.package}/bin/nomad agent -config=/etc/nomad.json" +
- concatMapStrings (path: " -config=${path}") cfg.extraSettingsPaths;
+ concatMapStrings (path: " -config=${path}") cfg.extraSettingsPaths +
+ concatMapStrings (path: " -plugin-dir=${path}/bin") cfg.extraSettingsPlugins;
KillMode = "process";
KillSignal = "SIGINT";
LimitNOFILE = 65536;
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nsd.nix b/third_party/nixpkgs/nixos/modules/services/networking/nsd.nix
index 893995165b..cf6c9661dc 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nsd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nsd.nix
@@ -603,6 +603,7 @@ in
reuseport = mkOption {
type = types.bool;
default = pkgs.stdenv.isLinux;
+ defaultText = literalExpression "pkgs.stdenv.isLinux";
description = ''
Whether to enable SO_REUSEPORT on all used sockets. This lets multiple
processes bind to the same port. This speeds up operation especially
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix b/third_party/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix
index d414936a2c..34728455a2 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix
@@ -52,6 +52,7 @@ in
servers = mkOption {
default = config.networking.timeServers;
+ defaultText = literalExpression "config.networking.timeServers";
type = types.listOf types.str;
description = ''
The set of NTP servers from which to synchronise.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ntp/ntpd.nix b/third_party/nixpkgs/nixos/modules/services/networking/ntp/ntpd.nix
index ce4802ce02..12be0d045a 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ntp/ntpd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ntp/ntpd.nix
@@ -77,6 +77,7 @@ in
servers = mkOption {
default = config.networking.timeServers;
+ defaultText = literalExpression "config.networking.timeServers";
type = types.listOf types.str;
description = ''
The set of NTP servers from which to synchronise.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ntp/openntpd.nix b/third_party/nixpkgs/nixos/modules/services/networking/ntp/openntpd.nix
index 9f3892e3b5..e86b71291f 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ntp/openntpd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ntp/openntpd.nix
@@ -23,6 +23,7 @@ in
servers = mkOption {
default = config.services.ntp.servers;
+ defaultText = literalExpression "config.services.ntp.servers";
type = types.listOf types.str;
inherit (options.services.ntp.servers) description;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/radicale.nix b/third_party/nixpkgs/nixos/modules/services/networking/radicale.nix
index c121008d52..c6c40777ed 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/radicale.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/radicale.nix
@@ -195,6 +195,7 @@ in {
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
UMask = "0027";
+ WorkingDirectory = "/var/lib/radicale";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix b/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix
index 4701b0e814..8912785064 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix
@@ -58,6 +58,7 @@ in
type = types.str;
example = "Voltron";
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
description = ''
Name of the Resilio Sync device.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/sabnzbd.nix b/third_party/nixpkgs/nixos/modules/services/networking/sabnzbd.nix
index 43566dfd25..54eeba1a9e 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/sabnzbd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/sabnzbd.nix
@@ -17,6 +17,13 @@ in
services.sabnzbd = {
enable = mkEnableOption "the sabnzbd server";
+ package = mkOption {
+ type = types.package;
+ default = pkgs.sabnzbd;
+ defaultText = "pkgs.sabnzbd";
+ description = "The sabnzbd executable package run by the service.";
+ };
+
configFile = mkOption {
type = types.path;
default = "/var/lib/sabnzbd/sabnzbd.ini";
@@ -63,7 +70,7 @@ in
GuessMainPID = "no";
User = "${cfg.user}";
Group = "${cfg.group}";
- ExecStart = "${sabnzbd}/bin/sabnzbd -d -f ${cfg.configFile}";
+ ExecStart = "${lib.getBin cfg.package}/bin/sabnzbd -d -f ${cfg.configFile}";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/seafile.nix b/third_party/nixpkgs/nixos/modules/services/networking/seafile.nix
index 856797b6b0..d7fb22edeb 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/seafile.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/seafile.nix
@@ -124,6 +124,7 @@ in {
type = types.package;
description = "Which package to use for the seafile server.";
default = pkgs.seafile-server;
+ defaultText = literalExpression "pkgs.seafile-server";
};
seahubExtraConf = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/shairport-sync.nix b/third_party/nixpkgs/nixos/modules/services/networking/shairport-sync.nix
index ac526c0e9f..eb61663e4d 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/shairport-sync.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/shairport-sync.nix
@@ -36,6 +36,14 @@ in
'';
};
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to automatically open ports in the firewall.
+ '';
+ };
+
user = mkOption {
type = types.str;
default = "shairport";
@@ -45,6 +53,15 @@ in
'';
};
+ group = mkOption {
+ type = types.str;
+ default = "shairport";
+ description = ''
+ Group account name under which to run shairport-sync. The account
+ will be created.
+ '';
+ };
+
};
};
@@ -58,13 +75,22 @@ in
services.avahi.publish.enable = true;
services.avahi.publish.userServices = true;
- users.users.${cfg.user} =
- { description = "Shairport user";
+ users = {
+ users.${cfg.user} = {
+ description = "Shairport user";
isSystemUser = true;
createHome = true;
home = "/var/lib/shairport-sync";
+ group = cfg.group;
extraGroups = [ "audio" ] ++ optional config.hardware.pulseaudio.enable "pulse";
};
+ groups.${cfg.group} = {};
+ };
+
+ networking.firewall = mkIf cfg.openFirewall {
+ allowedTCPPorts = [ 5000 ];
+ allowedUDPPortRanges = [ { from = 6001; to = 6011; } ];
+ };
systemd.services.shairport-sync =
{
@@ -73,6 +99,7 @@ in
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = cfg.user;
+ Group = cfg.group;
ExecStart = "${pkgs.shairport-sync}/bin/shairport-sync ${cfg.arguments}";
RuntimeDirectory = "shairport-sync";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/skydns.nix b/third_party/nixpkgs/nixos/modules/services/networking/skydns.nix
index c4e959b57b..dea60a3862 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/skydns.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/skydns.nix
@@ -49,6 +49,7 @@ in {
nameservers = mkOption {
default = map (n: n + ":53") config.networking.nameservers;
+ defaultText = literalExpression ''map (n: n + ":53") config.networking.nameservers'';
type = types.listOf types.str;
description = "Skydns list of nameservers to forward DNS requests to when not authoritative for a domain.";
example = ["8.8.8.8:53" "8.8.4.4:53"];
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/smokeping.nix b/third_party/nixpkgs/nixos/modules/services/networking/smokeping.nix
index 021368488a..bd71b158db 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/smokeping.nix
+++ b/third_party/nixpkgs/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;
@@ -225,6 +241,12 @@ in
+ FPing
binary = ${config.security.wrapperDir}/fping
'';
+ defaultText = literalExpression ''
+ '''
+ + FPing
+ binary = ''${config.security.wrapperDir}/fping
+ '''
+ '';
description = "Probe configuration";
};
sendmail = mkOption {
@@ -297,10 +319,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 +334,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/third_party/nixpkgs/nixos/modules/services/networking/soju.nix b/third_party/nixpkgs/nixos/modules/services/networking/soju.nix
index 68a33e9dcc..cb0acf4765 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/soju.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/soju.nix
@@ -43,6 +43,7 @@ in
hostName = mkOption {
type = types.str;
default = config.networking.hostName;
+ defaultText = literalExpression "config.networking.hostName";
description = "Server hostname.";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix b/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix
index 8ae62931a8..cca61b9ce9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix
@@ -569,6 +569,16 @@ in {
these sections offer more flexibility.
'';
+ ca_id = mkOptionalStrParam ''
+ Identity in CA certificate to accept for authentication. The specified
+ identity must be contained in one (intermediate) CA of the remote peer
+ trustchain, either as subject or as subjectAltName. This has the same
+ effect as specifying cacerts to force clients under
+ a CA to specific connections; it does not require the CA certificate
+ to be available locally, and can be received from the peer during the
+ IKE exchange.
+ '';
+
cacerts = mkCommaSepListParam [] ''
List of CA certificates to accept for
authentication. The certificates may use a relative path from the
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/teamspeak3.nix b/third_party/nixpkgs/nixos/modules/services/networking/teamspeak3.nix
index fadb32dcd7..c0ed08282a 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/teamspeak3.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/teamspeak3.nix
@@ -43,7 +43,7 @@ in
voiceIP = mkOption {
type = types.nullOr types.str;
default = null;
- example = "0.0.0.0";
+ example = "[::]";
description = ''
IP on which the server instance will listen for incoming voice connections. Defaults to any IP.
'';
@@ -60,7 +60,7 @@ in
fileTransferIP = mkOption {
type = types.nullOr types.str;
default = null;
- example = "0.0.0.0";
+ example = "[::]";
description = ''
IP on which the server instance will listen for incoming file transfer connections. Defaults to any IP.
'';
@@ -91,6 +91,18 @@ in
'';
};
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Open ports in the firewall for the TeamSpeak3 server.";
+ };
+
+ openFirewallServerQuery = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Open ports in the firewall for the TeamSpeak3 serverquery (administration) system. Requires openFirewall.";
+ };
+
};
};
@@ -115,6 +127,12 @@ in
"d '${cfg.logPath}' - ${user} ${group} - -"
];
+ networking.firewall = mkIf cfg.openFirewall {
+ allowedTCPPorts = [ cfg.fileTransferPort ] ++ optionals (cfg.openFirewallServerQuery) [ cfg.queryPort (cfg.queryPort + 11) ];
+ # subsequent vServers will use the incremented voice port, let's just open the next 10
+ allowedUDPPortRanges = [ { from = cfg.defaultVoicePort; to = cfg.defaultVoicePort + 10; } ];
+ };
+
systemd.services.teamspeak3-server = {
description = "Teamspeak3 voice communication server daemon";
after = [ "network.target" ];
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/tinc.nix b/third_party/nixpkgs/nixos/modules/services/networking/tinc.nix
index 1d77503d68..9db433fa07 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/tinc.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/tinc.nix
@@ -289,13 +289,13 @@ in
};
chroot = mkOption {
- default = true;
+ default = false;
type = types.bool;
description = ''
Change process root directory to the directory where the config file is located (/etc/tinc/netname/), for added security.
The chroot is performed after all the initialization is done, after writing pid files and opening network sockets.
- Note that tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
+ Note that this currently breaks dns resolution and tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/unifi.nix b/third_party/nixpkgs/nixos/modules/services/networking/unifi.nix
index caf89c8439..53ad4df477 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/unifi.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix b/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix
index d82ddb894e..5853c5a123 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix
@@ -8,6 +8,7 @@ in
proxy = mkOption {
type = types.str;
default = config.services.oauth2_proxy.httpAddress;
+ defaultText = literalExpression "config.services.oauth2_proxy.httpAddress";
description = ''
The address of the reverse proxy endpoint for oauth2_proxy
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/security/step-ca.nix b/third_party/nixpkgs/nixos/modules/services/security/step-ca.nix
index db7f81acd2..27b2ceed1a 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/step-ca.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/step-ca.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, nixosTests, ... }:
let
cfg = config.services.step-ca;
settingsFormat = (pkgs.formats.json { });
@@ -82,6 +82,8 @@ in
});
in
{
+ passthru.tests.step-ca = nixosTests.step-ca;
+
assertions =
[
{
diff --git a/third_party/nixpkgs/nixos/modules/services/security/tor.nix b/third_party/nixpkgs/nixos/modules/services/security/tor.nix
index c94b248d5f..c3e3248ee8 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/tor.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/tor.nix
@@ -1012,6 +1012,7 @@ in
# Tor cannot currently bind privileged port when PrivateUsers=true,
# see https://gitlab.torproject.org/legacy/trac/-/issues/20930
PrivateUsers = !bindsPrivilegedPort;
+ ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
@@ -1019,6 +1020,7 @@ in
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
+ ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
diff --git a/third_party/nixpkgs/nixos/modules/services/security/torsocks.nix b/third_party/nixpkgs/nixos/modules/services/security/torsocks.nix
index 47ac95c462..fdd6ac32cc 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/torsocks.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/torsocks.nix
@@ -37,6 +37,7 @@ in
enable = mkOption {
type = types.bool;
default = config.services.tor.enable && config.services.tor.client.enable;
+ defaultText = literalExpression "config.services.tor.enable && config.services.tor.client.enable";
description = ''
Whether to build /etc/tor/torsocks.conf
containing the specified global torsocks configuration.
diff --git a/third_party/nixpkgs/nixos/modules/services/security/yubikey-agent.nix b/third_party/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
index 8a2f98d041..8be2457e1e 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/torrent/transmission.nix b/third_party/nixpkgs/nixos/modules/services/torrent/transmission.nix
index a6ff467914..b8b38f6ba9 100644
--- a/third_party/nixpkgs/nixos/modules/services/torrent/transmission.nix
+++ b/third_party/nixpkgs/nixos/modules/services/torrent/transmission.nix
@@ -67,7 +67,7 @@ in
description = "";
};
options.message-level = mkOption {
- type = types.ints.between 0 2;
+ type = types.ints.between 0 3;
default = 2;
description = "Set verbosity of transmission messages.";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix b/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix
index 8c5b6e5e0c..7021a2c80f 100644
--- a/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix
+++ b/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix
@@ -24,6 +24,7 @@ in
imports = [
(mkRenamedOptionModule [ "services" "mingetty" ] [ "services" "getty" ])
+ (mkRemovedOptionModule [ "services" "getty" "serialSpeed" ] ''set non-standard baudrates with `boot.kernelParams` i.e. boot.kernelParams = ["console=ttyS2,1500000"];'')
];
options = {
@@ -92,17 +93,6 @@ in
'';
};
- serialSpeed = mkOption {
- type = types.listOf types.int;
- default = [ 115200 57600 38400 9600 ];
- example = [ 38400 9600 ];
- description = ''
- Bitrates to allow for agetty's listening on serial ports. Listing more
- bitrates gives more interoperability but at the cost of long delays
- for getting a sync on the line.
- '';
- };
-
};
};
@@ -124,10 +114,9 @@ in
};
systemd.services."serial-getty@" =
- let speeds = concatStringsSep "," (map toString config.services.getty.serialSpeed); in
{ serviceConfig.ExecStart = [
"" # override upstream default with an empty ExecStart
- (gettyCmd "%I --keep-baud ${speeds} $TERM")
+ (gettyCmd "%I --keep-baud $TERM")
];
restartIfChanged = false;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/video/epgstation/default.nix b/third_party/nixpkgs/nixos/modules/services/video/epgstation/default.nix
index e34b6e0510..56bd9d9eee 100644
--- a/third_party/nixpkgs/nixos/modules/services/video/epgstation/default.nix
+++ b/third_party/nixpkgs/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 = {
@@ -48,7 +48,7 @@ let
in
{
options.services.epgstation = {
- enable = mkEnableOption pkgs.epgstation.meta.description;
+ enable = mkEnableOption "EPGStation: DTV Software in Japan";
usePreconfiguredStreaming = mkOption {
type = types.bool;
diff --git a/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix b/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix
index 16efb56cfd..35303b2332 100644
--- a/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix
+++ b/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix
@@ -24,7 +24,7 @@ in
{
options = {
services.mirakurun = {
- enable = mkEnableOption mirakurun.meta.description;
+ enable = mkEnableOption "the Mirakurun DVR Tuner Server";
port = mkOption {
type = with types; nullOr port;
diff --git a/third_party/nixpkgs/nixos/modules/services/video/rtsp-simple-server.nix b/third_party/nixpkgs/nixos/modules/services/video/rtsp-simple-server.nix
new file mode 100644
index 0000000000..644b1945a1
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/video/rtsp-simple-server.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.rtsp-simple-server;
+ package = pkgs.rtsp-simple-server;
+ format = pkgs.formats.yaml {};
+in
+{
+ options = {
+ services.rtsp-simple-server = {
+ enable = mkEnableOption "RTSP Simple Server";
+
+ settings = mkOption {
+ description = ''
+ Settings for rtsp-simple-server.
+ Read more at
+ '';
+ type = format.type;
+
+ default = {
+ logLevel = "info";
+ logDestinations = [
+ "stdout"
+ ];
+ # we set this so when the user uses it, it just works (see LogsDirectory below). but it's not used by default.
+ logFile = "/var/log/rtsp-simple-server/rtsp-simple-server.log";
+ };
+
+ example = {
+ paths = {
+ cam = {
+ runOnInit = "ffmpeg -f v4l2 -i /dev/video0 -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH";
+ runOnInitRestart = true;
+ };
+ };
+ };
+ };
+
+ env = mkOption {
+ type = with types; attrsOf anything;
+ description = "Extra environment variables for RTSP Simple Server";
+ default = {};
+ example = {
+ RTSP_CONFKEY = "mykey";
+ };
+ };
+ };
+ };
+
+ config = mkIf (cfg.enable) {
+ # NOTE: rtsp-simple-server watches this file and automatically reloads if it changes
+ environment.etc."rtsp-simple-server.yaml".source = format.generate "rtsp-simple-server.yaml" cfg.settings;
+
+ systemd.services.rtsp-simple-server = {
+ environment = cfg.env;
+
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ path = with pkgs; [
+ ffmpeg
+ ];
+
+ serviceConfig = {
+ DynamicUser = true;
+ User = "rtsp-simple-server";
+ Group = "rtsp-simple-server";
+
+ LogsDirectory = "rtsp-simple-server";
+
+ # user likely may want to stream cameras, can't hurt to add video group
+ SupplementaryGroups = "video";
+
+ ExecStart = "${package}/bin/rtsp-simple-server /etc/rtsp-simple-server.yaml";
+ };
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/code-server.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/code-server.nix
new file mode 100644
index 0000000000..474e9140ae
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
index bc5b1a8be5..fc0e23729b 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix
index 9c66589dff..4f6a34e6d2 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/hledger-web.nix
@@ -118,7 +118,7 @@ in {
++ extraOptions);
in {
description = "hledger-web - web-app for the hledger accounting tool.";
- documentation = [ https://hledger.org/hledger-web.html ];
+ documentation = [ "https://hledger.org/hledger-web.html" ];
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
serviceConfig = mkMerge [
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/ihatemoney/default.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/ihatemoney/default.nix
index b4987fa470..ad314c885b 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/ihatemoney/default.nix
+++ b/third_party/nixpkgs/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}
'';
@@ -76,12 +79,24 @@ in
email = mkOption {
type = types.str;
default = "ihatemoney@${config.networking.hostName}";
+ defaultText = literalExpression ''"ihatemoney@''${config.networking.hostName}"'';
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/third_party/nixpkgs/nixos/modules/services/web-apps/invidious.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/invidious.nix
new file mode 100644
index 0000000000..7fb826af58
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/web-apps/lemmy.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/lemmy.nix
index ae7d0d02c8..7cd2357c45 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/lemmy.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
index 2458cb3b59..1e3c7e53c1 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
+++ b/third_party/nixpkgs/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";
@@ -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) "@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 ];
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix
index b0d281cfb6..eba55e7e9b 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix
@@ -24,6 +24,7 @@ in {
(mkRemovedOptionModule [ "services" "piwik" "phpfpmProcessManagerConfig" ] "Use services.phpfpm.pools..settings")
(mkRemovedOptionModule [ "services" "matomo" "phpfpmProcessManagerConfig" ] "Use services.phpfpm.pools..settings")
(mkRenamedOptionModule [ "services" "piwik" "nginx" ] [ "services" "matomo" "nginx" ])
+ (mkRenamedOptionModule [ "services" "matomo" "periodicArchiveProcessingUrl" ] [ "services" "matomo" "hostname" ])
];
options = {
@@ -77,7 +78,7 @@ in {
'';
};
- periodicArchiveProcessingUrl = mkOption {
+ hostname = mkOption {
type = types.str;
default = "${user}.${fqdn}";
example = "matomo.yourdomain.org";
@@ -170,6 +171,19 @@ in {
fi
chown -R ${user}:${user} ${dataDir}
chmod -R ug+rwX,o-rwx ${dataDir}
+
+ if [ -e ${dataDir}/current-package ]; then
+ CURRENT_PACKAGE=$(readlink ${dataDir}/current-package)
+ NEW_PACKAGE=${cfg.package}
+ if [ "$CURRENT_PACKAGE" != "$NEW_PACKAGE" ]; then
+ # keeping tmp arround between upgrades seems to bork stuff, so delete it
+ rm -rf ${dataDir}/tmp
+ fi
+ elif [ -e ${dataDir}/tmp ]; then
+ # upgrade from 4.4.1
+ rm -rf ${dataDir}/tmp
+ fi
+ ln -sfT ${cfg.package} ${dataDir}/current-package
'';
script = ''
# Use User-Private Group scheme to protect Matomo data, but allow administration / backup via 'matomo' group
@@ -202,7 +216,7 @@ in {
UMask = "0007";
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
- ExecStart = "${cfg.package}/bin/matomo-console core:archive --url=https://${cfg.periodicArchiveProcessingUrl}";
+ ExecStart = "${cfg.package}/bin/matomo-console core:archive --url=https://${cfg.hostname}";
};
};
@@ -258,7 +272,7 @@ in {
# References:
# https://fralef.me/piwik-hardening-with-nginx-and-php-fpm.html
# https://github.com/perusio/piwik-nginx
- "${user}.${fqdn}" = mkMerge [ cfg.nginx {
+ "${cfg.hostname}" = mkMerge [ cfg.nginx {
# don't allow to override the root easily, as it will almost certainly break Matomo.
# disadvantage: not shown as default in docs.
root = mkForce "${cfg.package}/share";
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix
index 6f5cfa2e34..19f3e75469 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix
@@ -57,7 +57,7 @@ let
pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
phpExt = pkgs.php74.withExtensions
- ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo filter ]);
+ ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo filter opcache ]);
in
{
# interface
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
index e6785d8d18..b1a536e519 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
@@ -153,7 +153,7 @@ in {
package = mkOption {
type = types.package;
description = "Which package to use for the Nextcloud instance.";
- relatedPackages = [ "nextcloud21" "nextcloud22" ];
+ relatedPackages = [ "nextcloud21" "nextcloud22" "nextcloud23" ];
};
phpPackage = mkOption {
type = types.package;
@@ -508,7 +508,7 @@ in {
config = mkIf cfg.enable (mkMerge [
{ warnings = let
- latest = 22;
+ latest = 23;
upgradeWarning = major: nixos:
''
A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
@@ -543,6 +543,7 @@ in {
'')
++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"))
+ ++ (optional (versionOlder cfg.package.version "23") (upgradeWarning 22 "22.05"))
++ (optional isUnsupportedMariadb ''
You seem to be using MariaDB at an unsupported version (i.e. at least 10.6)!
Please note that this isn't supported officially by Nextcloud. You can either
@@ -573,7 +574,8 @@ in {
# 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
+ else if versionOlder stateVersion "22.05" then nextcloud22
+ else nextcloud23
);
services.nextcloud.datadir = mkOptionDefault config.services.nextcloud.home;
@@ -586,7 +588,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/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml b/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
index 9d9cb8dfb3..8f55086a2b 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
@@ -11,7 +11,7 @@
desktop client is packaged at pkgs.nextcloud-client.
- The current default by NixOS is nextcloud22 which is also the latest
+ The current default by NixOS is nextcloud23 which is also the latest
major version available.
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/openwebrx.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/openwebrx.nix
new file mode 100644
index 0000000000..9e90c01e0b
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/openwebrx.nix
@@ -0,0 +1,34 @@
+{ config, lib, pkgs, ... }:
+let
+ cfg = config.services.openwebrx;
+in
+{
+ options.services.openwebrx = with lib; {
+ enable = mkEnableOption "OpenWebRX Web interface for Software-Defined Radios on http://localhost:8073";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.openwebrx;
+ defaultText = literalExpression "pkgs.openwebrx";
+ description = "OpenWebRX package to use for the service";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ systemd.services.openwebrx = {
+ wantedBy = [ "multi-user.target" ];
+ path = with pkgs; [
+ csdr
+ alsaUtils
+ netcat
+ ];
+ serviceConfig = {
+ ExecStart = "${cfg.package}/bin/openwebrx";
+ Restart = "always";
+ DynamicUser = true;
+ # openwebrx uses /var/lib/openwebrx by default
+ StateDirectory = [ "openwebrx" ];
+ };
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/peertube.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/peertube.nix
index 362a3358b7..932ddcfef1 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/peertube.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/peertube.nix
@@ -234,6 +234,7 @@ in {
package = lib.mkOption {
type = lib.types.package;
default = pkgs.peertube;
+ defaultText = lib.literalExpression "pkgs.peertube";
description = "Peertube package to use.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/plantuml-server.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/plantuml-server.nix
index 5ac3bc5226..f4bf43f56b 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/plantuml-server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/plantuml-server.nix
@@ -58,8 +58,8 @@ in
graphvizPackage = mkOption {
type = types.package;
- default = pkgs.graphviz_2_32;
- defaultText = literalExpression "pkgs.graphviz_2_32";
+ default = pkgs.graphviz;
+ defaultText = literalExpression "pkgs.graphviz";
description = "Package containing the dot executable.";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix
index b56848b79d..b6c48186a1 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix
@@ -5,23 +5,18 @@ with lib;
let
cfg = config.services.plausible;
- # FIXME consider using LoadCredential as soon as it actually works.
- envSecrets = ''
- ADMIN_USER_PWD="$(<${cfg.adminUser.passwordFile})"
- export ADMIN_USER_PWD # separate export to make `set -e` work
-
- SECRET_KEY_BASE="$(<${cfg.server.secretKeybaseFile})"
- export SECRET_KEY_BASE # separate export to make `set -e` work
-
- ${optionalString (cfg.mail.smtp.passwordFile != null) ''
- SMTP_USER_PWD="$(<${cfg.mail.smtp.passwordFile})"
- export SMTP_USER_PWD # separate export to make `set -e` work
- ''}
- '';
in {
options.services.plausible = {
enable = mkEnableOption "plausible";
+ releaseCookiePath = mkOption {
+ default = null;
+ type = with types; nullOr (either str path);
+ description = ''
+ The path to the file with release cookie. (used for remote connection to the running node).
+ '';
+ };
+
adminUser = {
name = mkOption {
default = "admin";
@@ -184,13 +179,17 @@ in {
enable = true;
};
+ services.epmd.enable = true;
+
+ environment.systemPackages = [ pkgs.plausible ];
+
systemd.services = mkMerge [
{
plausible = {
inherit (pkgs.plausible.meta) description;
documentation = [ "https://plausible.io/docs/self-hosting" ];
wantedBy = [ "multi-user.target" ];
- after = optional cfg.database.postgres.setup "plausible-postgres.service";
+ after = optionals cfg.database.postgres.setup [ "postgresql.service" "plausible-postgres.service" ];
requires = optional cfg.database.clickhouse.setup "clickhouse.service"
++ optionals cfg.database.postgres.setup [
"postgresql.service"
@@ -200,7 +199,7 @@ in {
environment = {
# NixOS specific option to avoid that it's trying to write into its store-path.
# See also https://github.com/lau/tzdata#data-directory-and-releases
- TZDATA_DIR = "/var/lib/plausible/elixir_tzdata";
+ STORAGE_DIR = "/var/lib/plausible/elixir_tzdata";
# Configuration options from
# https://plausible.io/docs/self-hosting-configuration
@@ -208,6 +207,8 @@ in {
DISABLE_REGISTRATION = boolToString cfg.server.disableRegistration;
RELEASE_TMP = "/var/lib/plausible/tmp";
+ # Home is needed to connect to the node with iex
+ HOME = "/var/lib/plausible";
ADMIN_USER_NAME = cfg.adminUser.name;
ADMIN_USER_EMAIL = cfg.adminUser.email;
@@ -231,28 +232,33 @@ in {
path = [ pkgs.plausible ]
++ optional cfg.database.postgres.setup config.services.postgresql.package;
+ script = ''
+ export CONFIG_DIR=$CREDENTIALS_DIRECTORY
+
+ # setup
+ ${pkgs.plausible}/createdb.sh
+ ${pkgs.plausible}/migrate.sh
+ ${optionalString cfg.adminUser.activate ''
+ if ! ${pkgs.plausible}/init-admin.sh | grep 'already exists'; then
+ psql -d plausible <<< "UPDATE users SET email_verified=true;"
+ fi
+ ''}
+ ${optionalString (cfg.releaseCookiePath != null) ''
+ export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )"
+ ''}
+ plausible start
+ '';
serviceConfig = {
DynamicUser = true;
PrivateTmp = true;
WorkingDirectory = "/var/lib/plausible";
StateDirectory = "plausible";
- ExecStartPre = "@${pkgs.writeShellScript "plausible-setup" ''
- set -eu -o pipefail
- ${envSecrets}
- ${pkgs.plausible}/createdb.sh
- ${pkgs.plausible}/migrate.sh
- ${optionalString cfg.adminUser.activate ''
- if ! ${pkgs.plausible}/init-admin.sh | grep 'already exists'; then
- psql -d plausible <<< "UPDATE users SET email_verified=true;"
- fi
- ''}
- ''} plausible-setup";
- ExecStart = "@${pkgs.writeShellScript "plausible" ''
- set -eu -o pipefail
- ${envSecrets}
- plausible start
- ''} plausible";
+ LoadCredential = [
+ "ADMIN_USER_PWD:${cfg.adminUser.passwordFile}"
+ "SECRET_KEY_BASE:${cfg.server.secretKeybaseFile}"
+ ] ++ lib.optionals (cfg.mail.smtp.passwordFile != null) [ "SMTP_USER_PWD:${cfg.mail.smtp.passwordFile}"]
+ ++ lib.optionals (cfg.releaseCookiePath != null) [ "RELEASE_COOKIE:${cfg.releaseCookiePath}"];
};
};
}
@@ -260,20 +266,22 @@ in {
# `plausible' requires the `citext'-extension.
plausible-postgres = {
after = [ "postgresql.service" ];
- bindsTo = [ "postgresql.service" ];
- requiredBy = [ "plausible.service" ];
partOf = [ "plausible.service" ];
- serviceConfig.Type = "oneshot";
- unitConfig.ConditionPathExists = "!/var/lib/plausible/.db-setup";
- script = ''
- mkdir -p /var/lib/plausible/
+ serviceConfig = {
+ Type = "oneshot";
+ User = config.services.postgresql.superUser;
+ RemainAfterExit = true;
+ };
+ script = with cfg.database.postgres; ''
PSQL() {
- /run/wrappers/bin/sudo -Hu postgres ${config.services.postgresql.package}/bin/psql --port=5432 "$@"
+ ${config.services.postgresql.package}/bin/psql --port=5432 "$@"
}
- PSQL -tAc "CREATE ROLE plausible WITH LOGIN;"
- PSQL -tAc "CREATE DATABASE plausible WITH OWNER plausible;"
- PSQL -d plausible -tAc "CREATE EXTENSION IF NOT EXISTS citext;"
- touch /var/lib/plausible/.db-setup
+ # check if the database already exists
+ if ! PSQL -lqt | ${pkgs.coreutils}/bin/cut -d \| -f 1 | ${pkgs.gnugrep}/bin/grep -qw ${dbname} ; then
+ PSQL -tAc "CREATE ROLE plausible WITH LOGIN;"
+ PSQL -tAc "CREATE DATABASE ${dbname} WITH OWNER plausible;"
+ PSQL -d ${dbname} -tAc "CREATE EXTENSION IF NOT EXISTS citext;"
+ fi
'';
};
})
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix
index 21567896a8..ff50b95254 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix
@@ -21,7 +21,8 @@ let
$DB['PORT'] = '${toString cfg.database.port}';
$DB['DATABASE'] = '${cfg.database.name}';
$DB['USER'] = '${cfg.database.user}';
- $DB['PASSWORD'] = ${if cfg.database.passwordFile != null then "file_get_contents('${cfg.database.passwordFile}')" else "''"};
+ # NOTE: file_get_contents adds newline at the end of returned string
+ $DB['PASSWORD'] = ${if cfg.database.passwordFile != null then "trim(file_get_contents('${cfg.database.passwordFile}'), \"\\r\\n\")" else "''"};
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = ''';
$ZBX_SERVER = '${cfg.server.address}';
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix
index cef27e2e59..ed27dd375c 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix
@@ -171,34 +171,27 @@ in
};
config = mkIf cfg.enable {
+ systemd.packages = [ cfg.package ];
systemd.services.caddy = {
- description = "Caddy web server";
- # upstream unit: https://github.com/caddyserver/dist/blob/master/init/caddy.service
- after = [ "network-online.target" ];
- wants = [ "network-online.target" ]; # systemd-networkd-wait-online.service
wantedBy = [ "multi-user.target" ];
startLimitIntervalSec = 14400;
startLimitBurst = 10;
+
serviceConfig = {
- ExecStart = "${cfg.package}/bin/caddy run ${optionalString cfg.resume "--resume"} --config ${configJSON}";
- ExecReload = "${cfg.package}/bin/caddy reload --config ${configJSON}";
- Type = "simple";
+ # https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=
+ # If the empty string is assigned to this option, the list of commands to start is reset, prior assignments of this option will have no effect.
+ ExecStart = [ "" "${cfg.package}/bin/caddy run ${optionalString cfg.resume "--resume"} --config ${configJSON}" ];
+ ExecReload = [ "" "${cfg.package}/bin/caddy reload --config ${configJSON}" ];
+
User = cfg.user;
Group = cfg.group;
+ ReadWriteDirectories = cfg.dataDir;
Restart = "on-abnormal";
- AmbientCapabilities = "cap_net_bind_service";
- CapabilityBoundingSet = "cap_net_bind_service";
+
+ # TODO: attempt to upstream these options
NoNewPrivileges = true;
- LimitNPROC = 512;
- LimitNOFILE = 1048576;
- PrivateTmp = true;
PrivateDevices = true;
ProtectHome = true;
- ProtectSystem = "full";
- ReadWriteDirectories = cfg.dataDir;
- KillMode = "mixed";
- KillSignal = "SIGQUIT";
- TimeoutStopSec = "5s";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index be589e42dd..96e45cfc4f 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -79,6 +79,11 @@ let
# we use a list of mime types from the mailcap package, which is also
# used by most other Linux distributions by default.
include ${pkgs.mailcap}/etc/nginx/mime.types;
+ # When recommendedOptimisation is disabled nginx fails to start because the mailmap mime.types database
+ # contains 1026 enries and the default is only 1024. Setting to a higher number to remove the need to
+ # overwrite it because nginx does not allow duplicated settings.
+ types_hash_max_size 4096;
+
include ${cfg.package}/conf/fastcgi.conf;
include ${cfg.package}/conf/uwsgi_params;
@@ -113,7 +118,6 @@ let
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
- types_hash_max_size 4096;
''}
ssl_protocols ${cfg.sslProtocols};
@@ -896,7 +900,7 @@ in
PrivateMounts = true;
# System Call Filtering
SystemCallArchitectures = "native";
- SystemCallFilter = "~@cpu-emulation @debug @keyring @ipc @mount @obsolete @privileged @setuid";
+ SystemCallFilter = "~@cpu-emulation @debug @keyring @ipc @mount @obsolete @privileged @setuid @mincore";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/trafficserver/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/trafficserver/default.nix
index 706ea5bfef..b52087fa03 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/trafficserver/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/trafficserver/default.nix
@@ -61,7 +61,7 @@ in
ipAllow = mkOption {
type = types.nullOr yaml.type;
- default = builtins.fromJSON (builtins.readFile ./ip_allow.json);
+ default = lib.importJSON ./ip_allow.json;
defaultText = literalDocBook "upstream defaults";
example = literalExpression ''
{
@@ -84,7 +84,7 @@ in
logging = mkOption {
type = types.nullOr yaml.type;
- default = builtins.fromJSON (builtins.readFile ./logging.json);
+ default = lib.importJSON ./logging.json;
defaultText = literalDocBook "upstream defaults";
example = { };
description = ''
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/uwsgi.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/uwsgi.nix
index ac43595131..a1cad17336 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/uwsgi.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/uwsgi.nix
@@ -121,7 +121,7 @@ in {
moin = {
type = "normal";
pythonPackages = self: with self; [ moinmoin ];
- socket = "${config.services.uwsgi.runDir}/uwsgi.sock";
+ socket = "''${config.services.uwsgi.runDir}/uwsgi.sock";
};
};
}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix
index 0ebf58eb9f..fe817313a9 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix
@@ -42,6 +42,7 @@ in
stateDir = mkOption {
type = types.path;
default = "/var/spool/varnish/${config.networking.hostName}";
+ defaultText = literalExpression ''"/var/spool/varnish/''${config.networking.hostName}"'';
description = "
Directory holding all state for Varnish to run.
";
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/clight.nix b/third_party/nixpkgs/nixos/modules/services/x11/clight.nix
index 873f425fb8..d994a658cb 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/clight.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/clight.nix
@@ -71,6 +71,14 @@ in {
};
config = mkIf cfg.enable {
+ assertions = let
+ inRange = v: l: r: v >= l && v <= r;
+ in [
+ { assertion = config.location.provider == "manual" ->
+ inRange config.location.latitude (-90) 90 && inRange config.location.longitude (-180) 180;
+ message = "You must specify a valid latitude and longitude if manually providing location"; }
+ ];
+
boot.kernelModules = [ "i2c_dev" ];
environment.systemPackages = with pkgs; [ clight clightd ];
services.dbus.packages = with pkgs; [ clight clightd ];
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index a0a5873f72..82b07206a8 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -202,6 +202,13 @@ in
blueberry
warpinator
+ # cinnamon xapps
+ xviewer
+ xreader
+ xed
+ xplayer
+ pix
+
# external apps shipped with linux-mint
hexchat
gnome-calculator
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml
index 6c53bacacb..e5da774019 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml
@@ -126,21 +126,6 @@
-
- GDM
-
-
- If you want to use GNOME Wayland session on Nvidia hardware, you need to enable:
-
-
-
- = true;
-
-
-
- as the default configuration will forbid this.
-
- Icons and GTK Themes
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 8155a1844e..3296b72204 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -268,7 +268,7 @@ in
fonts.fontconfig.defaultFonts = {
monospace = [ "Roboto Mono" ];
- sansSerif = [ "Open Sans" ];
+ sansSerif = [ "Inter" ];
};
})
@@ -283,6 +283,7 @@ in
elementary-music
elementary-photos
elementary-screenshot
+ elementary-tasks
elementary-terminal
elementary-videos
epiphany
@@ -295,9 +296,10 @@ in
})
(mkIf serviceCfg.contractor.enable {
- environment.systemPackages = with pkgs.pantheon; [
+ environment.systemPackages = with pkgs.pantheon; [
contractor
- extra-elementary-contracts
+ file-roller-contract
+ gnome-bluetooth-contract
];
environment.pathsToLink = [
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.xml b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.xml
index fe0a1c4962..64933349e7 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.xml
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.xml
@@ -105,14 +105,8 @@ switchboard-with-plugs.override {
- AppCenter has been available since 20.03, but it is of little use. This is because there is no functioning PackageKit backend for Nix 2.0. Starting from 21.11, the Flatpak backend should work so you can install some Flatpak applications using it. See this issue.
+ AppCenter has been available since 20.03, but it is of little use. This is because there is no functioning PackageKit backend for Nix 2.0. The Flatpak backend will not work before flag for Flatpak-only is provided. See this issue.
-
- To use AppCenter on NixOS, add pantheon.appcenter to , enable Flatpak support and optionally add the appcenter Flatpak remote:
-
-
-$ flatpak remote-add --if-not-exists appcenter https://flatpak.elementary.io/repo.flatpakrepo
-
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
index e8a62ea757..9bacdaa9be 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -4,6 +4,28 @@ let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.plasma5;
+ # Use only for **internal** options.
+ # This is not exactly user-friendly.
+ kdeConfigurationType = with types;
+ let
+ valueTypes = (oneOf [
+ bool
+ float
+ int
+ str
+ ]) // {
+ description = "KDE Configuration value";
+ emptyValue.value = "";
+ };
+ set = (nullOr (lazyAttrsOf valueTypes)) // {
+ description = "KDE Configuration set";
+ emptyValue.value = {};
+ };
+ in (lazyAttrsOf set) // {
+ description = "KDE Configuration file";
+ emptyValue.value = {};
+ };
+
libsForQt5 = pkgs.plasma5Packages;
inherit (libsForQt5) kdeGear kdeFrameworks plasma5;
inherit (pkgs) writeText;
@@ -14,10 +36,6 @@ let
ini = pkgs.formats.ini { };
- pulseaudio = config.hardware.pulseaudio;
- pactl = "${getBin pulseaudio.package}/bin/pactl";
- sed = "${getBin pkgs.gnused}/bin/sed";
-
gtkrc2 = writeText "gtkrc-2.0" ''
# Default GTK+ 2 config for NixOS Plasma 5
include "/run/current-system/sw/share/themes/Breeze/gtk-2.0/gtkrc"
@@ -80,7 +98,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
@@ -101,43 +119,36 @@ let
XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
'';
- startplasma =
- ''
- ${set_XDG_CONFIG_HOME}
- mkdir -p "''${XDG_CONFIG_HOME}"
+ startplasma = ''
+ ${set_XDG_CONFIG_HOME}
+ mkdir -p "''${XDG_CONFIG_HOME}"
+ '' + optionalString config.hardware.pulseaudio.enable ''
+ # Load PulseAudio module for routing support.
+ # See also: http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/
+ ${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
+ '' + ''
+ ${activationScript}
- ''
- + optionalString pulseaudio.enable ''
- # Load PulseAudio module for routing support.
- # See also: http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/
- ${pactl} load-module module-device-manager "do_routing=1"
-
- ''
- + ''
- ${activationScript}
-
- # Create default configurations if Plasma has never been started.
- kdeglobals="''${XDG_CONFIG_HOME}/kdeglobals"
- if ! [ -f "$kdeglobals" ]
- then
- kcminputrc="''${XDG_CONFIG_HOME}/kcminputrc"
- if ! [ -f "$kcminputrc" ]; then
- cat ${kcminputrc} >"$kcminputrc"
- fi
-
- gtkrc2="$HOME/.gtkrc-2.0"
- if ! [ -f "$gtkrc2" ]; then
- cat ${gtkrc2} >"$gtkrc2"
- fi
-
- gtk3_settings="''${XDG_CONFIG_HOME}/gtk-3.0/settings.ini"
- if ! [ -f "$gtk3_settings" ]; then
- mkdir -p "$(dirname "$gtk3_settings")"
- cat ${gtk3_settings} >"$gtk3_settings"
- fi
+ # Create default configurations if Plasma has never been started.
+ kdeglobals="''${XDG_CONFIG_HOME}/kdeglobals"
+ if ! [ -f "$kdeglobals" ]; then
+ kcminputrc="''${XDG_CONFIG_HOME}/kcminputrc"
+ if ! [ -f "$kcminputrc" ]; then
+ cat ${kcminputrc} >"$kcminputrc"
fi
- '';
+ 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
@@ -180,6 +191,37 @@ in
type = types.bool;
default = false;
};
+
+ # Internally allows configuring kdeglobals globally
+ kdeglobals = mkOption {
+ internal = true;
+ default = {};
+ type = kdeConfigurationType;
+ };
+
+ # Internally allows configuring kwin globally
+ kwinrc = mkOption {
+ internal = true;
+ default = {};
+ type = kdeConfigurationType;
+ };
+
+ mobile.enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enable support for running the Plasma Mobile shell.
+ '';
+ };
+
+ mobile.installRecommendedSoftware = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Installs software recommended for use with Plasma Mobile, but which
+ is not strictly required for Plasma Mobile to run.
+ '';
+ };
};
imports = [
@@ -188,41 +230,28 @@ in
];
config = mkMerge [
- (mkIf cfg.enable {
-
- # Seed our configuration into nixos-generate-config
- system.nixos-generate-config.desktopConfiguration = [
- ''
- # Enable the Plasma 5 Desktop Environment.
- services.xserver.displayManager.sddm.enable = true;
- services.xserver.desktopManager.plasma5.enable = true;
- ''
- ];
-
- services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-workspace ];
+ # Common Plasma dependencies
+ (mkIf (cfg.enable || cfg.mobile.enable) {
security.wrappers = {
- 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";
- };
+ 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
@@ -288,37 +317,24 @@ in
kdeplasma-addons
kgamma5
khotkeys
- kinfocenter
- kmenuedit
kscreen
kscreenlocker
- ksystemstats
kwayland
kwin
kwrited
libkscreen
libksysguard
milou
- plasma-systemmonitor
plasma-browser-integration
plasma-integration
polkit-kde-agent
- spectacle
- systemsettings
plasma-desktop
plasma-workspace
plasma-workspace-wallpapers
- dolphin
- dolphin-plugins
- ffmpegthumbs
- kdegraphics-thumbnailers
- khelpcenter
- kio-extras
konsole
oxygen
- print-manager
breeze-icons
pkgs.hicolor-icon-theme
@@ -329,10 +345,6 @@ in
qtvirtualkeyboard
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
-
- elisa
- gwenview
- okular
]
# Phonon audio backend
@@ -372,9 +384,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
@@ -403,7 +418,67 @@ in
serviceConfig.Type = "oneshot";
script = activationScript;
};
+ };
+ xdg.portal.enable = true;
+ xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
+
+ # Update the start menu for each user that is currently logged in
+ system.userActivationScripts.plasmaSetup = activationScript;
+ services.xserver.displayManager.setupCommands = startplasma;
+
+ nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
+
+ environment.etc = {
+ "xdg/kwinrc".text = lib.generators.toINI {} cfg.kwinrc;
+ "xdg/kdeglobals".text = lib.generators.toINI {} cfg.kdeglobals;
+ };
+ })
+
+ # Plasma Desktop
+ (mkIf cfg.enable {
+
+ # Seed our configuration into nixos-generate-config
+ system.nixos-generate-config.desktopConfiguration = [
+ ''
+ # Enable the Plasma 5 Desktop Environment.
+ services.xserver.displayManager.sddm.enable = true;
+ services.xserver.desktopManager.plasma5.enable = true;
+ ''
+ ];
+
+ services.xserver.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";
+
+ environment.systemPackages =
+ with libsForQt5;
+ with plasma5; with kdeGear; with kdeFrameworks;
+ [
+ ksystemstats
+ kinfocenter
+ kmenuedit
+ plasma-systemmonitor
+ spectacle
+ systemsettings
+
+ dolphin
+ dolphin-plugins
+ ffmpegthumbs
+ kdegraphics-thumbnailers
+ khelpcenter
+ kio-extras
+ print-manager
+
+ elisa
+ gwenview
+ okular
+ ]
+ ;
+
+ systemd.user.services = {
plasma-run-with-systemd = {
description = "Run KDE Plasma via systemd";
wantedBy = [ "basic.target" ];
@@ -416,16 +491,88 @@ in
'';
};
};
+ })
- xdg.portal.enable = true;
- xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
+ # Plasma Mobile
+ (mkIf cfg.mobile.enable {
+ assertions = [
+ {
+ # The user interface breaks without NetworkManager
+ assertion = config.networking.networkmanager.enable;
+ message = "Plasma Mobile requires NetworkManager.";
+ }
+ {
+ # The user interface breaks without bluetooth
+ assertion = config.hardware.bluetooth.enable;
+ message = "Plasma Mobile requires Bluetooth.";
+ }
+ {
+ # The user interface breaks without pulse
+ assertion = config.hardware.pulseaudio.enable;
+ message = "Plasma Mobile requires pulseaudio.";
+ }
+ ];
- # Update the start menu for each user that is currently logged in
- system.userActivationScripts.plasmaSetup = activationScript;
- services.xserver.displayManager.setupCommands = startplasma;
+ environment.systemPackages =
+ with libsForQt5;
+ with plasma5; with kdeApplications; with kdeFrameworks;
+ [
+ # Basic packages without which Plasma Mobile fails to work properly.
+ plasma-phone-components
+ plasma-nano
+ pkgs.maliit-framework
+ pkgs.maliit-keyboard
+ ]
+ ++ lib.optionals (cfg.mobile.installRecommendedSoftware) (with libsForQt5.plasmaMobileGear;[
+ # Additional software made for Plasma Mobile.
+ alligator
+ angelfish
+ audiotube
+ calindori
+ kalk
+ kasts
+ kclock
+ keysmith
+ koko
+ krecorder
+ ktrip
+ kweather
+ plasma-dialer
+ plasma-phonebook
+ plasma-settings
+ spacebar
+ ])
+ ;
- nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
+ # The following services are needed or the UI is broken.
+ hardware.bluetooth.enable = true;
+ hardware.pulseaudio.enable = true;
+ networking.networkmanager.enable = true;
+
+ # Recommendations can be found here:
+ # - https://invent.kde.org/plasma-mobile/plasma-phone-settings/-/tree/master/etc/xdg
+ # This configuration is the minimum required for Plasma Mobile to *work*.
+ services.xserver.desktopManager.plasma5 = {
+ kdeglobals = {
+ KDE = {
+ # This forces a numeric PIN for the lockscreen, which is the
+ # recommendation from upstream.
+ LookAndFeelPackage = lib.mkDefault "org.kde.plasma.phone";
+ };
+ };
+ kwinrc = {
+ Windows = {
+ # Forces windows to be maximized
+ Placement = lib.mkDefault "Maximizing";
+ };
+ "org.kde.kdecoration2" = {
+ # No decorations (title bar)
+ NoPlugin = lib.mkDefault "true";
+ };
+ };
+ };
+
+ services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-phone-components ];
})
];
-
}
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
index d910ac566d..bdc46faa7f 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
@@ -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/third_party/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
index e036c684c8..6f0d645725 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
@@ -83,14 +83,14 @@ in
default = true;
description = ''
Allow GDM to run on Wayland instead of Xserver.
- Note to enable Wayland with Nvidia you need to
- enable the .
+ Note to enable Wayland with Nvidia the
+ must not be disabled.
'';
};
nvidiaWayland = mkOption {
type = types.bool;
- default = false;
+ default = true;
description = ''
Whether to allow wayland to be used with the proprietary
NVidia graphics driver.
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
index 1c9a5f978c..84b75c83ae 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -146,7 +146,7 @@ in
};
background = mkOption {
- type = types.path;
+ type = types.either types.path (types.strMatching "^#[0-9]\{6\}$");
# Manual cannot depend on packages, we are actually setting the default in config below.
defaultText = literalExpression "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
description = ''
@@ -312,7 +312,7 @@ in
};
systemd.tmpfiles.rules = [
- "d /run/lightdm 0711 lightdm lightdm 0"
+ "d /run/lightdm 0711 lightdm lightdm -"
"d /var/cache/lightdm 0711 root lightdm -"
"d /var/lib/lightdm 1770 lightdm lightdm -"
"d /var/lib/lightdm-data 1775 lightdm lightdm -"
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
index 5a4fad9c4c..529a086381 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/services/x11/display-managers/startx.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/startx.nix
index 6cd46cdf96..a48566ae06 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/startx.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/startx.nix
@@ -35,10 +35,7 @@ in
config = mkIf cfg.enable {
services.xserver = {
exportConfiguration = true;
- displayManager.job.execCmd = "";
- displayManager.lightdm.enable = lib.mkForce false;
};
- systemd.services.display-manager.enable = false;
# Other displayManagers log to /dev/null because they're services and put
# Xorg's stdout in the journal
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sx.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sx.nix
index 73d27390a5..e309773643 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sx.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/sx.nix
@@ -26,13 +26,8 @@ in {
environment.systemPackages = [ pkgs.sx ];
services.xserver = {
exportConfiguration = true;
- displayManager = {
- job.execCmd = "";
- lightdm.enable = mkForce false;
- };
logFile = mkDefault null;
};
- systemd.services.display-manager.enable = false;
};
meta.maintainers = with maintainers; [ figsoda ];
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/hardware/libinput.nix b/third_party/nixpkgs/nixos/modules/services/x11/hardware/libinput.nix
index e2fb7d0918..efdb7c61df 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/hardware/libinput.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/hardware/libinput.nix
@@ -13,7 +13,7 @@ let cfg = config.services.xserver.libinput;
example = "/dev/input/event0";
description =
''
- Path for ${deviceType} device. Set to null to apply to any
+ Path for ${deviceType} device. Set to null to apply to any
auto-detected ${deviceType}.
'';
};
@@ -24,8 +24,8 @@ let cfg = config.services.xserver.libinput;
example = "flat";
description =
''
- Sets the pointer acceleration profile to the given profile.
- Permitted values are adaptive, flat.
+ Sets the pointer acceleration profile to the given profile.
+ Permitted values are adaptive, flat.
Not all devices support this option or all profiles.
If a profile is unsupported, the default profile for this is used.
flat: Pointer motion is accelerated by a constant
@@ -38,12 +38,14 @@ let cfg = config.services.xserver.libinput;
accelSpeed = mkOption {
type = types.nullOr types.str;
default = null;
+ example = "-0.5";
description = "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed).";
};
buttonMapping = mkOption {
type = types.nullOr types.str;
default = null;
+ example = "1 6 3 4 5 0 7";
description =
''
Sets the logical button mapping for this device, see XSetPointerMapping(3). The string must
@@ -58,9 +60,10 @@ let cfg = config.services.xserver.libinput;
calibrationMatrix = mkOption {
type = types.nullOr types.str;
default = null;
+ example = "0.5 0 0 0 0.8 0.1 0 0 1";
description =
''
- A string of 9 space-separated floating point numbers. Sets the calibration matrix to the
+ A string of 9 space-separated floating point numbers. Sets the calibration matrix to the
3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi).
'';
};
@@ -68,6 +71,7 @@ let cfg = config.services.xserver.libinput;
clickMethod = mkOption {
type = types.nullOr (types.enum [ "none" "buttonareas" "clickfinger" ]);
default = null;
+ example = "buttonareas";
description =
''
Enables a click method. Permitted values are none,
@@ -166,8 +170,9 @@ let cfg = config.services.xserver.libinput;
transformationMatrix = mkOption {
type = types.nullOr types.str;
default = null;
+ example = "0.5 0 0 0 0.8 0.1 0 0 1";
description = ''
- A string of 9 space-separated floating point numbers. Sets the transformation matrix to
+ A string of 9 space-separated floating point numbers. Sets the transformation matrix to
the 3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi).
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix b/third_party/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
index 6aa0d5f76f..a8f3804613 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -29,7 +29,6 @@ let
} ''
install -D ${xmonadEnv}/share/man/man1/xmonad.1.gz $out/share/man/man1/xmonad.1.gz
makeWrapper ${configured}/bin/xmonad $out/bin/xmonad \
- --set NIX_GHC "${xmonadEnv}/bin/ghc" \
--set XMONAD_XMESSAGE "${pkgs.xorg.xmessage}/bin/xmessage"
'';
@@ -93,6 +92,8 @@ in {
(restart "xmonad" True) instead, which will just restart
xmonad from PATH. This allows e.g. switching to the new xmonad binary
after rebuilding your system with nixos-rebuild.
+ For the same reason, ghc is not added to the environment when this
+ option is set.
If you actually want to run xmonad with a config specified here, but
also be able to recompile and restart it from a copy of that source in
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix b/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix
index cb620f10b1..24d9257344 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix
@@ -588,11 +588,22 @@ in
config = mkIf cfg.enable {
services.xserver.displayManager.lightdm.enable =
- let dmconf = cfg.displayManager;
- default = !(dmconf.gdm.enable
- || dmconf.sddm.enable
- || dmconf.xpra.enable );
- in mkIf (default) true;
+ let dmConf = cfg.displayManager;
+ default = !(dmConf.gdm.enable
+ || dmConf.sddm.enable
+ || dmConf.xpra.enable
+ || dmConf.sx.enable
+ || dmConf.startx.enable);
+ in mkIf (default) (mkDefault true);
+
+ # so that the service won't be enabled when only startx is used
+ systemd.services.display-manager.enable =
+ let dmConf = cfg.displayManager;
+ noDmUsed = !(dmConf.gdm.enable
+ || dmConf.sddm.enable
+ || dmConf.xpra.enable
+ || dmConf.lightdm.enable);
+ in mkIf (noDmUsed) (mkDefault false);
hardware.opengl.enable = mkDefault true;
@@ -702,7 +713,8 @@ in
rm -f /tmp/.X0-lock
'';
- script = "${cfg.displayManager.job.execCmd}";
+ # TODO: move declaring the systemd service to its own mkIf
+ script = mkIf (config.systemd.services.display-manager.enable == true) "${cfg.displayManager.job.execCmd}";
# Stop restarting if the display manager stops (crashes) 2 times
# in one minute. Starting X typically takes 3-4s.
diff --git a/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix b/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix
index 8dbfe393f1..4a32387db8 100644
--- a/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix
+++ b/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix
@@ -150,7 +150,7 @@ in
example = literalExpression ''
{ plasmaSetup = {
text = '''
- ${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5"
+ ''${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5"
''';
deps = [];
};
diff --git a/third_party/nixpkgs/nixos/modules/system/activation/switch-to-configuration.pl b/third_party/nixpkgs/nixos/modules/system/activation/switch-to-configuration.pl
index e105502cf3..053496441d 100644
--- a/third_party/nixpkgs/nixos/modules/system/activation/switch-to-configuration.pl
+++ b/third_party/nixpkgs/nixos/modules/system/activation/switch-to-configuration.pl
@@ -11,6 +11,7 @@ use Cwd 'abs_path';
my $out = "@out@";
+# FIXME: maybe we should use /proc/1/exe to get the current systemd.
my $curSystemd = abs_path("/run/current-system/sw/bin");
# To be robust against interruption, record what units need to be started etc.
@@ -18,16 +19,13 @@ my $startListFile = "/run/nixos/start-list";
my $restartListFile = "/run/nixos/restart-list";
my $reloadListFile = "/run/nixos/reload-list";
-# Parse restart/reload requests by the activation script.
-# Activation scripts may write newline-separated units to this
-# file and switch-to-configuration will handle them. While
-# `stopIfChanged = true` is ignored, switch-to-configuration will
-# handle `restartIfChanged = false` and `reloadIfChanged = true`.
-# This also works for socket-activated units.
+# Parse restart/reload requests by the activation script
my $restartByActivationFile = "/run/nixos/activation-restart-list";
+my $reloadByActivationFile = "/run/nixos/activation-reload-list";
my $dryRestartByActivationFile = "/run/nixos/dry-activation-restart-list";
+my $dryReloadByActivationFile = "/run/nixos/dry-activation-reload-list";
-make_path("/run/nixos", { mode => oct(755) });
+make_path("/run/nixos", { mode => 0755 });
my $action = shift @ARGV;
@@ -149,92 +147,6 @@ sub fingerprintUnit {
return abs_path($s) . (-f "${s}.d/overrides.conf" ? " " . abs_path "${s}.d/overrides.conf" : "");
}
-sub handleModifiedUnit {
- my ($unit, $baseName, $newUnitFile, $activePrev, $unitsToStop, $unitsToStart, $unitsToReload, $unitsToRestart, $unitsToSkip) = @_;
-
- if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target" || $unit =~ /\.slice$/ || $unit =~ /\.path$/) {
- # Do nothing. These cannot be restarted directly.
- # Slices and Paths don't have to be restarted since
- # properties (resource limits and inotify watches)
- # seem to get applied on daemon-reload.
- } elsif ($unit =~ /\.mount$/) {
- # Reload the changed mount unit to force a remount.
- $unitsToReload->{$unit} = 1;
- recordUnit($reloadListFile, $unit);
- } else {
- my $unitInfo = parseUnit($newUnitFile);
- if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
- $unitsToReload->{$unit} = 1;
- recordUnit($reloadListFile, $unit);
- }
- elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") || boolIsTrue($unitInfo->{'X-OnlyManualStart'} // "no")) {
- $unitsToSkip->{$unit} = 1;
- } else {
- # If this unit is socket-activated, then stop it instead
- # of restarting it to make sure the new version of it is
- # socket-activated.
- my $socketActivated = 0;
- if ($unit =~ /\.service$/) {
- my @sockets = split / /, ($unitInfo->{Sockets} // "");
- if (scalar @sockets == 0) {
- @sockets = ("$baseName.socket");
- }
- foreach my $socket (@sockets) {
- if (-e "$out/etc/systemd/system/$socket") {
- $socketActivated = 1;
- $unitsToStop->{$unit} = 1;
- # If the socket was not running previously,
- # start it now.
- if (not defined $activePrev->{$socket}) {
- $unitsToStart->{$socket} = 1;
- }
- }
- }
- }
-
- # Don't do the rest of this for socket-activated units
- # because we handled these above where we stop the unit.
- # Since only services can be socket-activated, the
- # following condition always evaluates to `true` for
- # non-service units.
- if ($socketActivated) {
- return;
- }
-
- # If we are restarting a socket, also stop the corresponding
- # service. This is required because restarting a socket
- # when the service is already activated fails.
- if ($unit =~ /\.socket$/) {
- my $service = $unitInfo->{Service} // "";
- if ($service eq "") {
- $service = "$baseName.service";
- }
- if (defined $activePrev->{$service}) {
- $unitsToStop->{$service} = 1;
- }
- $unitsToRestart->{$unit} = 1;
- recordUnit($restartListFile, $unit);
- } else {
- # Always restart non-services instead of stopping and starting them
- # because it doesn't make sense to stop them with a config from
- # the old evaluation.
- if (!boolIsTrue($unitInfo->{'X-StopIfChanged'} // "yes") || $unit !~ /\.service$/) {
- # This unit should be restarted instead of
- # stopped and started.
- $unitsToRestart->{$unit} = 1;
- recordUnit($restartListFile, $unit);
- } else {
- # We write to a file to ensure that the
- # service gets restarted if we're interrupted.
- $unitsToStart->{$unit} = 1;
- recordUnit($startListFile, $unit);
- $unitsToStop->{$unit} = 1;
- }
- }
- }
- }
-}
-
# Figure out what units need to be stopped, started, restarted or reloaded.
my (%unitsToStop, %unitsToSkip, %unitsToStart, %unitsToRestart, %unitsToReload);
@@ -307,7 +219,65 @@ while (my ($unit, $state) = each %{$activePrev}) {
}
elsif (fingerprintUnit($prevUnitFile) ne fingerprintUnit($newUnitFile)) {
- handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToSkip);
+ if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target") {
+ # Do nothing. These cannot be restarted directly.
+ } elsif ($unit =~ /\.mount$/) {
+ # Reload the changed mount unit to force a remount.
+ $unitsToReload{$unit} = 1;
+ recordUnit($reloadListFile, $unit);
+ } elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/ || $unit =~ /\.slice$/) {
+ # FIXME: do something?
+ } else {
+ my $unitInfo = parseUnit($newUnitFile);
+ if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
+ $unitsToReload{$unit} = 1;
+ recordUnit($reloadListFile, $unit);
+ }
+ elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") || boolIsTrue($unitInfo->{'X-OnlyManualStart'} // "no")) {
+ $unitsToSkip{$unit} = 1;
+ } else {
+ if (!boolIsTrue($unitInfo->{'X-StopIfChanged'} // "yes")) {
+ # This unit should be restarted instead of
+ # stopped and started.
+ $unitsToRestart{$unit} = 1;
+ recordUnit($restartListFile, $unit);
+ } else {
+ # If this unit is socket-activated, then stop the
+ # socket unit(s) as well, and restart the
+ # socket(s) instead of the service.
+ my $socketActivated = 0;
+ if ($unit =~ /\.service$/) {
+ my @sockets = split / /, ($unitInfo->{Sockets} // "");
+ if (scalar @sockets == 0) {
+ @sockets = ("$baseName.socket");
+ }
+ foreach my $socket (@sockets) {
+ if (defined $activePrev->{$socket}) {
+ $unitsToStop{$socket} = 1;
+ # Only restart sockets that actually
+ # exist in new configuration:
+ if (-e "$out/etc/systemd/system/$socket") {
+ $unitsToStart{$socket} = 1;
+ recordUnit($startListFile, $socket);
+ $socketActivated = 1;
+ }
+ }
+ }
+ }
+
+ # If the unit is not socket-activated, record
+ # that this unit needs to be started below.
+ # We write this to a file to ensure that the
+ # service gets restarted if we're interrupted.
+ if (!$socketActivated) {
+ $unitsToStart{$unit} = 1;
+ recordUnit($startListFile, $unit);
+ }
+
+ $unitsToStop{$unit} = 1;
+ }
+ }
+ }
}
}
}
@@ -392,6 +362,8 @@ sub filterUnits {
}
my @unitsToStopFiltered = filterUnits(\%unitsToStop);
+my @unitsToStartFiltered = filterUnits(\%unitsToStart);
+
# Show dry-run actions.
if ($action eq "dry-activate") {
@@ -403,44 +375,21 @@ if ($action eq "dry-activate") {
print STDERR "would activate the configuration...\n";
system("$out/dry-activate", "$out");
- # Handle the activation script requesting the restart or reload of a unit.
- my %unitsToAlsoStop;
- my %unitsToAlsoSkip;
- foreach (split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // "")) {
- my $unit = $_;
- my $baseUnit = $unit;
- my $newUnitFile = "$out/etc/systemd/system/$baseUnit";
+ $unitsToRestart{$_} = 1 foreach
+ split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // "");
- # Detect template instances.
- if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) {
- $baseUnit = "$1\@.$2";
- $newUnitFile = "$out/etc/systemd/system/$baseUnit";
- }
-
- my $baseName = $baseUnit;
- $baseName =~ s/\.[a-z]*$//;
-
- handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToAlsoStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToAlsoSkip);
- }
- unlink($dryRestartByActivationFile);
-
- my @unitsToAlsoStopFiltered = filterUnits(\%unitsToAlsoStop);
- if (scalar(keys %unitsToAlsoStop) > 0) {
- print STDERR "would stop the following units as well: ", join(", ", @unitsToAlsoStopFiltered), "\n"
- if scalar @unitsToAlsoStopFiltered;
- }
-
- print STDERR "would NOT restart the following changed units as well: ", join(", ", sort(keys %unitsToAlsoSkip)), "\n"
- if scalar(keys %unitsToAlsoSkip) > 0;
+ $unitsToReload{$_} = 1 foreach
+ split('\n', read_file($dryReloadByActivationFile, err_mode => 'quiet') // "");
print STDERR "would restart systemd\n" if $restartSystemd;
- print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n"
- if scalar(keys %unitsToReload) > 0;
print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"
if scalar(keys %unitsToRestart) > 0;
- my @unitsToStartFiltered = filterUnits(\%unitsToStart);
print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n"
if scalar @unitsToStartFiltered;
+ print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n"
+ if scalar(keys %unitsToReload) > 0;
+ unlink($dryRestartByActivationFile);
+ unlink($dryReloadByActivationFile);
exit 0;
}
@@ -451,7 +400,7 @@ if (scalar (keys %unitsToStop) > 0) {
print STDERR "stopping the following units: ", join(", ", @unitsToStopFiltered), "\n"
if scalar @unitsToStopFiltered;
# Use current version of systemctl binary before daemon is reexeced.
- system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToStop));
+ system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToStop)); # FIXME: ignore errors?
}
print STDERR "NOT restarting the following changed units: ", join(", ", sort(keys %unitsToSkip)), "\n"
@@ -465,38 +414,12 @@ system("$out/activate", "$out") == 0 or $res = 2;
# Handle the activation script requesting the restart or reload of a unit.
# We can only restart and reload (not stop/start) because the units to be
-# stopped are already stopped before the activation script is run. We do however
-# make an exception for services that are socket-activated and that have to be stopped
-# instead of being restarted.
-my %unitsToAlsoStop;
-my %unitsToAlsoSkip;
-foreach (split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // "")) {
- my $unit = $_;
- my $baseUnit = $unit;
- my $newUnitFile = "$out/etc/systemd/system/$baseUnit";
+# stopped are already stopped before the activation script is run.
+$unitsToRestart{$_} = 1 foreach
+ split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // "");
- # Detect template instances.
- if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) {
- $baseUnit = "$1\@.$2";
- $newUnitFile = "$out/etc/systemd/system/$baseUnit";
- }
-
- my $baseName = $baseUnit;
- $baseName =~ s/\.[a-z]*$//;
-
- handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToAlsoStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToAlsoSkip);
-}
-unlink($restartByActivationFile);
-
-my @unitsToAlsoStopFiltered = filterUnits(\%unitsToAlsoStop);
-if (scalar(keys %unitsToAlsoStop) > 0) {
- print STDERR "stopping the following units as well: ", join(", ", @unitsToAlsoStopFiltered), "\n"
- if scalar @unitsToAlsoStopFiltered;
- system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToAlsoStop));
-}
-
-print STDERR "NOT restarting the following changed units as well: ", join(", ", sort(keys %unitsToAlsoSkip)), "\n"
- if scalar(keys %unitsToAlsoSkip) > 0;
+$unitsToReload{$_} = 1 foreach
+ split('\n', read_file($reloadByActivationFile, err_mode => 'quiet') // "");
# Restart systemd if necessary. Note that this is done using the
# current version of systemd, just in case the new one has trouble
@@ -537,40 +460,14 @@ if (scalar(keys %unitsToReload) > 0) {
print STDERR "reloading the following units: ", join(", ", sort(keys %unitsToReload)), "\n";
system("@systemd@/bin/systemctl", "reload", "--", sort(keys %unitsToReload)) == 0 or $res = 4;
unlink($reloadListFile);
+ unlink($reloadByActivationFile);
}
# Restart changed services (those that have to be restarted rather
# than stopped and started).
if (scalar(keys %unitsToRestart) > 0) {
print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n";
-
- # We split the units to be restarted into sockets and non-sockets.
- # This is because restarting sockets may fail which is not bad by
- # itself but which will prevent changes on the sockets. We usually
- # restart the socket and stop the service before that. Restarting
- # the socket will fail however when the service was re-activated
- # in the meantime. There is no proper way to prevent that from happening.
- my @unitsWithErrorHandling = grep { $_ !~ /\.socket$/ } sort(keys %unitsToRestart);
- my @unitsWithoutErrorHandling = grep { $_ =~ /\.socket$/ } sort(keys %unitsToRestart);
-
- if (scalar(@unitsWithErrorHandling) > 0) {
- system("@systemd@/bin/systemctl", "restart", "--", @unitsWithErrorHandling) == 0 or $res = 4;
- }
- if (scalar(@unitsWithoutErrorHandling) > 0) {
- # Don't print warnings from systemctl
- no warnings 'once';
- open(OLDERR, ">&", \*STDERR);
- close(STDERR);
-
- my $ret = system("@systemd@/bin/systemctl", "restart", "--", @unitsWithoutErrorHandling);
-
- # Print stderr again
- open(STDERR, ">&OLDERR");
-
- if ($ret ne 0) {
- print STDERR "warning: some sockets failed to restart. Please check your journal (journalctl -eb) and act accordingly.\n";
- }
- }
+ system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4;
unlink($restartListFile);
unlink($restartByActivationFile);
}
@@ -581,7 +478,6 @@ if (scalar(keys %unitsToRestart) > 0) {
# that are symlinks to other units. We shouldn't start both at the
# same time because we'll get a "Failed to add path to set" error from
# systemd.
-my @unitsToStartFiltered = filterUnits(\%unitsToStart);
print STDERR "starting the following units: ", join(", ", @unitsToStartFiltered), "\n"
if scalar @unitsToStartFiltered;
system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
@@ -589,7 +485,7 @@ unlink($startListFile);
# Print failed and new units.
-my (@failed, @new);
+my (@failed, @new, @restarting);
my $activeNew = getActiveUnits;
while (my ($unit, $state) = each %{$activeNew}) {
if ($state->{state} eq "failed") {
@@ -605,9 +501,7 @@ while (my ($unit, $state) = each %{$activeNew}) {
push @failed, $unit;
}
}
- # Ignore scopes since they are not managed by this script but rather
- # created and managed by third-party services via the systemd dbus API.
- elsif ($state->{state} ne "failed" && !defined $activePrev->{$unit} && $unit !~ /\.scope$/) {
+ elsif ($state->{state} ne "failed" && !defined $activePrev->{$unit}) {
push @new, $unit;
}
}
diff --git a/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix b/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix
index 68da910d29..58377ea644 100644
--- a/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix
+++ b/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, modules, baseModules, specialArgs, ... }:
+{ config, lib, pkgs, extendModules, noUserModules, ... }:
with lib;
@@ -11,16 +11,10 @@ let
# you can provide an easy way to boot the same configuration
# as you use, but with another kernel
# !!! fix this
- children = mapAttrs (childName: childConfig:
- (import ../../../lib/eval-config.nix {
- inherit lib baseModules specialArgs;
- system = config.nixpkgs.initialSystem;
- modules =
- (optionals childConfig.inheritParentConfig modules)
- ++ [ ./no-clone.nix ]
- ++ [ childConfig.configuration ];
- }).config.system.build.toplevel
- ) config.specialisation;
+ children =
+ mapAttrs
+ (childName: childConfig: childConfig.configuration.system.build.toplevel)
+ config.specialisation;
systemBuilder =
let
@@ -84,13 +78,6 @@ let
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
substituteAll ${./switch-to-configuration.pl} $out/bin/switch-to-configuration
chmod +x $out/bin/switch-to-configuration
- ${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
- if ! output=$($perl/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
- echo "switch-to-configuration syntax is not valid:"
- echo "$output"
- exit 1
- fi
- ''}
echo -n "${toString config.system.extraDependencies}" > $out/extra-dependencies
@@ -176,7 +163,11 @@ in
'';
type = types.attrsOf (types.submodule (
- { ... }: {
+ local@{ ... }: let
+ extend = if local.config.inheritParentConfig
+ then extendModules
+ else noUserModules.extendModules;
+ in {
options.inheritParentConfig = mkOption {
type = types.bool;
default = true;
@@ -185,7 +176,15 @@ in
options.configuration = mkOption {
default = {};
- description = "Arbitrary NixOS configuration options.";
+ description = ''
+ Arbitrary NixOS configuration.
+
+ Anything you can add to a normal NixOS configuration, you can add
+ here, including imports and config values, although nested
+ specialisations will be ignored.
+ '';
+ visible = "shallow";
+ inherit (extend { modules = [ ./no-clone.nix ]; }) type;
};
})
);
@@ -202,6 +201,7 @@ in
system.boot.loader.kernelFile = mkOption {
internal = true;
default = pkgs.stdenv.hostPlatform.linux-kernel.target;
+ defaultText = literalExpression "pkgs.stdenv.hostPlatform.linux-kernel.target";
type = types.str;
description = ''
Name of the kernel file to be passed to the bootloader.
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/binfmt.nix b/third_party/nixpkgs/nixos/modules/system/boot/binfmt.nix
index 2408ecc80d..fdb4d0e4c7 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/binfmt.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/binfmt.nix
@@ -248,6 +248,7 @@ in {
description = ''
List of systems to emulate. Will also configure Nix to
support your new systems.
+ Warning: the builder can execute all emulated systems within the same build, which introduces impurities in the case of cross compilation.
'';
type = types.listOf types.str;
};
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/kernel.nix b/third_party/nixpkgs/nixos/modules/system/boot/kernel.nix
index 4a9da93945..d147155d79 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/kernel.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/kernel.nix
@@ -243,7 +243,7 @@ in
"hid_generic" "hid_lenovo" "hid_apple" "hid_roccat"
"hid_logitech_hidpp" "hid_logitech_dj" "hid_microsoft"
- ] ++ optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
+ ] ++ optionals pkgs.stdenv.hostPlatform.isx86 [
# Misc. x86 keyboard stuff.
"pcips2" "atkbd" "i8042"
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix b/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
index fa8500dd42..8db271f871 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
@@ -99,6 +99,7 @@ in
enable = mkOption {
default = !config.boot.isContainer;
+ defaultText = literalExpression "!config.boot.isContainer";
type = types.bool;
description = ''
Whether to enable the GNU GRUB boot loader.
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl b/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
index 4d8537d4c3..0c93b288fc 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/third_party/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -103,10 +103,10 @@ if (stat($bootPath)->dev != stat("/nix/store")->dev) {
# Discover information about the location of the bootPath
struct(Fs => {
- device => '$',
- type => '$',
- mount => '$',
- });
+ device => '$',
+ type => '$',
+ mount => '$',
+});
sub PathInMount {
my ($path, $mount) = @_;
my @splitMount = split /\//, $mount;
@@ -155,9 +155,9 @@ sub GetFs {
return $bestFs;
}
struct (Grub => {
- path => '$',
- search => '$',
- });
+ path => '$',
+ search => '$',
+});
my $driveid = 1;
sub GrubFs {
my ($dir) = @_;
@@ -254,8 +254,8 @@ if ($grubVersion == 1) {
# $defaultEntry might be "saved", indicating that we want to use the last selected configuration as default.
# Incidentally this is already the correct value for the grub 1 config to achieve this behaviour.
$conf .= "
- default $defaultEntry
- timeout $timeout
+ default $defaultEntry
+ timeout $timeout
";
if ($splashImage) {
copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
@@ -305,7 +305,7 @@ else {
if ($copyKernels == 0) {
$conf .= "
- " . $grubStore->search;
+ " . $grubStore->search;
}
# FIXME: should use grub-mkconfig.
my $defaultEntryText = $defaultEntry;
@@ -313,55 +313,55 @@ else {
$defaultEntryText = "\"\${saved_entry}\"";
}
$conf .= "
- " . $grubBoot->search . "
- if [ -s \$prefix/grubenv ]; then
- load_env
- fi
-
- # ‘grub-reboot’ sets a one-time saved entry, which we process here and
- # then delete.
- if [ \"\${next_entry}\" ]; then
- set default=\"\${next_entry}\"
- set next_entry=
- save_env next_entry
- set timeout=1
- set boot_once=true
- else
- set default=$defaultEntryText
- set timeout=$timeout
- fi
-
- function savedefault {
- if [ -z \"\${boot_once}\"]; then
- saved_entry=\"\${chosen}\"
- save_env saved_entry
+ " . $grubBoot->search . "
+ if [ -s \$prefix/grubenv ]; then
+ load_env
fi
- }
- # Setup the graphics stack for bios and efi systems
- if [ \"\${grub_platform}\" = \"efi\" ]; then
- insmod efi_gop
- insmod efi_uga
- else
- insmod vbe
- fi
+ # ‘grub-reboot’ sets a one-time saved entry, which we process here and
+ # then delete.
+ if [ \"\${next_entry}\" ]; then
+ set default=\"\${next_entry}\"
+ set next_entry=
+ save_env next_entry
+ set timeout=1
+ set boot_once=true
+ else
+ set default=$defaultEntryText
+ set timeout=$timeout
+ fi
+
+ function savedefault {
+ if [ -z \"\${boot_once}\"]; then
+ saved_entry=\"\${chosen}\"
+ save_env saved_entry
+ fi
+ }
+
+ # Setup the graphics stack for bios and efi systems
+ if [ \"\${grub_platform}\" = \"efi\" ]; then
+ insmod efi_gop
+ insmod efi_uga
+ else
+ insmod vbe
+ fi
";
if ($font) {
copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
$conf .= "
- insmod font
- if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
- insmod gfxterm
- if [ \"\${grub_platform}\" = \"efi\" ]; then
- set gfxmode=$gfxmodeEfi
- set gfxpayload=$gfxpayloadEfi
- else
- set gfxmode=$gfxmodeBios
- set gfxpayload=$gfxpayloadBios
- fi
- terminal_output gfxterm
- fi
+ insmod font
+ if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
+ insmod gfxterm
+ if [ \"\${grub_platform}\" = \"efi\" ]; then
+ set gfxmode=$gfxmodeEfi
+ set gfxpayload=$gfxpayloadEfi
+ else
+ set gfxmode=$gfxmodeBios
+ set gfxpayload=$gfxpayloadBios
+ fi
+ terminal_output gfxterm
+ fi
";
}
if ($splashImage) {
@@ -378,14 +378,14 @@ else {
}
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
$conf .= "
- insmod " . substr($suffix, 1) . "
- if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
- set color_normal=white/black
- set color_highlight=black/white
- else
- set menu_color_normal=cyan/blue
- set menu_color_highlight=white/blue
- fi
+ insmod " . substr($suffix, 1) . "
+ if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
+ set color_normal=white/black
+ set color_highlight=black/white
+ else
+ set menu_color_normal=cyan/blue
+ set menu_color_highlight=white/blue
+ fi
";
}
@@ -395,20 +395,20 @@ else {
# Copy theme
rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
$conf .= "
- # Sets theme.
- set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
- export theme
- # Load theme fonts, if any
+ # Sets theme.
+ set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
+ export theme
+ # Load theme fonts, if any
";
find( { wanted => sub {
- if ($_ =~ /\.pf2$/i) {
- $font = File::Spec->abs2rel($File::Find::name, $theme);
- $conf .= "
- loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
- ";
- }
- }, no_chdir => 1 }, $theme );
+ if ($_ =~ /\.pf2$/i) {
+ $font = File::Spec->abs2rel($File::Find::name, $theme);
+ $conf .= "
+ loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
+ ";
+ }
+ }, no_chdir => 1 }, $theme );
}
}
@@ -474,8 +474,8 @@ sub addEntry {
# FIXME: $confName
my $kernelParams =
- "init=" . Cwd::abs_path("$path/init") . " " .
- readFile("$path/kernel-params");
+ "init=" . Cwd::abs_path("$path/init") . " " .
+ readFile("$path/kernel-params");
my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
if ($grubVersion == 1) {
@@ -524,9 +524,9 @@ foreach my $link (@links) {
my $date = strftime("%F", localtime(lstat($link)->mtime));
my $version =
- -e "$link/nixos-version"
- ? readFile("$link/nixos-version")
- : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
+ -e "$link/nixos-version"
+ ? readFile("$link/nixos-version")
+ : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
if ($cfgName) {
$entryName = $cfgName;
@@ -551,8 +551,8 @@ sub addProfile {
sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
my @links = sort
- { nrFromGen($b) <=> nrFromGen($a) }
- (glob "$profile-*-link");
+ { nrFromGen($b) <=> nrFromGen($a) }
+ (glob "$profile-*-link");
my $curEntry = 0;
foreach my $link (@links) {
@@ -563,9 +563,9 @@ sub addProfile {
}
my $date = strftime("%F", localtime(lstat($link)->mtime));
my $version =
- -e "$link/nixos-version"
- ? readFile("$link/nixos-version")
- : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
+ -e "$link/nixos-version"
+ ? readFile("$link/nixos-version")
+ : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
}
@@ -653,13 +653,13 @@ foreach my $fn (glob "$bootPath/kernels/*") {
#
struct(GrubState => {
- name => '$',
- version => '$',
- efi => '$',
- devices => '$',
- efiMountPoint => '$',
- extraGrubInstallArgs => '@',
- });
+ name => '$',
+ version => '$',
+ efi => '$',
+ devices => '$',
+ efiMountPoint => '$',
+ extraGrubInstallArgs => '@',
+});
# If you add something to the state file, only add it to the end
# because it is read line-by-line.
sub readGrubState {
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/third_party/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index c38bef9d6d..e9697b5f0e 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/third_party/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -244,19 +244,27 @@ def main() -> None:
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@"] + flags + ["install"])
else:
# Update bootloader to latest if needed
- systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
+ systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[2]
sdboot_status = subprocess.check_output(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True)
# See status_binaries() in systemd bootctl.c for code which generates this
- m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot (\d+)\)$",
+ m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot ([\d.]+[^)]*)\)$",
sdboot_status, re.IGNORECASE | re.MULTILINE)
+
+ needs_install = False
+
if m is None:
- print("could not find any previously installed systemd-boot")
+ print("could not find any previously installed systemd-boot, installing.")
+ # Let systemd-boot attempt an installation if a previous one wasn't found
+ needs_install = True
else:
- sdboot_version = m.group(2)
- if systemd_version > sdboot_version:
+ sdboot_version = f'({m.group(2)})'
+ if systemd_version != sdboot_version:
print("updating systemd-boot from %s to %s" % (sdboot_version, systemd_version))
- subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
+ needs_install = True
+
+ if needs_install:
+ subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
mkdir_p("@efiSysMountPoint@/efi/nixos")
mkdir_p("@efiSysMountPoint@/loader/entries")
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix b/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix
index 662dfe2db9..2e17bdf6bb 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix
@@ -131,6 +131,7 @@ let
"fou"
"xfrm"
"ifb"
+ "batadv"
])
(assertByteFormat "MTUBytes")
(assertMacAddress "MACAddress")
@@ -381,6 +382,29 @@ let
(assertInt "Table")
(assertMinimum "Table" 0)
];
+
+ sectionBatmanAdvanced = checkUnitConfig "BatmanAdvanced" [
+ (assertOnlyFields [
+ "GatewayMode"
+ "Aggregation"
+ "BridgeLoopAvoidance"
+ "DistributedArpTable"
+ "Fragmentation"
+ "HopPenalty"
+ "OriginatorIntervalSec"
+ "GatewayBandwithDown"
+ "GatewayBandwithUp"
+ "RoutingAlgorithm"
+ ])
+ (assertValueOneOf "GatewayMode" ["off" "client" "server"])
+ (assertValueOneOf "Aggregation" boolValues)
+ (assertValueOneOf "BridgeLoopAvoidance" boolValues)
+ (assertValueOneOf "DistributedArpTable" boolValues)
+ (assertValueOneOf "Fragmentation" boolValues)
+ (assertInt "HopPenalty")
+ (assertRange "HopPenalty" 0 255)
+ (assertValueOneOf "RoutingAlgorithm" ["batman-v" "batman-iv"])
+ ];
};
network = {
@@ -473,6 +497,7 @@ let
"IgnoreCarrierLoss"
"Xfrm"
"KeepConfiguration"
+ "BatmanAdvanced"
])
# Note: For DHCP the values both, none, v4, v6 are deprecated
(assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6"])
@@ -1056,6 +1081,21 @@ let
'';
};
+ batmanAdvancedConfig = mkOption {
+ default = {};
+ example = {
+ GatewayMode = "server";
+ RoutingAlgorithm = "batman-v";
+ };
+ type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBatmanAdvanced;
+ description = ''
+ Each attribute in this set specifies an option in the
+ [BatmanAdvanced] section of the unit. See
+ systemd.netdev
+ 5 for details.
+ '';
+ };
+
};
addressOptions = {
@@ -1507,6 +1547,10 @@ let
[VRF]
${attrsToSection def.vrfConfig}
''
+ + optionalString (def.batmanAdvancedConfig != { }) ''
+ [BatmanAdvanced]
+ ${attrsToSection def.batmanAdvancedConfig}
+ ''
+ def.extraConfig;
};
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/resolved.nix b/third_party/nixpkgs/nixos/modules/system/boot/resolved.nix
index a6fc07da0a..21d3fab2f3 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/resolved.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/resolved.nix
@@ -32,6 +32,7 @@ in
services.resolved.domains = mkOption {
default = config.networking.search;
+ defaultText = literalExpression "config.networking.search";
example = [ "example.com" ];
type = types.listOf types.str;
description = ''
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/stage-2-init.sh b/third_party/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
index 50ee0b8841..afaca2e415 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/system/boot/systemd.nix b/third_party/nixpkgs/nixos/modules/system/boot/systemd.nix
index 77997ac768..6e0ee437d9 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/systemd.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/systemd.nix
@@ -42,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"
@@ -67,6 +67,7 @@ let
"systemd-user-sessions.service"
"dbus-org.freedesktop.import1.service"
"dbus-org.freedesktop.machine1.service"
+ "dbus-org.freedesktop.login1.service"
"user@.service"
"user-runtime-dir@.service"
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/timesyncd.nix b/third_party/nixpkgs/nixos/modules/system/boot/timesyncd.nix
index 692315dbe9..5f35a15476 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/timesyncd.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/timesyncd.nix
@@ -9,6 +9,7 @@ with lib;
services.timesyncd = {
enable = mkOption {
default = !config.boot.isContainer;
+ defaultText = literalExpression "!config.boot.isContainer";
type = types.bool;
description = ''
Enables the systemd NTP client daemon.
@@ -16,6 +17,7 @@ with lib;
};
servers = mkOption {
default = config.networking.timeServers;
+ defaultText = literalExpression "config.networking.timeServers";
type = types.listOf types.str;
description = ''
The set of NTP servers from which to synchronise.
diff --git a/third_party/nixpkgs/nixos/modules/system/etc/etc.nix b/third_party/nixpkgs/nixos/modules/system/etc/etc.nix
index 8f14f04a1f..6cc8c341e6 100644
--- a/third_party/nixpkgs/nixos/modules/system/etc/etc.nix
+++ b/third_party/nixpkgs/nixos/modules/system/etc/etc.nix
@@ -85,7 +85,7 @@ in
'';
type = with types; attrsOf (submodule (
- { name, config, ... }:
+ { name, config, options, ... }:
{ options = {
enable = mkOption {
@@ -172,7 +172,8 @@ in
target = mkDefault name;
source = mkIf (config.text != null) (
let name' = "etc-" + baseNameOf name;
- in mkDefault (pkgs.writeText name' config.text));
+ in mkDerivedConfig options.text (pkgs.writeText name')
+ );
};
}));
diff --git a/third_party/nixpkgs/nixos/modules/system/etc/setup-etc.pl b/third_party/nixpkgs/nixos/modules/system/etc/setup-etc.pl
index eed2006508..be6b2d9ae7 100644
--- a/third_party/nixpkgs/nixos/modules/system/etc/setup-etc.pl
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix b/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
index b19b688a1f..b931b27ad8 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
@@ -139,6 +139,7 @@ in {
gzip
gitMinimal
config.nix.package.out
+ config.programs.ssh.package
];
script = let
diff --git a/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 2c03ef7ba7..65364801c3 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
index 4e20ec1184..49901cda84 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
@@ -417,7 +417,11 @@ in
network node hostname (uname --nodename) the option
boot.kernel.sysctl."kernel.hostname" can be used as a workaround (but
the 64 character limit still applies).
+
+ WARNING: Do not use underscores (_) or you may run into unexpected issues.
'';
+ # warning until the issues in https://github.com/NixOS/nixpkgs/pull/138978
+ # are resolved
};
networking.fqdn = mkOption {
@@ -1233,6 +1237,8 @@ in
"net.ipv4.conf.all.forwarding" = mkDefault (any (i: i.proxyARP) interfaces);
"net.ipv6.conf.all.disable_ipv6" = mkDefault (!cfg.enableIPv6);
"net.ipv6.conf.default.disable_ipv6" = mkDefault (!cfg.enableIPv6);
+ # networkmanager falls back to "/proc/sys/net/ipv6/conf/default/use_tempaddr"
+ "net.ipv6.conf.default.use_tempaddr" = tempaddrValues.${cfg.tempAddresses}.sysctl;
} // listToAttrs (flip concatMap (filter (i: i.proxyARP) interfaces)
(i: [(nameValuePair "net.ipv4.conf.${replaceChars ["."] ["/"] i.name}.proxy_arp" true)]))
// listToAttrs (forEach interfaces
diff --git a/third_party/nixpkgs/nixos/modules/tasks/snapraid.nix b/third_party/nixpkgs/nixos/modules/tasks/snapraid.nix
index 4529009930..ff956f3067 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/snapraid.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/snapraid.nix
@@ -193,7 +193,6 @@ in
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
- PrivateDevices = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
@@ -208,7 +207,8 @@ in
SystemCallArchitectures = "native";
SystemCallFilter = "@system-service";
SystemCallErrorNumber = "EPERM";
- CapabilityBoundingSet = "CAP_DAC_OVERRIDE";
+ CapabilityBoundingSet = "CAP_DAC_OVERRIDE" ++
+ lib.optionalString cfg.touchBeforeSync " CAP_FOWNER";
ProtectSystem = "strict";
ProtectHome = "read-only";
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix b/third_party/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix
new file mode 100644
index 0000000000..91b5237e33
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix
@@ -0,0 +1,444 @@
+let self = {
+ "14.04".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-71c6f470";
+ "14.04".ap-northeast-1.x86_64-linux.pv-ebs = "ami-4dcbf84c";
+ "14.04".ap-northeast-1.x86_64-linux.pv-s3 = "ami-8fc4f68e";
+ "14.04".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-da280888";
+ "14.04".ap-southeast-1.x86_64-linux.pv-ebs = "ami-7a9dbc28";
+ "14.04".ap-southeast-1.x86_64-linux.pv-s3 = "ami-c4290996";
+ "14.04".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-ab523e91";
+ "14.04".ap-southeast-2.x86_64-linux.pv-ebs = "ami-6769055d";
+ "14.04".ap-southeast-2.x86_64-linux.pv-s3 = "ami-15533f2f";
+ "14.04".eu-central-1.x86_64-linux.hvm-ebs = "ami-ba0234a7";
+ "14.04".eu-west-1.x86_64-linux.hvm-ebs = "ami-96cb63e1";
+ "14.04".eu-west-1.x86_64-linux.pv-ebs = "ami-b48c25c3";
+ "14.04".eu-west-1.x86_64-linux.pv-s3 = "ami-06cd6571";
+ "14.04".sa-east-1.x86_64-linux.hvm-ebs = "ami-01b90e1c";
+ "14.04".sa-east-1.x86_64-linux.pv-ebs = "ami-69e35474";
+ "14.04".sa-east-1.x86_64-linux.pv-s3 = "ami-61b90e7c";
+ "14.04".us-east-1.x86_64-linux.hvm-ebs = "ami-58ba3a30";
+ "14.04".us-east-1.x86_64-linux.pv-ebs = "ami-9e0583f6";
+ "14.04".us-east-1.x86_64-linux.pv-s3 = "ami-9cbe3ef4";
+ "14.04".us-west-1.x86_64-linux.hvm-ebs = "ami-0bc3d74e";
+ "14.04".us-west-1.x86_64-linux.pv-ebs = "ami-8b1703ce";
+ "14.04".us-west-1.x86_64-linux.pv-s3 = "ami-27ccd862";
+ "14.04".us-west-2.x86_64-linux.hvm-ebs = "ami-3bf1bf0b";
+ "14.04".us-west-2.x86_64-linux.pv-ebs = "ami-259bd515";
+ "14.04".us-west-2.x86_64-linux.pv-s3 = "ami-07094037";
+
+ "14.12".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-24435f25";
+ "14.12".ap-northeast-1.x86_64-linux.pv-ebs = "ami-b0425eb1";
+ "14.12".ap-northeast-1.x86_64-linux.pv-s3 = "ami-fed3c6ff";
+ "14.12".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-6c765d3e";
+ "14.12".ap-southeast-1.x86_64-linux.pv-ebs = "ami-6a765d38";
+ "14.12".ap-southeast-1.x86_64-linux.pv-s3 = "ami-d1bf9183";
+ "14.12".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-af86f395";
+ "14.12".ap-southeast-2.x86_64-linux.pv-ebs = "ami-b386f389";
+ "14.12".ap-southeast-2.x86_64-linux.pv-s3 = "ami-69c5ae53";
+ "14.12".eu-central-1.x86_64-linux.hvm-ebs = "ami-4a497a57";
+ "14.12".eu-central-1.x86_64-linux.pv-ebs = "ami-4c497a51";
+ "14.12".eu-central-1.x86_64-linux.pv-s3 = "ami-60f2c27d";
+ "14.12".eu-west-1.x86_64-linux.hvm-ebs = "ami-d126a5a6";
+ "14.12".eu-west-1.x86_64-linux.pv-ebs = "ami-0126a576";
+ "14.12".eu-west-1.x86_64-linux.pv-s3 = "ami-deda5fa9";
+ "14.12".sa-east-1.x86_64-linux.hvm-ebs = "ami-2d239e30";
+ "14.12".sa-east-1.x86_64-linux.pv-ebs = "ami-35239e28";
+ "14.12".sa-east-1.x86_64-linux.pv-s3 = "ami-81e3519c";
+ "14.12".us-east-1.x86_64-linux.hvm-ebs = "ami-0c463a64";
+ "14.12".us-east-1.x86_64-linux.pv-ebs = "ami-ac473bc4";
+ "14.12".us-east-1.x86_64-linux.pv-s3 = "ami-00e18a68";
+ "14.12".us-west-1.x86_64-linux.hvm-ebs = "ami-ca534a8f";
+ "14.12".us-west-1.x86_64-linux.pv-ebs = "ami-3e534a7b";
+ "14.12".us-west-1.x86_64-linux.pv-s3 = "ami-2905196c";
+ "14.12".us-west-2.x86_64-linux.hvm-ebs = "ami-fb9dc3cb";
+ "14.12".us-west-2.x86_64-linux.pv-ebs = "ami-899dc3b9";
+ "14.12".us-west-2.x86_64-linux.pv-s3 = "ami-cb7f2dfb";
+
+ "15.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-58cac236";
+ "15.09".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-39c8c057";
+ "15.09".ap-northeast-1.x86_64-linux.pv-ebs = "ami-5ac9c134";
+ "15.09".ap-northeast-1.x86_64-linux.pv-s3 = "ami-03cec66d";
+ "15.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-2fc2094c";
+ "15.09".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-9ec308fd";
+ "15.09".ap-southeast-1.x86_64-linux.pv-ebs = "ami-95c00bf6";
+ "15.09".ap-southeast-1.x86_64-linux.pv-s3 = "ami-bfc00bdc";
+ "15.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-996c4cfa";
+ "15.09".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-3f6e4e5c";
+ "15.09".ap-southeast-2.x86_64-linux.pv-ebs = "ami-066d4d65";
+ "15.09".ap-southeast-2.x86_64-linux.pv-s3 = "ami-cc6e4eaf";
+ "15.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-3f8c6b50";
+ "15.09".eu-central-1.x86_64-linux.hvm-s3 = "ami-5b836434";
+ "15.09".eu-central-1.x86_64-linux.pv-ebs = "ami-118c6b7e";
+ "15.09".eu-central-1.x86_64-linux.pv-s3 = "ami-2c977043";
+ "15.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-9cf04aef";
+ "15.09".eu-west-1.x86_64-linux.hvm-s3 = "ami-2bea5058";
+ "15.09".eu-west-1.x86_64-linux.pv-ebs = "ami-c9e852ba";
+ "15.09".eu-west-1.x86_64-linux.pv-s3 = "ami-c6f64cb5";
+ "15.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-6e52df02";
+ "15.09".sa-east-1.x86_64-linux.hvm-s3 = "ami-1852df74";
+ "15.09".sa-east-1.x86_64-linux.pv-ebs = "ami-4368e52f";
+ "15.09".sa-east-1.x86_64-linux.pv-s3 = "ami-f15ad79d";
+ "15.09".us-east-1.x86_64-linux.hvm-ebs = "ami-84a6a0ee";
+ "15.09".us-east-1.x86_64-linux.hvm-s3 = "ami-06a7a16c";
+ "15.09".us-east-1.x86_64-linux.pv-ebs = "ami-a4a1a7ce";
+ "15.09".us-east-1.x86_64-linux.pv-s3 = "ami-5ba8ae31";
+ "15.09".us-west-1.x86_64-linux.hvm-ebs = "ami-22c8bb42";
+ "15.09".us-west-1.x86_64-linux.hvm-s3 = "ami-a2ccbfc2";
+ "15.09".us-west-1.x86_64-linux.pv-ebs = "ami-10cebd70";
+ "15.09".us-west-1.x86_64-linux.pv-s3 = "ami-fa30429a";
+ "15.09".us-west-2.x86_64-linux.hvm-ebs = "ami-ce57b9ae";
+ "15.09".us-west-2.x86_64-linux.hvm-s3 = "ami-2956b849";
+ "15.09".us-west-2.x86_64-linux.pv-ebs = "ami-005fb160";
+ "15.09".us-west-2.x86_64-linux.pv-s3 = "ami-cd55bbad";
+
+ "16.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-40619d21";
+ "16.03".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-ce629eaf";
+ "16.03".ap-northeast-1.x86_64-linux.pv-ebs = "ami-ef639f8e";
+ "16.03".ap-northeast-1.x86_64-linux.pv-s3 = "ami-a1609cc0";
+ "16.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-deca00b0";
+ "16.03".ap-northeast-2.x86_64-linux.hvm-s3 = "ami-a3b77dcd";
+ "16.03".ap-northeast-2.x86_64-linux.pv-ebs = "ami-7bcb0115";
+ "16.03".ap-northeast-2.x86_64-linux.pv-s3 = "ami-a2b77dcc";
+ "16.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-0dff9562";
+ "16.03".ap-south-1.x86_64-linux.hvm-s3 = "ami-13f69c7c";
+ "16.03".ap-south-1.x86_64-linux.pv-ebs = "ami-0ef39961";
+ "16.03".ap-south-1.x86_64-linux.pv-s3 = "ami-e0c8a28f";
+ "16.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-5e964a3d";
+ "16.03".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-4d964a2e";
+ "16.03".ap-southeast-1.x86_64-linux.pv-ebs = "ami-ec9b478f";
+ "16.03".ap-southeast-1.x86_64-linux.pv-s3 = "ami-999b47fa";
+ "16.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-9f7359fc";
+ "16.03".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-987359fb";
+ "16.03".ap-southeast-2.x86_64-linux.pv-ebs = "ami-a2705ac1";
+ "16.03".ap-southeast-2.x86_64-linux.pv-s3 = "ami-a3705ac0";
+ "16.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-17a45178";
+ "16.03".eu-central-1.x86_64-linux.hvm-s3 = "ami-f9a55096";
+ "16.03".eu-central-1.x86_64-linux.pv-ebs = "ami-c8a550a7";
+ "16.03".eu-central-1.x86_64-linux.pv-s3 = "ami-6ea45101";
+ "16.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-b5b3d5c6";
+ "16.03".eu-west-1.x86_64-linux.hvm-s3 = "ami-c986e0ba";
+ "16.03".eu-west-1.x86_64-linux.pv-ebs = "ami-b083e5c3";
+ "16.03".eu-west-1.x86_64-linux.pv-s3 = "ami-3c83e54f";
+ "16.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-f6eb7f9a";
+ "16.03".sa-east-1.x86_64-linux.hvm-s3 = "ami-93e773ff";
+ "16.03".sa-east-1.x86_64-linux.pv-ebs = "ami-cbb82ca7";
+ "16.03".sa-east-1.x86_64-linux.pv-s3 = "ami-abb82cc7";
+ "16.03".us-east-1.x86_64-linux.hvm-ebs = "ami-c123a3d6";
+ "16.03".us-east-1.x86_64-linux.hvm-s3 = "ami-bc25a5ab";
+ "16.03".us-east-1.x86_64-linux.pv-ebs = "ami-bd25a5aa";
+ "16.03".us-east-1.x86_64-linux.pv-s3 = "ami-a325a5b4";
+ "16.03".us-west-1.x86_64-linux.hvm-ebs = "ami-748bcd14";
+ "16.03".us-west-1.x86_64-linux.hvm-s3 = "ami-a68dcbc6";
+ "16.03".us-west-1.x86_64-linux.pv-ebs = "ami-048acc64";
+ "16.03".us-west-1.x86_64-linux.pv-s3 = "ami-208dcb40";
+ "16.03".us-west-2.x86_64-linux.hvm-ebs = "ami-8263a0e2";
+ "16.03".us-west-2.x86_64-linux.hvm-s3 = "ami-925c9ff2";
+ "16.03".us-west-2.x86_64-linux.pv-ebs = "ami-5e61a23e";
+ "16.03".us-west-2.x86_64-linux.pv-s3 = "ami-734c8f13";
+
+ # 16.09.1508.3909827
+ "16.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-68453b0f";
+ "16.09".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-f9bec09e";
+ "16.09".ap-northeast-1.x86_64-linux.pv-ebs = "ami-254a3442";
+ "16.09".ap-northeast-1.x86_64-linux.pv-s3 = "ami-ef473988";
+ "16.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-18ae7f76";
+ "16.09".ap-northeast-2.x86_64-linux.hvm-s3 = "ami-9eac7df0";
+ "16.09".ap-northeast-2.x86_64-linux.pv-ebs = "ami-57aa7b39";
+ "16.09".ap-northeast-2.x86_64-linux.pv-s3 = "ami-5cae7f32";
+ "16.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-b3f98fdc";
+ "16.09".ap-south-1.x86_64-linux.hvm-s3 = "ami-98e690f7";
+ "16.09".ap-south-1.x86_64-linux.pv-ebs = "ami-aef98fc1";
+ "16.09".ap-south-1.x86_64-linux.pv-s3 = "ami-caf88ea5";
+ "16.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-80fb51e3";
+ "16.09".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-2df3594e";
+ "16.09".ap-southeast-1.x86_64-linux.pv-ebs = "ami-37f05a54";
+ "16.09".ap-southeast-1.x86_64-linux.pv-s3 = "ami-27f35944";
+ "16.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-57ece834";
+ "16.09".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-87f4f0e4";
+ "16.09".ap-southeast-2.x86_64-linux.pv-ebs = "ami-d8ede9bb";
+ "16.09".ap-southeast-2.x86_64-linux.pv-s3 = "ami-a6ebefc5";
+ "16.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-9f863bfb";
+ "16.09".ca-central-1.x86_64-linux.hvm-s3 = "ami-ea85388e";
+ "16.09".ca-central-1.x86_64-linux.pv-ebs = "ami-ce8a37aa";
+ "16.09".ca-central-1.x86_64-linux.pv-s3 = "ami-448a3720";
+ "16.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-1b884774";
+ "16.09".eu-central-1.x86_64-linux.hvm-s3 = "ami-b08c43df";
+ "16.09".eu-central-1.x86_64-linux.pv-ebs = "ami-888946e7";
+ "16.09".eu-central-1.x86_64-linux.pv-s3 = "ami-06874869";
+ "16.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-1ed3e76d";
+ "16.09".eu-west-1.x86_64-linux.hvm-s3 = "ami-73d1e500";
+ "16.09".eu-west-1.x86_64-linux.pv-ebs = "ami-44c0f437";
+ "16.09".eu-west-1.x86_64-linux.pv-s3 = "ami-f3d8ec80";
+ "16.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-2c9c9648";
+ "16.09".eu-west-2.x86_64-linux.hvm-s3 = "ami-6b9e940f";
+ "16.09".eu-west-2.x86_64-linux.pv-ebs = "ami-f1999395";
+ "16.09".eu-west-2.x86_64-linux.pv-s3 = "ami-bb9f95df";
+ "16.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-a11882cd";
+ "16.09".sa-east-1.x86_64-linux.hvm-s3 = "ami-7726bc1b";
+ "16.09".sa-east-1.x86_64-linux.pv-ebs = "ami-9725bffb";
+ "16.09".sa-east-1.x86_64-linux.pv-s3 = "ami-b027bddc";
+ "16.09".us-east-1.x86_64-linux.hvm-ebs = "ami-854ca593";
+ "16.09".us-east-1.x86_64-linux.hvm-s3 = "ami-2241a834";
+ "16.09".us-east-1.x86_64-linux.pv-ebs = "ami-a441a8b2";
+ "16.09".us-east-1.x86_64-linux.pv-s3 = "ami-e841a8fe";
+ "16.09".us-east-2.x86_64-linux.hvm-ebs = "ami-3f41645a";
+ "16.09".us-east-2.x86_64-linux.hvm-s3 = "ami-804065e5";
+ "16.09".us-east-2.x86_64-linux.pv-ebs = "ami-f1466394";
+ "16.09".us-east-2.x86_64-linux.pv-s3 = "ami-05426760";
+ "16.09".us-west-1.x86_64-linux.hvm-ebs = "ami-c2efbca2";
+ "16.09".us-west-1.x86_64-linux.hvm-s3 = "ami-d71042b7";
+ "16.09".us-west-1.x86_64-linux.pv-ebs = "ami-04e8bb64";
+ "16.09".us-west-1.x86_64-linux.pv-s3 = "ami-31e9ba51";
+ "16.09".us-west-2.x86_64-linux.hvm-ebs = "ami-6449f504";
+ "16.09".us-west-2.x86_64-linux.hvm-s3 = "ami-344af654";
+ "16.09".us-west-2.x86_64-linux.pv-ebs = "ami-6d4af60d";
+ "16.09".us-west-2.x86_64-linux.pv-s3 = "ami-de48f4be";
+
+ # 17.03.885.6024dd4067
+ "17.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-dbd0f7bc";
+ "17.03".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-7cdff81b";
+ "17.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-c59a48ab";
+ "17.03".ap-northeast-2.x86_64-linux.hvm-s3 = "ami-0b944665";
+ "17.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-4f413220";
+ "17.03".ap-south-1.x86_64-linux.hvm-s3 = "ami-864033e9";
+ "17.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-e08c3383";
+ "17.03".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-c28f30a1";
+ "17.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-fca9a69f";
+ "17.03".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-3daaa55e";
+ "17.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-9b00bdff";
+ "17.03".ca-central-1.x86_64-linux.hvm-s3 = "ami-e800bd8c";
+ "17.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-5450803b";
+ "17.03".eu-central-1.x86_64-linux.hvm-s3 = "ami-6e2efe01";
+ "17.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-10754c76";
+ "17.03".eu-west-1.x86_64-linux.hvm-s3 = "ami-11734a77";
+ "17.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-ff1d099b";
+ "17.03".eu-west-2.x86_64-linux.hvm-s3 = "ami-fe1d099a";
+ "17.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-d95d3eb5";
+ "17.03".sa-east-1.x86_64-linux.hvm-s3 = "ami-fca2c190";
+ "17.03".us-east-1.x86_64-linux.hvm-ebs = "ami-0940c61f";
+ "17.03".us-east-1.x86_64-linux.hvm-s3 = "ami-674fc971";
+ "17.03".us-east-2.x86_64-linux.hvm-ebs = "ami-afc2e6ca";
+ "17.03".us-east-2.x86_64-linux.hvm-s3 = "ami-a1cde9c4";
+ "17.03".us-west-1.x86_64-linux.hvm-ebs = "ami-587b2138";
+ "17.03".us-west-1.x86_64-linux.hvm-s3 = "ami-70411b10";
+ "17.03".us-west-2.x86_64-linux.hvm-ebs = "ami-a93daac9";
+ "17.03".us-west-2.x86_64-linux.hvm-s3 = "ami-5139ae31";
+
+ # 17.09.2681.59661f21be6
+ "17.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-a30192da";
+ "17.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-295a414d";
+ "17.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-8c0eb9f1";
+ "17.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-266cfe49";
+ "17.09".us-east-1.x86_64-linux.hvm-ebs = "ami-40bee63a";
+ "17.09".us-east-2.x86_64-linux.hvm-ebs = "ami-9d84aff8";
+ "17.09".us-west-1.x86_64-linux.hvm-ebs = "ami-d14142b1";
+ "17.09".us-west-2.x86_64-linux.hvm-ebs = "ami-3eb40346";
+ "17.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-ca8207ae";
+ "17.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-84bccff8";
+ "17.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0dc5386f";
+ "17.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-89b921ef";
+ "17.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-179b3b79";
+ "17.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-4762202b";
+ "17.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-4e376021";
+
+ # 18.03.132946.1caae7247b8
+ "18.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-065c46ec";
+ "18.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-64f31903";
+ "18.03".eu-west-3.x86_64-linux.hvm-ebs = "ami-5a8d3d27";
+ "18.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-09faf9e2";
+ "18.03".us-east-1.x86_64-linux.hvm-ebs = "ami-8b3538f4";
+ "18.03".us-east-2.x86_64-linux.hvm-ebs = "ami-150b3170";
+ "18.03".us-west-1.x86_64-linux.hvm-ebs = "ami-ce06ebad";
+ "18.03".us-west-2.x86_64-linux.hvm-ebs = "ami-586c3520";
+ "18.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-aca72ac8";
+ "18.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-aa0b4d40";
+ "18.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-d0f254b2";
+ "18.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-456511a8";
+ "18.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-3366d15d";
+ "18.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-163e1f7a";
+ "18.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-6a390b05";
+
+ # 18.09.910.c15e342304a
+ "18.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-0f412186fb8a0ec97";
+ "18.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-0dada3805ce43c55e";
+ "18.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-074df85565f2e02e2";
+ "18.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-07c9b884e679df4f8";
+ "18.09".us-east-1.x86_64-linux.hvm-ebs = "ami-009c9c3f1af480ff3";
+ "18.09".us-east-2.x86_64-linux.hvm-ebs = "ami-08199961085ea8bc6";
+ "18.09".us-west-1.x86_64-linux.hvm-ebs = "ami-07aa7f56d612ddd38";
+ "18.09".us-west-2.x86_64-linux.hvm-ebs = "ami-01c84b7c368ac24d1";
+ "18.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-04f66113f76198f6c";
+ "18.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0892c7e24ebf2194f";
+ "18.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-010730f36424b0a2c";
+ "18.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-0cdba8e998f076547";
+ "18.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0400a698e6a9f4a15";
+ "18.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-0e4a8a47fd6db6112";
+ "18.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-0880a678d3f555313";
+
+ # 19.03.172286.8ea36d73256
+ "19.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-0fe40176548ff0940";
+ "19.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-03a40fd3a02fe95ba";
+ "19.03".eu-west-3.x86_64-linux.hvm-ebs = "ami-0436f9da0f20a638e";
+ "19.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-0022b8ea9efde5de4";
+ "19.03".us-east-1.x86_64-linux.hvm-ebs = "ami-0efc58fb70ae9a217";
+ "19.03".us-east-2.x86_64-linux.hvm-ebs = "ami-0abf711b1b34da1af";
+ "19.03".us-west-1.x86_64-linux.hvm-ebs = "ami-07d126e8838c40ec5";
+ "19.03".us-west-2.x86_64-linux.hvm-ebs = "ami-03f8a737546e47fb0";
+ "19.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-03f9fd0ef2e035ede";
+ "19.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0cff66114c652c262";
+ "19.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-054c73a7f8d773ea9";
+ "19.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-00db62688900456a4";
+ "19.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0485cdd1a5fdd2117";
+ "19.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-0c6a43c6e0ad1f4e2";
+ "19.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-0303deb1b5890f878";
+
+ # 19.09.2243.84af403f54f
+ "19.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-071082f0fa035374f";
+ "19.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-0d9dc33c54d1dc4c3";
+ "19.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-09566799591d1bfed";
+ "19.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-015f8efc2be419b79";
+ "19.09".eu-north-1.x86_64-linux.hvm-ebs = "ami-07fc0a32d885e01ed";
+ "19.09".us-east-1.x86_64-linux.hvm-ebs = "ami-03330d8b51287412f";
+ "19.09".us-east-2.x86_64-linux.hvm-ebs = "ami-0518b4c84972e967f";
+ "19.09".us-west-1.x86_64-linux.hvm-ebs = "ami-06ad07e61a353b4a6";
+ "19.09".us-west-2.x86_64-linux.hvm-ebs = "ami-0e31e30925cf3ce4e";
+ "19.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-07df50fc76702a36d";
+ "19.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0f71ae5d4b0b78d95";
+ "19.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-057bbf2b4bd62d210";
+ "19.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-02a62555ca182fb5b";
+ "19.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0219dde0e6b7b7b93";
+ "19.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-066f7f2a895c821a1";
+ "19.09".ap-east-1.x86_64-linux.hvm-ebs = "ami-055b2348db2827ff1";
+ "19.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-018aab68377227e06";
+
+ # 20.03.1554.94e39623a49
+ "20.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-02c34db5766cc7013";
+ "20.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-0e32bd8c7853883f1";
+ "20.03".eu-west-3.x86_64-linux.hvm-ebs = "ami-061edb1356c1d69fd";
+ "20.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-0a1a94722dcbff94c";
+ "20.03".eu-north-1.x86_64-linux.hvm-ebs = "ami-02699abfacbb6464b";
+ "20.03".us-east-1.x86_64-linux.hvm-ebs = "ami-0c5e7760748b74e85";
+ "20.03".us-east-2.x86_64-linux.hvm-ebs = "ami-030296bb256764655";
+ "20.03".us-west-1.x86_64-linux.hvm-ebs = "ami-050be818e0266b741";
+ "20.03".us-west-2.x86_64-linux.hvm-ebs = "ami-06562f78dca68eda2";
+ "20.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-02365684a173255c7";
+ "20.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0dbf353e168d155f7";
+ "20.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-04c0f3a75f63daddd";
+ "20.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-093d9cc49c191eb6c";
+ "20.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0087df91a7b6ebd45";
+ "20.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-0a1a6b569af04af9d";
+ "20.03".ap-east-1.x86_64-linux.hvm-ebs = "ami-0d18fdd309cdefa86";
+ "20.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-09859378158ae971d";
+ # 20.03.2351.f8248ab6d9e-aarch64-linux
+ "20.03".eu-west-1.aarch64-linux.hvm-ebs = "ami-0a4c46dfdfe921aab";
+ "20.03".eu-west-2.aarch64-linux.hvm-ebs = "ami-0b47871912b7d36f9";
+ "20.03".eu-west-3.aarch64-linux.hvm-ebs = "ami-01031e1aa505b8935";
+ "20.03".eu-central-1.aarch64-linux.hvm-ebs = "ami-0bb4669de1f477fd1";
+ # missing "20.03".eu-north-1.aarch64-linux.hvm-ebs = "ami-";
+ "20.03".us-east-1.aarch64-linux.hvm-ebs = "ami-01d2de16a1878271c";
+ "20.03".us-east-2.aarch64-linux.hvm-ebs = "ami-0eade0158b1ff49c0";
+ "20.03".us-west-1.aarch64-linux.hvm-ebs = "ami-0913bf30cb9a764a4";
+ "20.03".us-west-2.aarch64-linux.hvm-ebs = "ami-073449580ff8e82b5";
+ "20.03".ca-central-1.aarch64-linux.hvm-ebs = "ami-050f2e923c4d703c0";
+ "20.03".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-0d11ef6705a9a11a7";
+ "20.03".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-05446a2f818cd3263";
+ "20.03".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-0c057f010065d2453";
+ "20.03".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-0e90eda7f24eb33ab";
+ "20.03".ap-south-1.aarch64-linux.hvm-ebs = "ami-03ba7e9f093f568bc";
+ "20.03".sa-east-1.aarch64-linux.hvm-ebs = "ami-0a8344c6ce6d0c902";
+
+ # 20.09.2016.19db3e5ea27
+ "20.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-0057cb7d614329fa2";
+ "20.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-0d46f16e0bb0ec8fd";
+ "20.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-0e8985c3ea42f87fe";
+ "20.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-0eed77c38432886d2";
+ "20.09".eu-north-1.x86_64-linux.hvm-ebs = "ami-0be5bcadd632bea14";
+ "20.09".us-east-1.x86_64-linux.hvm-ebs = "ami-0a2cce52b42daccc8";
+ "20.09".us-east-2.x86_64-linux.hvm-ebs = "ami-09378bf487b07a4d8";
+ "20.09".us-west-1.x86_64-linux.hvm-ebs = "ami-09b4337b2a9e77485";
+ "20.09".us-west-2.x86_64-linux.hvm-ebs = "ami-081d3bb5fbee0a1ac";
+ "20.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-020c24c6c607e7ac7";
+ "20.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-08f648d5db009e67d";
+ "20.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0be390efaccbd40f9";
+ "20.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-0c3311601cbe8f927";
+ "20.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0020146701f4d56cf";
+ "20.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-0117e2bd876bb40d1";
+ "20.09".ap-east-1.x86_64-linux.hvm-ebs = "ami-0c42f97e5b1fda92f";
+ "20.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-021637976b094959d";
+ # 20.09.2016.19db3e5ea27-aarch64-linux
+ "20.09".eu-west-1.aarch64-linux.hvm-ebs = "ami-00a02608ff45ff8f9";
+ "20.09".eu-west-2.aarch64-linux.hvm-ebs = "ami-0e991d0f8dca21e20";
+ "20.09".eu-west-3.aarch64-linux.hvm-ebs = "ami-0d18eec4dc48c6f3b";
+ "20.09".eu-central-1.aarch64-linux.hvm-ebs = "ami-01691f25d08f48c9e";
+ "20.09".eu-north-1.aarch64-linux.hvm-ebs = "ami-09bb5aabe567ec6f4";
+ "20.09".us-east-1.aarch64-linux.hvm-ebs = "ami-0504bd006f9eaae42";
+ "20.09".us-east-2.aarch64-linux.hvm-ebs = "ami-00f0f8f2ab2d695ad";
+ "20.09".us-west-1.aarch64-linux.hvm-ebs = "ami-02d147d2cb992f878";
+ "20.09".us-west-2.aarch64-linux.hvm-ebs = "ami-07f40006cf4d4820e";
+ "20.09".ca-central-1.aarch64-linux.hvm-ebs = "ami-0e5f563919a987894";
+ "20.09".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-083e35d1acecae5c1";
+ "20.09".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-052cdc008b245b067";
+ "20.09".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-05e137f373bd72c0c";
+ "20.09".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-020791fe4c32f851a";
+ "20.09".ap-south-1.aarch64-linux.hvm-ebs = "ami-0285bb96a0f2c3955";
+ "20.09".sa-east-1.aarch64-linux.hvm-ebs = "ami-0a55ab650c32be058";
+
+
+ # 21.05.740.aa576357673
+ "21.05".eu-west-1.x86_64-linux.hvm-ebs = "ami-048dbc738074a3083";
+ "21.05".eu-west-2.x86_64-linux.hvm-ebs = "ami-0234cf81fec68315d";
+ "21.05".eu-west-3.x86_64-linux.hvm-ebs = "ami-020e459baf709107d";
+ "21.05".eu-central-1.x86_64-linux.hvm-ebs = "ami-0857d5d1309ab8b77";
+ "21.05".eu-north-1.x86_64-linux.hvm-ebs = "ami-05403e3ae53d3716f";
+ "21.05".us-east-1.x86_64-linux.hvm-ebs = "ami-0d3002ba40b5b9897";
+ "21.05".us-east-2.x86_64-linux.hvm-ebs = "ami-069a0ca1bde6dea52";
+ "21.05".us-west-1.x86_64-linux.hvm-ebs = "ami-0b415460a84bcf9bc";
+ "21.05".us-west-2.x86_64-linux.hvm-ebs = "ami-093cba49754abd7f8";
+ "21.05".ca-central-1.x86_64-linux.hvm-ebs = "ami-065c13e1d52d60b33";
+ "21.05".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-04f570c70ff9b665e";
+ "21.05".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-02a3d1df595df5ef6";
+ "21.05".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-027836fddb5c56012";
+ "21.05".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0edacd41dc7700c39";
+ "21.05".ap-south-1.x86_64-linux.hvm-ebs = "ami-0b279b5bb55288059";
+ "21.05".ap-east-1.x86_64-linux.hvm-ebs = "ami-06dc98082bc55c1fc";
+ "21.05".sa-east-1.x86_64-linux.hvm-ebs = "ami-04737dd49b98936c6";
+
+ # 21.11.333823.96b4157790f-x86_64-linux
+ "21.11".eu-west-1.x86_64-linux.hvm-ebs = "ami-01d0304a712f2f3f0";
+ "21.11".eu-west-2.x86_64-linux.hvm-ebs = "ami-00e828bfc1e5d09ac";
+ "21.11".eu-west-3.x86_64-linux.hvm-ebs = "ami-0e1ea64430d8103f2";
+ "21.11".eu-central-1.x86_64-linux.hvm-ebs = "ami-0fcf28c07e86142c5";
+ "21.11".eu-north-1.x86_64-linux.hvm-ebs = "ami-0ee83a3c6590fd6b1";
+ "21.11".us-east-1.x86_64-linux.hvm-ebs = "ami-099756bfda4540da0";
+ "21.11".us-east-2.x86_64-linux.hvm-ebs = "ami-0b20a80b82052d23f";
+ "21.11".us-west-1.x86_64-linux.hvm-ebs = "ami-088ea590004b01752";
+ "21.11".us-west-2.x86_64-linux.hvm-ebs = "ami-0025b9d4831b911a7";
+ "21.11".ca-central-1.x86_64-linux.hvm-ebs = "ami-0e67089f898e74443";
+ "21.11".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0dc8d718279d3402d";
+ "21.11".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0155e842329970187";
+ "21.11".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-07c95eda953bf5435";
+ "21.11".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-04167df3cd952b3bd";
+ "21.11".ap-south-1.x86_64-linux.hvm-ebs = "ami-0680e05531b3db677";
+ "21.11".ap-east-1.x86_64-linux.hvm-ebs = "ami-0835a3e481dc240f9";
+ "21.11".sa-east-1.x86_64-linux.hvm-ebs = "ami-0f7c354c421348e51";
+
+ # 21.11.333823.96b4157790f-aarch64-linux
+ "21.11".eu-west-1.aarch64-linux.hvm-ebs = "ami-048f3eea6a12c4b3b";
+ "21.11".eu-west-2.aarch64-linux.hvm-ebs = "ami-0e6f18f2009806add";
+ "21.11".eu-west-3.aarch64-linux.hvm-ebs = "ami-0a28d593f5e938d80";
+ "21.11".eu-central-1.aarch64-linux.hvm-ebs = "ami-0b9c95d926ab9474c";
+ "21.11".eu-north-1.aarch64-linux.hvm-ebs = "ami-0f2d400b4a2368a1a";
+ "21.11".us-east-1.aarch64-linux.hvm-ebs = "ami-05afb75585567d386";
+ "21.11".us-east-2.aarch64-linux.hvm-ebs = "ami-07f360673c2fccf8d";
+ "21.11".us-west-1.aarch64-linux.hvm-ebs = "ami-0a6892c61d85774db";
+ "21.11".us-west-2.aarch64-linux.hvm-ebs = "ami-04eaf20283432e852";
+ "21.11".ca-central-1.aarch64-linux.hvm-ebs = "ami-036b69828502e7fdf";
+ "21.11".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-0d52e51e68b6954ef";
+ "21.11".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-000a3019e003f4fb9";
+ "21.11".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-09b0c7928780e25b6";
+ "21.11".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-05f80f3c83083ff62";
+ "21.11".ap-south-1.aarch64-linux.hvm-ebs = "ami-05b2a3ff8489c3f59";
+ "21.11".ap-east-1.aarch64-linux.hvm-ebs = "ami-0aa3b50a4f2822a00";
+ "21.11".sa-east-1.aarch64-linux.hvm-ebs = "ami-00f68eff453d3fe69";
+
+ latest = self."21.11";
+}; in self
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix b/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix
index 698edcd835..0465571ca9 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix
@@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
let
- inherit (lib) types;
+ inherit (lib) literalExpression types;
in {
options = {
ec2 = {
@@ -50,6 +50,7 @@ in {
};
efi = lib.mkOption {
default = pkgs.stdenv.hostPlatform.isAarch64;
+ defaultText = literalExpression "pkgs.stdenv.hostPlatform.isAarch64";
internal = true;
description = ''
Whether the EC2 instance is using EFI.
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix b/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix
index 41f3fa0e66..bd8c7f8c1e 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix
@@ -76,7 +76,7 @@ in
config = mkIf cfg.enable {
assertions = [ {
- assertion = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
+ assertion = pkgs.stdenv.hostPlatform.isx86;
message = "Azure not currently supported on ${pkgs.stdenv.hostPlatform.system}";
} {
assertion = config.networking.networkmanager.enable == false;
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix b/third_party/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix
index d38f41ab39..1ffb326ba7 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix
@@ -1,371 +1,9 @@
-let self = {
- "14.04".ap-northeast-1.hvm-ebs = "ami-71c6f470";
- "14.04".ap-northeast-1.pv-ebs = "ami-4dcbf84c";
- "14.04".ap-northeast-1.pv-s3 = "ami-8fc4f68e";
- "14.04".ap-southeast-1.hvm-ebs = "ami-da280888";
- "14.04".ap-southeast-1.pv-ebs = "ami-7a9dbc28";
- "14.04".ap-southeast-1.pv-s3 = "ami-c4290996";
- "14.04".ap-southeast-2.hvm-ebs = "ami-ab523e91";
- "14.04".ap-southeast-2.pv-ebs = "ami-6769055d";
- "14.04".ap-southeast-2.pv-s3 = "ami-15533f2f";
- "14.04".eu-central-1.hvm-ebs = "ami-ba0234a7";
- "14.04".eu-west-1.hvm-ebs = "ami-96cb63e1";
- "14.04".eu-west-1.pv-ebs = "ami-b48c25c3";
- "14.04".eu-west-1.pv-s3 = "ami-06cd6571";
- "14.04".sa-east-1.hvm-ebs = "ami-01b90e1c";
- "14.04".sa-east-1.pv-ebs = "ami-69e35474";
- "14.04".sa-east-1.pv-s3 = "ami-61b90e7c";
- "14.04".us-east-1.hvm-ebs = "ami-58ba3a30";
- "14.04".us-east-1.pv-ebs = "ami-9e0583f6";
- "14.04".us-east-1.pv-s3 = "ami-9cbe3ef4";
- "14.04".us-west-1.hvm-ebs = "ami-0bc3d74e";
- "14.04".us-west-1.pv-ebs = "ami-8b1703ce";
- "14.04".us-west-1.pv-s3 = "ami-27ccd862";
- "14.04".us-west-2.hvm-ebs = "ami-3bf1bf0b";
- "14.04".us-west-2.pv-ebs = "ami-259bd515";
- "14.04".us-west-2.pv-s3 = "ami-07094037";
-
- "14.12".ap-northeast-1.hvm-ebs = "ami-24435f25";
- "14.12".ap-northeast-1.pv-ebs = "ami-b0425eb1";
- "14.12".ap-northeast-1.pv-s3 = "ami-fed3c6ff";
- "14.12".ap-southeast-1.hvm-ebs = "ami-6c765d3e";
- "14.12".ap-southeast-1.pv-ebs = "ami-6a765d38";
- "14.12".ap-southeast-1.pv-s3 = "ami-d1bf9183";
- "14.12".ap-southeast-2.hvm-ebs = "ami-af86f395";
- "14.12".ap-southeast-2.pv-ebs = "ami-b386f389";
- "14.12".ap-southeast-2.pv-s3 = "ami-69c5ae53";
- "14.12".eu-central-1.hvm-ebs = "ami-4a497a57";
- "14.12".eu-central-1.pv-ebs = "ami-4c497a51";
- "14.12".eu-central-1.pv-s3 = "ami-60f2c27d";
- "14.12".eu-west-1.hvm-ebs = "ami-d126a5a6";
- "14.12".eu-west-1.pv-ebs = "ami-0126a576";
- "14.12".eu-west-1.pv-s3 = "ami-deda5fa9";
- "14.12".sa-east-1.hvm-ebs = "ami-2d239e30";
- "14.12".sa-east-1.pv-ebs = "ami-35239e28";
- "14.12".sa-east-1.pv-s3 = "ami-81e3519c";
- "14.12".us-east-1.hvm-ebs = "ami-0c463a64";
- "14.12".us-east-1.pv-ebs = "ami-ac473bc4";
- "14.12".us-east-1.pv-s3 = "ami-00e18a68";
- "14.12".us-west-1.hvm-ebs = "ami-ca534a8f";
- "14.12".us-west-1.pv-ebs = "ami-3e534a7b";
- "14.12".us-west-1.pv-s3 = "ami-2905196c";
- "14.12".us-west-2.hvm-ebs = "ami-fb9dc3cb";
- "14.12".us-west-2.pv-ebs = "ami-899dc3b9";
- "14.12".us-west-2.pv-s3 = "ami-cb7f2dfb";
-
- "15.09".ap-northeast-1.hvm-ebs = "ami-58cac236";
- "15.09".ap-northeast-1.hvm-s3 = "ami-39c8c057";
- "15.09".ap-northeast-1.pv-ebs = "ami-5ac9c134";
- "15.09".ap-northeast-1.pv-s3 = "ami-03cec66d";
- "15.09".ap-southeast-1.hvm-ebs = "ami-2fc2094c";
- "15.09".ap-southeast-1.hvm-s3 = "ami-9ec308fd";
- "15.09".ap-southeast-1.pv-ebs = "ami-95c00bf6";
- "15.09".ap-southeast-1.pv-s3 = "ami-bfc00bdc";
- "15.09".ap-southeast-2.hvm-ebs = "ami-996c4cfa";
- "15.09".ap-southeast-2.hvm-s3 = "ami-3f6e4e5c";
- "15.09".ap-southeast-2.pv-ebs = "ami-066d4d65";
- "15.09".ap-southeast-2.pv-s3 = "ami-cc6e4eaf";
- "15.09".eu-central-1.hvm-ebs = "ami-3f8c6b50";
- "15.09".eu-central-1.hvm-s3 = "ami-5b836434";
- "15.09".eu-central-1.pv-ebs = "ami-118c6b7e";
- "15.09".eu-central-1.pv-s3 = "ami-2c977043";
- "15.09".eu-west-1.hvm-ebs = "ami-9cf04aef";
- "15.09".eu-west-1.hvm-s3 = "ami-2bea5058";
- "15.09".eu-west-1.pv-ebs = "ami-c9e852ba";
- "15.09".eu-west-1.pv-s3 = "ami-c6f64cb5";
- "15.09".sa-east-1.hvm-ebs = "ami-6e52df02";
- "15.09".sa-east-1.hvm-s3 = "ami-1852df74";
- "15.09".sa-east-1.pv-ebs = "ami-4368e52f";
- "15.09".sa-east-1.pv-s3 = "ami-f15ad79d";
- "15.09".us-east-1.hvm-ebs = "ami-84a6a0ee";
- "15.09".us-east-1.hvm-s3 = "ami-06a7a16c";
- "15.09".us-east-1.pv-ebs = "ami-a4a1a7ce";
- "15.09".us-east-1.pv-s3 = "ami-5ba8ae31";
- "15.09".us-west-1.hvm-ebs = "ami-22c8bb42";
- "15.09".us-west-1.hvm-s3 = "ami-a2ccbfc2";
- "15.09".us-west-1.pv-ebs = "ami-10cebd70";
- "15.09".us-west-1.pv-s3 = "ami-fa30429a";
- "15.09".us-west-2.hvm-ebs = "ami-ce57b9ae";
- "15.09".us-west-2.hvm-s3 = "ami-2956b849";
- "15.09".us-west-2.pv-ebs = "ami-005fb160";
- "15.09".us-west-2.pv-s3 = "ami-cd55bbad";
-
- "16.03".ap-northeast-1.hvm-ebs = "ami-40619d21";
- "16.03".ap-northeast-1.hvm-s3 = "ami-ce629eaf";
- "16.03".ap-northeast-1.pv-ebs = "ami-ef639f8e";
- "16.03".ap-northeast-1.pv-s3 = "ami-a1609cc0";
- "16.03".ap-northeast-2.hvm-ebs = "ami-deca00b0";
- "16.03".ap-northeast-2.hvm-s3 = "ami-a3b77dcd";
- "16.03".ap-northeast-2.pv-ebs = "ami-7bcb0115";
- "16.03".ap-northeast-2.pv-s3 = "ami-a2b77dcc";
- "16.03".ap-south-1.hvm-ebs = "ami-0dff9562";
- "16.03".ap-south-1.hvm-s3 = "ami-13f69c7c";
- "16.03".ap-south-1.pv-ebs = "ami-0ef39961";
- "16.03".ap-south-1.pv-s3 = "ami-e0c8a28f";
- "16.03".ap-southeast-1.hvm-ebs = "ami-5e964a3d";
- "16.03".ap-southeast-1.hvm-s3 = "ami-4d964a2e";
- "16.03".ap-southeast-1.pv-ebs = "ami-ec9b478f";
- "16.03".ap-southeast-1.pv-s3 = "ami-999b47fa";
- "16.03".ap-southeast-2.hvm-ebs = "ami-9f7359fc";
- "16.03".ap-southeast-2.hvm-s3 = "ami-987359fb";
- "16.03".ap-southeast-2.pv-ebs = "ami-a2705ac1";
- "16.03".ap-southeast-2.pv-s3 = "ami-a3705ac0";
- "16.03".eu-central-1.hvm-ebs = "ami-17a45178";
- "16.03".eu-central-1.hvm-s3 = "ami-f9a55096";
- "16.03".eu-central-1.pv-ebs = "ami-c8a550a7";
- "16.03".eu-central-1.pv-s3 = "ami-6ea45101";
- "16.03".eu-west-1.hvm-ebs = "ami-b5b3d5c6";
- "16.03".eu-west-1.hvm-s3 = "ami-c986e0ba";
- "16.03".eu-west-1.pv-ebs = "ami-b083e5c3";
- "16.03".eu-west-1.pv-s3 = "ami-3c83e54f";
- "16.03".sa-east-1.hvm-ebs = "ami-f6eb7f9a";
- "16.03".sa-east-1.hvm-s3 = "ami-93e773ff";
- "16.03".sa-east-1.pv-ebs = "ami-cbb82ca7";
- "16.03".sa-east-1.pv-s3 = "ami-abb82cc7";
- "16.03".us-east-1.hvm-ebs = "ami-c123a3d6";
- "16.03".us-east-1.hvm-s3 = "ami-bc25a5ab";
- "16.03".us-east-1.pv-ebs = "ami-bd25a5aa";
- "16.03".us-east-1.pv-s3 = "ami-a325a5b4";
- "16.03".us-west-1.hvm-ebs = "ami-748bcd14";
- "16.03".us-west-1.hvm-s3 = "ami-a68dcbc6";
- "16.03".us-west-1.pv-ebs = "ami-048acc64";
- "16.03".us-west-1.pv-s3 = "ami-208dcb40";
- "16.03".us-west-2.hvm-ebs = "ami-8263a0e2";
- "16.03".us-west-2.hvm-s3 = "ami-925c9ff2";
- "16.03".us-west-2.pv-ebs = "ami-5e61a23e";
- "16.03".us-west-2.pv-s3 = "ami-734c8f13";
-
- # 16.09.1508.3909827
- "16.09".ap-northeast-1.hvm-ebs = "ami-68453b0f";
- "16.09".ap-northeast-1.hvm-s3 = "ami-f9bec09e";
- "16.09".ap-northeast-1.pv-ebs = "ami-254a3442";
- "16.09".ap-northeast-1.pv-s3 = "ami-ef473988";
- "16.09".ap-northeast-2.hvm-ebs = "ami-18ae7f76";
- "16.09".ap-northeast-2.hvm-s3 = "ami-9eac7df0";
- "16.09".ap-northeast-2.pv-ebs = "ami-57aa7b39";
- "16.09".ap-northeast-2.pv-s3 = "ami-5cae7f32";
- "16.09".ap-south-1.hvm-ebs = "ami-b3f98fdc";
- "16.09".ap-south-1.hvm-s3 = "ami-98e690f7";
- "16.09".ap-south-1.pv-ebs = "ami-aef98fc1";
- "16.09".ap-south-1.pv-s3 = "ami-caf88ea5";
- "16.09".ap-southeast-1.hvm-ebs = "ami-80fb51e3";
- "16.09".ap-southeast-1.hvm-s3 = "ami-2df3594e";
- "16.09".ap-southeast-1.pv-ebs = "ami-37f05a54";
- "16.09".ap-southeast-1.pv-s3 = "ami-27f35944";
- "16.09".ap-southeast-2.hvm-ebs = "ami-57ece834";
- "16.09".ap-southeast-2.hvm-s3 = "ami-87f4f0e4";
- "16.09".ap-southeast-2.pv-ebs = "ami-d8ede9bb";
- "16.09".ap-southeast-2.pv-s3 = "ami-a6ebefc5";
- "16.09".ca-central-1.hvm-ebs = "ami-9f863bfb";
- "16.09".ca-central-1.hvm-s3 = "ami-ea85388e";
- "16.09".ca-central-1.pv-ebs = "ami-ce8a37aa";
- "16.09".ca-central-1.pv-s3 = "ami-448a3720";
- "16.09".eu-central-1.hvm-ebs = "ami-1b884774";
- "16.09".eu-central-1.hvm-s3 = "ami-b08c43df";
- "16.09".eu-central-1.pv-ebs = "ami-888946e7";
- "16.09".eu-central-1.pv-s3 = "ami-06874869";
- "16.09".eu-west-1.hvm-ebs = "ami-1ed3e76d";
- "16.09".eu-west-1.hvm-s3 = "ami-73d1e500";
- "16.09".eu-west-1.pv-ebs = "ami-44c0f437";
- "16.09".eu-west-1.pv-s3 = "ami-f3d8ec80";
- "16.09".eu-west-2.hvm-ebs = "ami-2c9c9648";
- "16.09".eu-west-2.hvm-s3 = "ami-6b9e940f";
- "16.09".eu-west-2.pv-ebs = "ami-f1999395";
- "16.09".eu-west-2.pv-s3 = "ami-bb9f95df";
- "16.09".sa-east-1.hvm-ebs = "ami-a11882cd";
- "16.09".sa-east-1.hvm-s3 = "ami-7726bc1b";
- "16.09".sa-east-1.pv-ebs = "ami-9725bffb";
- "16.09".sa-east-1.pv-s3 = "ami-b027bddc";
- "16.09".us-east-1.hvm-ebs = "ami-854ca593";
- "16.09".us-east-1.hvm-s3 = "ami-2241a834";
- "16.09".us-east-1.pv-ebs = "ami-a441a8b2";
- "16.09".us-east-1.pv-s3 = "ami-e841a8fe";
- "16.09".us-east-2.hvm-ebs = "ami-3f41645a";
- "16.09".us-east-2.hvm-s3 = "ami-804065e5";
- "16.09".us-east-2.pv-ebs = "ami-f1466394";
- "16.09".us-east-2.pv-s3 = "ami-05426760";
- "16.09".us-west-1.hvm-ebs = "ami-c2efbca2";
- "16.09".us-west-1.hvm-s3 = "ami-d71042b7";
- "16.09".us-west-1.pv-ebs = "ami-04e8bb64";
- "16.09".us-west-1.pv-s3 = "ami-31e9ba51";
- "16.09".us-west-2.hvm-ebs = "ami-6449f504";
- "16.09".us-west-2.hvm-s3 = "ami-344af654";
- "16.09".us-west-2.pv-ebs = "ami-6d4af60d";
- "16.09".us-west-2.pv-s3 = "ami-de48f4be";
-
- # 17.03.885.6024dd4067
- "17.03".ap-northeast-1.hvm-ebs = "ami-dbd0f7bc";
- "17.03".ap-northeast-1.hvm-s3 = "ami-7cdff81b";
- "17.03".ap-northeast-2.hvm-ebs = "ami-c59a48ab";
- "17.03".ap-northeast-2.hvm-s3 = "ami-0b944665";
- "17.03".ap-south-1.hvm-ebs = "ami-4f413220";
- "17.03".ap-south-1.hvm-s3 = "ami-864033e9";
- "17.03".ap-southeast-1.hvm-ebs = "ami-e08c3383";
- "17.03".ap-southeast-1.hvm-s3 = "ami-c28f30a1";
- "17.03".ap-southeast-2.hvm-ebs = "ami-fca9a69f";
- "17.03".ap-southeast-2.hvm-s3 = "ami-3daaa55e";
- "17.03".ca-central-1.hvm-ebs = "ami-9b00bdff";
- "17.03".ca-central-1.hvm-s3 = "ami-e800bd8c";
- "17.03".eu-central-1.hvm-ebs = "ami-5450803b";
- "17.03".eu-central-1.hvm-s3 = "ami-6e2efe01";
- "17.03".eu-west-1.hvm-ebs = "ami-10754c76";
- "17.03".eu-west-1.hvm-s3 = "ami-11734a77";
- "17.03".eu-west-2.hvm-ebs = "ami-ff1d099b";
- "17.03".eu-west-2.hvm-s3 = "ami-fe1d099a";
- "17.03".sa-east-1.hvm-ebs = "ami-d95d3eb5";
- "17.03".sa-east-1.hvm-s3 = "ami-fca2c190";
- "17.03".us-east-1.hvm-ebs = "ami-0940c61f";
- "17.03".us-east-1.hvm-s3 = "ami-674fc971";
- "17.03".us-east-2.hvm-ebs = "ami-afc2e6ca";
- "17.03".us-east-2.hvm-s3 = "ami-a1cde9c4";
- "17.03".us-west-1.hvm-ebs = "ami-587b2138";
- "17.03".us-west-1.hvm-s3 = "ami-70411b10";
- "17.03".us-west-2.hvm-ebs = "ami-a93daac9";
- "17.03".us-west-2.hvm-s3 = "ami-5139ae31";
-
- # 17.09.2681.59661f21be6
- "17.09".eu-west-1.hvm-ebs = "ami-a30192da";
- "17.09".eu-west-2.hvm-ebs = "ami-295a414d";
- "17.09".eu-west-3.hvm-ebs = "ami-8c0eb9f1";
- "17.09".eu-central-1.hvm-ebs = "ami-266cfe49";
- "17.09".us-east-1.hvm-ebs = "ami-40bee63a";
- "17.09".us-east-2.hvm-ebs = "ami-9d84aff8";
- "17.09".us-west-1.hvm-ebs = "ami-d14142b1";
- "17.09".us-west-2.hvm-ebs = "ami-3eb40346";
- "17.09".ca-central-1.hvm-ebs = "ami-ca8207ae";
- "17.09".ap-southeast-1.hvm-ebs = "ami-84bccff8";
- "17.09".ap-southeast-2.hvm-ebs = "ami-0dc5386f";
- "17.09".ap-northeast-1.hvm-ebs = "ami-89b921ef";
- "17.09".ap-northeast-2.hvm-ebs = "ami-179b3b79";
- "17.09".sa-east-1.hvm-ebs = "ami-4762202b";
- "17.09".ap-south-1.hvm-ebs = "ami-4e376021";
-
- # 18.03.132946.1caae7247b8
- "18.03".eu-west-1.hvm-ebs = "ami-065c46ec";
- "18.03".eu-west-2.hvm-ebs = "ami-64f31903";
- "18.03".eu-west-3.hvm-ebs = "ami-5a8d3d27";
- "18.03".eu-central-1.hvm-ebs = "ami-09faf9e2";
- "18.03".us-east-1.hvm-ebs = "ami-8b3538f4";
- "18.03".us-east-2.hvm-ebs = "ami-150b3170";
- "18.03".us-west-1.hvm-ebs = "ami-ce06ebad";
- "18.03".us-west-2.hvm-ebs = "ami-586c3520";
- "18.03".ca-central-1.hvm-ebs = "ami-aca72ac8";
- "18.03".ap-southeast-1.hvm-ebs = "ami-aa0b4d40";
- "18.03".ap-southeast-2.hvm-ebs = "ami-d0f254b2";
- "18.03".ap-northeast-1.hvm-ebs = "ami-456511a8";
- "18.03".ap-northeast-2.hvm-ebs = "ami-3366d15d";
- "18.03".sa-east-1.hvm-ebs = "ami-163e1f7a";
- "18.03".ap-south-1.hvm-ebs = "ami-6a390b05";
-
- # 18.09.910.c15e342304a
- "18.09".eu-west-1.hvm-ebs = "ami-0f412186fb8a0ec97";
- "18.09".eu-west-2.hvm-ebs = "ami-0dada3805ce43c55e";
- "18.09".eu-west-3.hvm-ebs = "ami-074df85565f2e02e2";
- "18.09".eu-central-1.hvm-ebs = "ami-07c9b884e679df4f8";
- "18.09".us-east-1.hvm-ebs = "ami-009c9c3f1af480ff3";
- "18.09".us-east-2.hvm-ebs = "ami-08199961085ea8bc6";
- "18.09".us-west-1.hvm-ebs = "ami-07aa7f56d612ddd38";
- "18.09".us-west-2.hvm-ebs = "ami-01c84b7c368ac24d1";
- "18.09".ca-central-1.hvm-ebs = "ami-04f66113f76198f6c";
- "18.09".ap-southeast-1.hvm-ebs = "ami-0892c7e24ebf2194f";
- "18.09".ap-southeast-2.hvm-ebs = "ami-010730f36424b0a2c";
- "18.09".ap-northeast-1.hvm-ebs = "ami-0cdba8e998f076547";
- "18.09".ap-northeast-2.hvm-ebs = "ami-0400a698e6a9f4a15";
- "18.09".sa-east-1.hvm-ebs = "ami-0e4a8a47fd6db6112";
- "18.09".ap-south-1.hvm-ebs = "ami-0880a678d3f555313";
-
- # 19.03.172286.8ea36d73256
- "19.03".eu-west-1.hvm-ebs = "ami-0fe40176548ff0940";
- "19.03".eu-west-2.hvm-ebs = "ami-03a40fd3a02fe95ba";
- "19.03".eu-west-3.hvm-ebs = "ami-0436f9da0f20a638e";
- "19.03".eu-central-1.hvm-ebs = "ami-0022b8ea9efde5de4";
- "19.03".us-east-1.hvm-ebs = "ami-0efc58fb70ae9a217";
- "19.03".us-east-2.hvm-ebs = "ami-0abf711b1b34da1af";
- "19.03".us-west-1.hvm-ebs = "ami-07d126e8838c40ec5";
- "19.03".us-west-2.hvm-ebs = "ami-03f8a737546e47fb0";
- "19.03".ca-central-1.hvm-ebs = "ami-03f9fd0ef2e035ede";
- "19.03".ap-southeast-1.hvm-ebs = "ami-0cff66114c652c262";
- "19.03".ap-southeast-2.hvm-ebs = "ami-054c73a7f8d773ea9";
- "19.03".ap-northeast-1.hvm-ebs = "ami-00db62688900456a4";
- "19.03".ap-northeast-2.hvm-ebs = "ami-0485cdd1a5fdd2117";
- "19.03".sa-east-1.hvm-ebs = "ami-0c6a43c6e0ad1f4e2";
- "19.03".ap-south-1.hvm-ebs = "ami-0303deb1b5890f878";
-
- # 19.09.2243.84af403f54f
- "19.09".eu-west-1.hvm-ebs = "ami-071082f0fa035374f";
- "19.09".eu-west-2.hvm-ebs = "ami-0d9dc33c54d1dc4c3";
- "19.09".eu-west-3.hvm-ebs = "ami-09566799591d1bfed";
- "19.09".eu-central-1.hvm-ebs = "ami-015f8efc2be419b79";
- "19.09".eu-north-1.hvm-ebs = "ami-07fc0a32d885e01ed";
- "19.09".us-east-1.hvm-ebs = "ami-03330d8b51287412f";
- "19.09".us-east-2.hvm-ebs = "ami-0518b4c84972e967f";
- "19.09".us-west-1.hvm-ebs = "ami-06ad07e61a353b4a6";
- "19.09".us-west-2.hvm-ebs = "ami-0e31e30925cf3ce4e";
- "19.09".ca-central-1.hvm-ebs = "ami-07df50fc76702a36d";
- "19.09".ap-southeast-1.hvm-ebs = "ami-0f71ae5d4b0b78d95";
- "19.09".ap-southeast-2.hvm-ebs = "ami-057bbf2b4bd62d210";
- "19.09".ap-northeast-1.hvm-ebs = "ami-02a62555ca182fb5b";
- "19.09".ap-northeast-2.hvm-ebs = "ami-0219dde0e6b7b7b93";
- "19.09".ap-south-1.hvm-ebs = "ami-066f7f2a895c821a1";
- "19.09".ap-east-1.hvm-ebs = "ami-055b2348db2827ff1";
- "19.09".sa-east-1.hvm-ebs = "ami-018aab68377227e06";
-
- # 20.03.1554.94e39623a49
- "20.03".eu-west-1.hvm-ebs = "ami-02c34db5766cc7013";
- "20.03".eu-west-2.hvm-ebs = "ami-0e32bd8c7853883f1";
- "20.03".eu-west-3.hvm-ebs = "ami-061edb1356c1d69fd";
- "20.03".eu-central-1.hvm-ebs = "ami-0a1a94722dcbff94c";
- "20.03".eu-north-1.hvm-ebs = "ami-02699abfacbb6464b";
- "20.03".us-east-1.hvm-ebs = "ami-0c5e7760748b74e85";
- "20.03".us-east-2.hvm-ebs = "ami-030296bb256764655";
- "20.03".us-west-1.hvm-ebs = "ami-050be818e0266b741";
- "20.03".us-west-2.hvm-ebs = "ami-06562f78dca68eda2";
- "20.03".ca-central-1.hvm-ebs = "ami-02365684a173255c7";
- "20.03".ap-southeast-1.hvm-ebs = "ami-0dbf353e168d155f7";
- "20.03".ap-southeast-2.hvm-ebs = "ami-04c0f3a75f63daddd";
- "20.03".ap-northeast-1.hvm-ebs = "ami-093d9cc49c191eb6c";
- "20.03".ap-northeast-2.hvm-ebs = "ami-0087df91a7b6ebd45";
- "20.03".ap-south-1.hvm-ebs = "ami-0a1a6b569af04af9d";
- "20.03".ap-east-1.hvm-ebs = "ami-0d18fdd309cdefa86";
- "20.03".sa-east-1.hvm-ebs = "ami-09859378158ae971d";
-
- # 20.09.2016.19db3e5ea27
- "20.09".eu-west-1.hvm-ebs = "ami-0057cb7d614329fa2";
- "20.09".eu-west-2.hvm-ebs = "ami-0d46f16e0bb0ec8fd";
- "20.09".eu-west-3.hvm-ebs = "ami-0e8985c3ea42f87fe";
- "20.09".eu-central-1.hvm-ebs = "ami-0eed77c38432886d2";
- "20.09".eu-north-1.hvm-ebs = "ami-0be5bcadd632bea14";
- "20.09".us-east-1.hvm-ebs = "ami-0a2cce52b42daccc8";
- "20.09".us-east-2.hvm-ebs = "ami-09378bf487b07a4d8";
- "20.09".us-west-1.hvm-ebs = "ami-09b4337b2a9e77485";
- "20.09".us-west-2.hvm-ebs = "ami-081d3bb5fbee0a1ac";
- "20.09".ca-central-1.hvm-ebs = "ami-020c24c6c607e7ac7";
- "20.09".ap-southeast-1.hvm-ebs = "ami-08f648d5db009e67d";
- "20.09".ap-southeast-2.hvm-ebs = "ami-0be390efaccbd40f9";
- "20.09".ap-northeast-1.hvm-ebs = "ami-0c3311601cbe8f927";
- "20.09".ap-northeast-2.hvm-ebs = "ami-0020146701f4d56cf";
- "20.09".ap-south-1.hvm-ebs = "ami-0117e2bd876bb40d1";
- "20.09".ap-east-1.hvm-ebs = "ami-0c42f97e5b1fda92f";
- "20.09".sa-east-1.hvm-ebs = "ami-021637976b094959d";
-
- # 21.05.740.aa576357673
- "21.05".eu-west-1.hvm-ebs = "ami-048dbc738074a3083";
- "21.05".eu-west-2.hvm-ebs = "ami-0234cf81fec68315d";
- "21.05".eu-west-3.hvm-ebs = "ami-020e459baf709107d";
- "21.05".eu-central-1.hvm-ebs = "ami-0857d5d1309ab8b77";
- "21.05".eu-north-1.hvm-ebs = "ami-05403e3ae53d3716f";
- "21.05".us-east-1.hvm-ebs = "ami-0d3002ba40b5b9897";
- "21.05".us-east-2.hvm-ebs = "ami-069a0ca1bde6dea52";
- "21.05".us-west-1.hvm-ebs = "ami-0b415460a84bcf9bc";
- "21.05".us-west-2.hvm-ebs = "ami-093cba49754abd7f8";
- "21.05".ca-central-1.hvm-ebs = "ami-065c13e1d52d60b33";
- "21.05".ap-southeast-1.hvm-ebs = "ami-04f570c70ff9b665e";
- "21.05".ap-southeast-2.hvm-ebs = "ami-02a3d1df595df5ef6";
- "21.05".ap-northeast-1.hvm-ebs = "ami-027836fddb5c56012";
- "21.05".ap-northeast-2.hvm-ebs = "ami-0edacd41dc7700c39";
- "21.05".ap-south-1.hvm-ebs = "ami-0b279b5bb55288059";
- "21.05".ap-east-1.hvm-ebs = "ami-06dc98082bc55c1fc";
- "21.05".sa-east-1.hvm-ebs = "ami-04737dd49b98936c6";
-
- latest = self."21.05";
-}; in self
+# Compatibility shim
+let
+ lib = import ../../../lib;
+ inherit (lib) mapAttrs;
+ everything = import ./amazon-ec2-amis.nix;
+ doAllVersions = mapAttrs (versionName: doRegion);
+ doRegion = mapAttrs (regionName: systems: systems.x86_64-linux);
+in
+ doAllVersions everything
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix b/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
index 121e7286bc..ab87394a30 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/virtualisation/lxc-container.nix b/third_party/nixpkgs/nixos/modules/virtualisation/lxc-container.nix
index e47bd59dc0..9816cc2332 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/lxc-container.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/lxc-container.nix
@@ -1,26 +1,174 @@
-{ lib, ... }:
+{ lib, config, pkgs, ... }:
with lib;
+let
+ templateSubmodule = { ... }: {
+ options = {
+ enable = mkEnableOption "this template";
+
+ target = mkOption {
+ description = "Path in the container";
+ type = types.path;
+ };
+ template = mkOption {
+ description = ".tpl file for rendering the target";
+ type = types.path;
+ };
+ when = mkOption {
+ description = "Events which trigger a rewrite (create, copy)";
+ type = types.listOf (types.str);
+ };
+ properties = mkOption {
+ description = "Additional properties";
+ type = types.attrs;
+ default = {};
+ };
+ };
+ };
+
+ toYAML = name: data: pkgs.writeText name (generators.toYAML {} data);
+
+ cfg = config.virtualisation.lxc;
+ templates = if cfg.templates != {} then let
+ list = mapAttrsToList (name: value: { inherit name; } // value)
+ (filterAttrs (name: value: value.enable) cfg.templates);
+ in
+ {
+ files = map (tpl: {
+ source = tpl.template;
+ target = "/templates/${tpl.name}.tpl";
+ }) list;
+ properties = listToAttrs (map (tpl: nameValuePair tpl.target {
+ when = tpl.when;
+ template = "${tpl.name}.tpl";
+ properties = tpl.properties;
+ }) list);
+ }
+ else { files = []; properties = {}; };
+
+in
{
imports = [
- ../profiles/docker-container.nix # FIXME, shouldn't include something from profiles/
+ ../installer/cd-dvd/channel.nix
+ ../profiles/minimal.nix
+ ../profiles/clone-config.nix
];
- # Allow the user to login as root without password.
- users.users.root.initialHashedPassword = mkOverride 150 "";
+ options = {
+ virtualisation.lxc = {
+ templates = mkOption {
+ description = "Templates for LXD";
+ type = types.attrsOf (types.submodule (templateSubmodule));
+ default = {};
+ example = literalExpression ''
+ {
+ # create /etc/hostname on container creation
+ "hostname" = {
+ enable = true;
+ target = "/etc/hostname";
+ template = builtins.writeFile "hostname.tpl" "{{ container.name }}";
+ when = [ "create" ];
+ };
+ # create /etc/nixos/hostname.nix with a configuration for keeping the hostname applied
+ "hostname-nix" = {
+ enable = true;
+ target = "/etc/nixos/hostname.nix";
+ template = builtins.writeFile "hostname-nix.tpl" "{ ... }: { networking.hostName = "{{ container.name }}"; }";
+ # copy keeps the file updated when the container is changed
+ when = [ "create" "copy" ];
+ };
+ # copy allow the user to specify a custom configuration.nix
+ "configuration-nix" = {
+ enable = true;
+ target = "/etc/nixos/configuration.nix";
+ template = builtins.writeFile "configuration-nix" "{{ config_get(\"user.user-data\", properties.default) }}";
+ when = [ "create" ];
+ };
+ };
+ '';
+ };
+ };
+ };
- # Some more help text.
- services.getty.helpLine =
- ''
+ config = {
+ boot.isContainer = true;
+ boot.postBootCommands =
+ ''
+ # After booting, register the contents of the Nix store in the Nix
+ # database.
+ if [ -f /nix-path-registration ]; then
+ ${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration &&
+ rm /nix-path-registration
+ fi
- Log in as "root" with an empty password.
+ # nixos-rebuild also requires a "system" profile
+ ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
+ '';
+
+ system.build.metadata = pkgs.callPackage ../../lib/make-system-tarball.nix {
+ contents = [
+ {
+ source = toYAML "metadata.yaml" {
+ architecture = builtins.elemAt (builtins.match "^([a-z0-9_]+).+" (toString pkgs.system)) 0;
+ creation_date = 1;
+ properties = {
+ description = "NixOS ${config.system.nixos.codeName} ${config.system.nixos.label} ${pkgs.system}";
+ os = "nixos";
+ release = "${config.system.nixos.codeName}";
+ };
+ templates = templates.properties;
+ };
+ target = "/metadata.yaml";
+ }
+ ] ++ templates.files;
+ };
+
+ # TODO: build rootfs as squashfs for faster unpack
+ system.build.tarball = pkgs.callPackage ../../lib/make-system-tarball.nix {
+ extraArgs = "--owner=0";
+
+ storeContents = [
+ {
+ object = config.system.build.toplevel;
+ symlink = "none";
+ }
+ ];
+
+ contents = [
+ {
+ source = config.system.build.toplevel + "/init";
+ target = "/sbin/init";
+ }
+ ];
+
+ extraCommands = "mkdir -p proc sys dev";
+ };
+
+ # Add the overrides from lxd distrobuilder
+ systemd.extraConfig = ''
+ [Service]
+ ProtectProc=default
+ ProtectControlGroups=no
+ ProtectKernelTunables=no
'';
- # Containers should be light-weight, so start sshd on demand.
- services.openssh.enable = mkDefault true;
- services.openssh.startWhenNeeded = mkDefault true;
+ # Allow the user to login as root without password.
+ users.users.root.initialHashedPassword = mkOverride 150 "";
- # Allow ssh connections
- networking.firewall.allowedTCPPorts = [ 22 ];
+ system.activationScripts.installInitScript = mkForce ''
+ ln -fs $systemConfig/init /sbin/init
+ '';
+
+ # Some more help text.
+ services.getty.helpLine =
+ ''
+
+ Log in as "root" with an empty password.
+ '';
+
+ # Containers should be light-weight, so start sshd on demand.
+ services.openssh.enable = mkDefault true;
+ services.openssh.startWhenNeeded = mkDefault true;
+ };
}
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/lxd.nix b/third_party/nixpkgs/nixos/modules/virtualisation/lxd.nix
index 94cd22d137..18451b147f 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/lxd.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/modules/virtualisation/oci-containers.nix b/third_party/nixpkgs/nixos/modules/virtualisation/oci-containers.nix
index 24573bba48..5af9baff8b 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/oci-containers.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/oci-containers.nix
@@ -28,7 +28,7 @@ let
You still need to set the image attribute, as it
will be used as the image name for docker to start a container.
'';
- example = literalExpression "pkgs.dockerTools.buildDockerImage {...};";
+ example = literalExpression "pkgs.dockerTools.buildImage {...};";
};
login = {
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix b/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix
new file mode 100644
index 0000000000..c537d5aed4
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix
@@ -0,0 +1,169 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+{
+ options.proxmox = {
+ qemuConf = {
+ # essential configs
+ boot = mkOption {
+ type = types.str;
+ default = "";
+ example = "order=scsi0;net0";
+ description = ''
+ Default boot device. PVE will try all devices in its default order if this value is empty.
+ '';
+ };
+ scsihw = mkOption {
+ type = types.str;
+ default = "virtio-scsi-pci";
+ example = "lsi";
+ description = ''
+ SCSI controller type. Must be one of the supported values given in
+
+ '';
+ };
+ virtio0 = mkOption {
+ type = types.str;
+ default = "local-lvm:vm-9999-disk-0";
+ example = "ceph:vm-123-disk-0";
+ description = ''
+ Configuration for the default virtio disk. It can be used as a cue for PVE to autodetect the target sotrage.
+ This parameter is required by PVE even if it isn't used.
+ '';
+ };
+ ostype = mkOption {
+ type = types.str;
+ default = "l26";
+ description = ''
+ Guest OS type
+ '';
+ };
+ cores = mkOption {
+ type = types.ints.positive;
+ default = 1;
+ description = ''
+ Guest core count
+ '';
+ };
+ memory = mkOption {
+ type = types.ints.positive;
+ default = 1024;
+ description = ''
+ Guest memory in MB
+ '';
+ };
+
+ # optional configs
+ name = mkOption {
+ type = types.str;
+ default = "nixos-${config.system.nixos.label}";
+ description = ''
+ VM name
+ '';
+ };
+ net0 = mkOption {
+ type = types.commas;
+ default = "virtio=00:00:00:00:00:00,bridge=vmbr0,firewall=1";
+ description = ''
+ Configuration for the default interface. When restoring from VMA, check the
+ "unique" box to ensure device mac is randomized.
+ '';
+ };
+ serial0 = mkOption {
+ type = types.str;
+ default = "socket";
+ example = "/dev/ttyS0";
+ description = ''
+ Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0),
+ or create a unix socket on the host side (use qm terminal to open a terminal connection).
+ '';
+ };
+ agent = mkOption {
+ type = types.bool;
+ apply = x: if x then "1" else "0";
+ default = true;
+ description = ''
+ Expect guest to have qemu agent running
+ '';
+ };
+ };
+ qemuExtraConf = mkOption {
+ type = with types; attrsOf (oneOf [ str int ]);
+ default = {};
+ example = literalExpression ''{
+ cpu = "host";
+ onboot = 1;
+ }'';
+ description = ''
+ Additional options appended to qemu-server.conf
+ '';
+ };
+ filenameSuffix = mkOption {
+ type = types.str;
+ default = config.proxmox.qemuConf.name;
+ example = "999-nixos_template";
+ description = ''
+ Filename of the image will be vzdump-qemu-''${filenameSuffix}.vma.zstd.
+ This will also determine the default name of the VM on restoring the VMA.
+ Start this value with a number if you want the VMA to be detected as a backup of
+ any specific VMID.
+ '';
+ };
+ };
+
+ config = let
+ cfg = config.proxmox;
+ cfgLine = name: value: ''
+ ${name}: ${builtins.toString value}
+ '';
+ cfgFile = fileName: properties: pkgs.writeTextDir fileName ''
+ # generated by NixOS
+ ${lib.concatStrings (lib.mapAttrsToList cfgLine properties)}
+ #qmdump#map:virtio0:drive-virtio0:local-lvm:raw:
+ '';
+ in {
+ system.build.VMA = import ../../lib/make-disk-image.nix {
+ name = "proxmox-${cfg.filenameSuffix}";
+ postVM = let
+ # Build qemu with PVE's patch that adds support for the VMA format
+ vma = pkgs.qemu_kvm.overrideAttrs ( super: {
+ patches = let
+ rev = "cc707c362ea5c8d832aac270d1ffa7ac66a8908f";
+ path = "debian/patches/pve/0025-PVE-Backup-add-vma-backup-format-code.patch";
+ vma-patch = pkgs.fetchpatch {
+ url = "https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;hb=${rev};f=${path}";
+ sha256 = "1z467xnmfmry3pjy7p34psd5xdil9x0apnbvfz8qbj0bf9fgc8zf";
+ };
+ in super.patches ++ [ vma-patch ];
+ buildInputs = super.buildInputs ++ [ pkgs.libuuid ];
+ });
+ in
+ ''
+ ${vma}/bin/vma create "vzdump-qemu-${cfg.filenameSuffix}.vma" \
+ -c ${cfgFile "qemu-server.conf" (cfg.qemuConf // cfg.qemuExtraConf)}/qemu-server.conf drive-virtio0=$diskImage
+ rm $diskImage
+ ${pkgs.zstd}/bin/zstd "vzdump-qemu-${cfg.filenameSuffix}.vma"
+ mv "vzdump-qemu-${cfg.filenameSuffix}.vma.zst" $out/
+ '';
+ format = "raw";
+ inherit config lib pkgs;
+ };
+
+ boot = {
+ growPartition = true;
+ kernelParams = [ "console=ttyS0" ];
+ loader.grub.device = lib.mkDefault "/dev/vda";
+ loader.timeout = 0;
+ initrd.availableKernelModules = [ "uas" "virtio_blk" "virtio_pci" ];
+ };
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/nixos";
+ autoResize = true;
+ fsType = "ext4";
+ };
+
+ services.qemuGuest.enable = lib.mkDefault true;
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix b/third_party/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix
index 37a93a2997..39273e523e 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix
@@ -14,8 +14,8 @@ in {
};
package = mkOption {
type = types.package;
- default = pkgs.qemu.ga;
- defaultText = literalExpression "pkgs.qemu.ga";
+ default = pkgs.qemu_kvm.ga;
+ defaultText = literalExpression "pkgs.qemu_kvm.ga";
description = "The QEMU guest agent package.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix b/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
index c5f71b249a..c7c3d74746 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
@@ -97,7 +97,7 @@ let
imap1 (idx: drive: drive // { device = driveDeviceName idx; });
efiPrefix =
- if (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) then "${pkgs.OVMF.fd}/FV/OVMF"
+ if pkgs.stdenv.hostPlatform.isx86 then "${pkgs.OVMF.fd}/FV/OVMF"
else if pkgs.stdenv.isAarch64 then "${pkgs.OVMF.fd}/FV/AAVMF"
else throw "No EFI firmware available for platform";
efiFirmware = "${efiPrefix}_CODE.fd";
@@ -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 = {
@@ -277,7 +296,7 @@ in
virtualisation.memorySize =
mkOption {
type = types.ints.positive;
- default = 384;
+ default = 1024;
description =
''
The memory size in megabytes of the virtual machine.
@@ -299,7 +318,7 @@ in
virtualisation.diskSize =
mkOption {
type = types.nullOr types.ints.positive;
- default = 512;
+ default = 1024;
description =
''
The disk size in megabytes of the virtual machine.
@@ -310,6 +329,7 @@ in
mkOption {
type = types.str;
default = "./${config.system.name}.qcow2";
+ defaultText = literalExpression ''"./''${config.system.name}.qcow2"'';
description =
''
Path to the disk image containing the root filesystem.
@@ -399,17 +419,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 +561,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 +634,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;
@@ -639,6 +679,7 @@ in
mkOption {
type = types.str;
default = "./${config.system.name}-efi-vars.fd";
+ defaultText = literalExpression ''"./''${config.system.name}-efi-vars.fd"'';
description =
''
Path to nvram image containing UEFI variables. The will be created
@@ -740,7 +781,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 +800,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 =
@@ -785,7 +835,7 @@ in
# FIXME: Consolidate this one day.
virtualisation.qemu.options = mkMerge [
- (mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
+ (mkIf pkgs.stdenv.hostPlatform.isx86 [
"-usb" "-device usb-tablet,bus=usb-bus.0"
])
(mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
@@ -797,7 +847,7 @@ in
''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
])
(mkIf cfg.useEFIBoot [
- "-drive if=pflash,format=raw,unit=0,readonly,file=${efiFirmware}"
+ "-drive if=pflash,format=raw,unit=0,readonly=on,file=${efiFirmware}"
"-drive if=pflash,format=raw,unit=1,file=$NIX_EFI_VARS"
])
(mkIf (cfg.bios != null) [
@@ -815,6 +865,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 +920,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/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix b/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix
index 486951983d..f702fb4e52 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix
@@ -33,7 +33,7 @@ in
config = mkIf cfg.enable (mkMerge [{
assertions = [{
- assertion = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
+ assertion = pkgs.stdenv.hostPlatform.isx86;
message = "Virtualbox not currently supported on ${pkgs.stdenv.hostPlatform.system}";
}];
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-host.nix b/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-host.nix
index 6c742ad371..2acf54aae2 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-host.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/virtualbox-host.nix
@@ -6,7 +6,7 @@ let
cfg = config.virtualisation.virtualbox.host;
virtualbox = cfg.package.override {
- inherit (cfg) enableHardening headless;
+ inherit (cfg) enableHardening headless enableWebService;
extensionPack = if cfg.enableExtensionPack then pkgs.virtualboxExtpack else null;
};
@@ -80,6 +80,14 @@ in
and when virtual machines are controlled only via SSH.
'';
};
+
+ enableWebService = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Build VirtualBox web service tool (vboxwebsrv) to allow managing VMs via other webpage frontend tools. Useful for headless servers.
+ '';
+ };
};
config = mkIf cfg.enable (mkMerge [{
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/vmware-guest.nix b/third_party/nixpkgs/nixos/modules/virtualisation/vmware-guest.nix
index 7b25ffc440..481dedf840 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/vmware-guest.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/vmware-guest.nix
@@ -23,7 +23,7 @@ in
config = mkIf cfg.enable {
assertions = [ {
- assertion = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
+ assertion = pkgs.stdenv.hostPlatform.isx86;
message = "VMWare guest is not currently supported on ${pkgs.stdenv.hostPlatform.system}";
} ];
@@ -34,16 +34,17 @@ in
systemd.services.vmware =
{ description = "VMWare Guest Service";
wantedBy = [ "multi-user.target" ];
+ after = [ "display-manager.service" ];
+ unitConfig.ConditionVirtualization = "vmware";
serviceConfig.ExecStart = "${open-vm-tools}/bin/vmtoolsd";
};
# 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" ];
- before = [ "vmware.service" ];
- wants = [ "vmware.service" ];
+ unitConfig.ConditionVirtualization = "vmware";
what = "${open-vm-tools}/bin/vmware-vmblock-fuse";
where = "/run/vmblock-fuse";
type = "fuse";
@@ -52,8 +53,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/third_party/nixpkgs/nixos/modules/virtualisation/waydroid.nix b/third_party/nixpkgs/nixos/modules/virtualisation/waydroid.nix
new file mode 100644
index 0000000000..4fc798ff39
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/waydroid.nix
@@ -0,0 +1,73 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.virtualisation.waydroid;
+ kernelPackages = config.boot.kernelPackages;
+ waydroidGbinderConf = pkgs.writeText "waydroid.conf" ''
+ [Protocol]
+ /dev/binder = aidl2
+ /dev/vndbinder = aidl2
+ /dev/hwbinder = hidl
+
+ [ServiceManager]
+ /dev/binder = aidl2
+ /dev/vndbinder = aidl2
+ /dev/hwbinder = hidl
+ '';
+
+in
+{
+
+ options.virtualisation.waydroid = {
+ enable = mkEnableOption "Waydroid";
+ };
+
+ config = mkIf cfg.enable {
+ assertions = singleton {
+ assertion = versionAtLeast (getVersion config.boot.kernelPackages.kernel) "4.18";
+ message = "Waydroid needs user namespace support to work properly";
+ };
+
+ system.requiredKernelConfig = with config.lib.kernelConfig; [
+ (isEnabled "ANDROID_BINDER_IPC")
+ (isEnabled "ANDROID_BINDERFS")
+ (isEnabled "ASHMEM")
+ ];
+
+ /* NOTE: we always enable this flag even if CONFIG_PSI_DEFAULT_DISABLED is not on
+ as reading the kernel config is not always possible and on kernels where it's
+ already on it will be no-op
+ */
+ boot.kernelParams = [ "psi=1" ];
+
+ environment.etc."gbinder.d/waydroid.conf".source = waydroidGbinderConf;
+
+ environment.systemPackages = with pkgs; [ waydroid ];
+
+ networking.firewall.trustedInterfaces = [ "waydroid0" ];
+
+ virtualisation.lxc.enable = true;
+
+ systemd.services.waydroid-container = {
+ description = "Waydroid Container";
+
+ wantedBy = [ "multi-user.target" ];
+
+ path = with pkgs; [ getent iptables iproute kmod nftables util-linux which ];
+
+ unitConfig = {
+ ConditionPathExists = "/var/lib/waydroid/lxc/waydroid";
+ };
+
+ serviceConfig = {
+ ExecStart = "${pkgs.waydroid}/bin/waydroid container start";
+ ExecStop = "${pkgs.waydroid}/bin/waydroid container stop";
+ ExecStopPost = "${pkgs.waydroid}/bin/waydroid session stop";
+ };
+ };
+ };
+
+}
diff --git a/third_party/nixpkgs/nixos/release.nix b/third_party/nixpkgs/nixos/release.nix
index 264d82bacc..6b7564a9b9 100644
--- a/third_party/nixpkgs/nixos/release.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/airsonic.nix b/third_party/nixpkgs/nixos/tests/airsonic.nix
index 59bd84877c..d8df092c2e 100644
--- a/third_party/nixpkgs/nixos/tests/airsonic.nix
+++ b/third_party/nixpkgs/nixos/tests/airsonic.nix
@@ -11,10 +11,6 @@ import ./make-test-python.nix ({ pkgs, ... }: {
enable = true;
maxMemory = 800;
};
-
- # Airsonic is a Java application, and unfortunately requires a significant
- # amount of memory.
- virtualisation.memorySize = 1024;
};
testScript = ''
diff --git a/third_party/nixpkgs/nixos/tests/all-tests.nix b/third_party/nixpkgs/nixos/tests/all-tests.nix
index 63c307c098..8ac3f6043d 100644
--- a/third_party/nixpkgs/nixos/tests/all-tests.nix
+++ b/third_party/nixpkgs/nixos/tests/all-tests.nix
@@ -26,17 +26,14 @@ in
agda = handleTest ./agda.nix {};
airsonic = handleTest ./airsonic.nix {};
amazon-init-shell = handleTest ./amazon-init-shell.nix {};
- ammonite = handleTest ./ammonite.nix {};
apparmor = handleTest ./apparmor.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
- awscli = handleTest ./awscli.nix { };
babeld = handleTest ./babeld.nix {};
- bat = handleTest ./bat.nix {};
bazarr = handleTest ./bazarr.nix {};
- bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
+ bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
beanstalkd = handleTest ./beanstalkd.nix {};
bees = handleTest ./bees.nix {};
bind = handleTest ./bind.nix {};
@@ -47,6 +44,7 @@ in
boot-stage1 = handleTest ./boot-stage1.nix {};
borgbackup = handleTest ./borgbackup.nix {};
botamusique = handleTest ./botamusique.nix {};
+ bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
btrbk = handleTest ./btrbk.nix {};
buildbot = handleTest ./buildbot.nix {};
buildkite-agents = handleTest ./buildkite-agents.nix {};
@@ -112,7 +110,9 @@ in
docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
documize = handleTest ./documize.nix {};
dokuwiki = handleTest ./dokuwiki.nix {};
+ domination = handleTest ./domination.nix {};
dovecot = handleTest ./dovecot.nix {};
+ drbd = handleTest ./drbd.nix {};
ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
ecryptfs = handleTest ./ecryptfs.nix {};
@@ -131,7 +131,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 {};
@@ -157,7 +156,6 @@ in
gobgpd = handleTest ./gobgpd.nix {};
gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {};
- google-cloud-sdk = handleTest ./google-cloud-sdk.nix {};
google-oslogin = handleTest ./google-oslogin {};
gotify-server = handleTest ./gotify-server.nix {};
grafana = handleTest ./grafana.nix {};
@@ -175,7 +173,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.
@@ -192,7 +192,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 {};
@@ -221,6 +221,7 @@ in
kerberos = handleTest ./kerberos/default.nix {};
kernel-generic = handleTest ./kernel-generic.nix {};
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
+ kexec = handleTest ./kexec.nix {};
keycloak = discoverTests (import ./keycloak.nix);
keymap = handleTest ./keymap.nix {};
knot = handleTest ./knot.nix {};
@@ -229,18 +230,21 @@ in
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
leaps = handleTest ./leaps.nix {};
+ libinput = handleTest ./libinput.nix {};
libreddit = handleTest ./libreddit.nix {};
- lidarr = handleTest ./lidarr.nix {};
+ libresprite = handleTest ./libresprite.nix {};
libreswan = handleTest ./libreswan.nix {};
+ lidarr = handleTest ./lidarr.nix {};
lightdm = handleTest ./lightdm.nix {};
limesurvey = handleTest ./limesurvey.nix {};
litestream = handleTest ./litestream.nix {};
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 {};
@@ -262,6 +266,7 @@ in
miniflux = handleTest ./miniflux.nix {};
minio = handleTest ./minio.nix {};
misc = handleTest ./misc.nix {};
+ mjolnir = handleTest ./matrix/mjolnir.nix {};
mod_perl = handleTest ./mod_perl.nix {};
moinmoin = handleTest ./moinmoin.nix {};
mongodb = handleTest ./mongodb.nix {};
@@ -312,8 +317,8 @@ in
nginx-sso = handleTest ./nginx-sso.nix {};
nginx-variants = handleTest ./nginx-variants.nix {};
nitter = handleTest ./nitter.nix {};
- nix-serve = handleTest ./nix-ssh-serve.nix {};
- nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
+ nix-serve = handleTest ./nix-serve.nix {};
+ nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
nixops = handleTest ./nixops/default.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
node-red = handleTest ./node-red.nix {};
@@ -340,8 +345,10 @@ in
osrm-backend = handleTest ./osrm-backend.nix {};
overlayfs = handleTest ./overlayfs.nix {};
packagekit = handleTest ./packagekit.nix {};
- pam-oath-login = handleTest ./pam-oath-login.nix {};
- pam-u2f = handleTest ./pam-u2f.nix {};
+ pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
+ pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
+ pam-u2f = handleTest ./pam/pam-u2f.nix {};
+ pantalaimon = handleTest ./matrix/pantalaimon.nix {};
pantheon = handleTest ./pantheon.nix {};
paperless-ng = handleTest ./paperless-ng.nix {};
parsedmarc = handleTest ./parsedmarc {};
@@ -355,6 +362,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 {};
@@ -371,6 +379,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 {};
@@ -388,6 +397,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 {};
@@ -402,6 +412,7 @@ in
samba-wsdd = handleTest ./samba-wsdd.nix {};
sanoid = handleTest ./sanoid.nix {};
sddm = handleTest ./sddm.nix {};
+ seafile = handleTest ./seafile.nix {};
searx = handleTest ./searx.nix {};
service-runner = handleTest ./service-runner.nix {};
shadow = handleTest ./shadow.nix {};
@@ -420,10 +431,10 @@ in
sonarr = handleTest ./sonarr.nix {};
spacecookie = handleTest ./spacecookie.nix {};
spark = handleTestOn ["x86_64-linux"] ./spark {};
- spike = handleTest ./spike.nix {};
sslh = handleTest ./sslh.nix {};
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
+ step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
sudo = handleTest ./sudo.nix {};
sway = handleTest ./sway.nix {};
@@ -437,6 +448,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 {};
@@ -453,8 +465,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 {};
@@ -466,7 +478,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 {};
@@ -479,10 +490,11 @@ in
vault-postgresql = handleTest ./vault-postgresql.nix {};
vaultwarden = handleTest ./vaultwarden.nix {};
vector = handleTest ./vector.nix {};
+ vengi-tools = handleTest ./vengi-tools.nix {};
victoriametrics = handleTest ./victoriametrics.nix {};
vikunja = handleTest ./vikunja.nix {};
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
- vscodium = handleTest ./vscodium.nix {};
+ vscodium = discoverTests (import ./vscodium.nix);
wasabibackend = handleTest ./wasabibackend.nix {};
wiki-js = handleTest ./wiki-js.nix {};
wireguard = handleTest ./wireguard {};
@@ -499,7 +511,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/third_party/nixpkgs/nixos/tests/ammonite.nix b/third_party/nixpkgs/nixos/tests/ammonite.nix
deleted file mode 100644
index 4b674f35e3..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/awscli.nix b/third_party/nixpkgs/nixos/tests/awscli.nix
deleted file mode 100644
index e6741fcf14..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/bat.nix b/third_party/nixpkgs/nixos/tests/bat.nix
deleted file mode 100644
index 0f548a590f..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/bittorrent.nix b/third_party/nixpkgs/nixos/tests/bittorrent.nix
index ee7a582922..11420cba9d 100644
--- a/third_party/nixpkgs/nixos/tests/bittorrent.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/boot.nix b/third_party/nixpkgs/nixos/tests/boot.nix
index e8440598a8..9945a1dcd6 100644
--- a/third_party/nixpkgs/nixos/tests/boot.nix
+++ b/third_party/nixpkgs/nixos/tests/boot.nix
@@ -36,7 +36,7 @@ let
machine = create_machine(${machineConfig})
machine.start()
machine.wait_for_unit("multi-user.target")
- machine.succeed("nix verify -r --no-trust /run/current-system")
+ machine.succeed("nix store verify --no-trust -r --option experimental-features nix-command /run/current-system")
with subtest("Check whether the channel got installed correctly"):
machine.succeed("nix-instantiate --dry-run '' -A hello")
diff --git a/third_party/nixpkgs/nixos/tests/bpf.nix b/third_party/nixpkgs/nixos/tests/bpf.nix
new file mode 100644
index 0000000000..233c7dab1e
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/bpf.nix
@@ -0,0 +1,25 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "bpf";
+ meta.maintainers = with pkgs.lib.maintainers; [ martinetd ];
+
+ machine = { pkgs, ... }: {
+ programs.bcc.enable = true;
+ environment.systemPackages = with pkgs; [ bpftrace ];
+ };
+
+ testScript = ''
+ ## bcc
+ # syscount -d 1 stops 1s after probe started so is good for that
+ print(machine.succeed("syscount -d 1"))
+
+ ## bpftrace
+ # list probes
+ machine.succeed("bpftrace -l")
+ # simple BEGIN probe (user probe on bpftrace itself)
+ print(machine.succeed("bpftrace -e 'BEGIN { print(\"ok\"); exit(); }'"))
+ # tracepoint
+ print(machine.succeed("bpftrace -e 'tracepoint:syscalls:sys_enter_* { print(probe); exit(); }'"))
+ # kprobe
+ print(machine.succeed("bpftrace -e 'kprobe:schedule { print(probe); exit() }'"))
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/cage.nix b/third_party/nixpkgs/nixos/tests/cage.nix
index e6bef374d3..83bae3deee 100644
--- a/third_party/nixpkgs/nixos/tests/cage.nix
+++ b/third_party/nixpkgs/nixos/tests/cage.nix
@@ -17,7 +17,6 @@ import ./make-test-python.nix ({ pkgs, ...} :
program = "${pkgs.xterm}/bin/xterm -cm -pc -fa Monospace -fs 24";
};
- virtualisation.memorySize = 1024;
# Need to switch to a different GPU driver than the default one (-vga std) so that Cage can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
diff --git a/third_party/nixpkgs/nixos/tests/cagebreak.nix b/third_party/nixpkgs/nixos/tests/cagebreak.nix
index 242e59f5d7..c6c2c632b6 100644
--- a/third_party/nixpkgs/nixos/tests/cagebreak.nix
+++ b/third_party/nixpkgs/nixos/tests/cagebreak.nix
@@ -35,7 +35,6 @@ in
programs.xwayland.enable = true;
environment.systemPackages = [ pkgs.cagebreak pkgs.wayland-utils ];
- virtualisation.memorySize = 1024;
# Need to switch to a different GPU driver than the default one (-vga std) so that Cagebreak can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
diff --git a/third_party/nixpkgs/nixos/tests/cassandra.nix b/third_party/nixpkgs/nixos/tests/cassandra.nix
index bef3105f0a..a19d525c34 100644
--- a/third_party/nixpkgs/nixos/tests/cassandra.nix
+++ b/third_party/nixpkgs/nixos/tests/cassandra.nix
@@ -41,7 +41,6 @@ let
];
};
services.cassandra = cassandraCfg ipAddress // extra;
- virtualisation.memorySize = 1024;
};
in
{
diff --git a/third_party/nixpkgs/nixos/tests/ceph-multi-node.nix b/third_party/nixpkgs/nixos/tests/ceph-multi-node.nix
index 33736e27b9..29e7c279d6 100644
--- a/third_party/nixpkgs/nixos/tests/ceph-multi-node.nix
+++ b/third_party/nixpkgs/nixos/tests/ceph-multi-node.nix
@@ -37,7 +37,6 @@ let
generateHost = { pkgs, cephConfig, networkConfig, ... }: {
virtualisation = {
- memorySize = 1024;
emptyDiskImages = [ 20480 ];
vlans = [ 1 ];
};
diff --git a/third_party/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix b/third_party/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
index f706d4d56f..acaae4cf30 100644
--- a/third_party/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
+++ b/third_party/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
@@ -34,7 +34,6 @@ let
generateHost = { pkgs, cephConfig, networkConfig, ... }: {
virtualisation = {
- memorySize = 1024;
emptyDiskImages = [ 20480 20480 20480 ];
vlans = [ 1 ];
};
diff --git a/third_party/nixpkgs/nixos/tests/ceph-single-node.nix b/third_party/nixpkgs/nixos/tests/ceph-single-node.nix
index d1d56ea670..4fe5dc59ff 100644
--- a/third_party/nixpkgs/nixos/tests/ceph-single-node.nix
+++ b/third_party/nixpkgs/nixos/tests/ceph-single-node.nix
@@ -34,7 +34,6 @@ let
generateHost = { pkgs, cephConfig, networkConfig, ... }: {
virtualisation = {
- memorySize = 1024;
emptyDiskImages = [ 20480 20480 20480 ];
vlans = [ 1 ];
};
diff --git a/third_party/nixpkgs/nixos/tests/chromium.nix b/third_party/nixpkgs/nixos/tests/chromium.nix
index ea9e19cefb..8965646bc5 100644
--- a/third_party/nixpkgs/nixos/tests/chromium.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/cifs-utils.nix b/third_party/nixpkgs/nixos/tests/cifs-utils.nix
deleted file mode 100644
index 98587b10d9..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/common/wayland-cage.nix b/third_party/nixpkgs/nixos/tests/common/wayland-cage.nix
new file mode 100644
index 0000000000..fd07009413
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/common/wayland-cage.nix
@@ -0,0 +1,13 @@
+{ ... }:
+
+{
+ imports = [ ./user-account.nix ];
+ services.cage = {
+ enable = true;
+ user = "alice";
+ };
+
+ virtualisation = {
+ qemu.options = [ "-vga virtio" ];
+ };
+}
diff --git a/third_party/nixpkgs/nixos/tests/containers-bridge.nix b/third_party/nixpkgs/nixos/tests/containers-bridge.nix
index 12fa67c8b0..b8661fd799 100644
--- a/third_party/nixpkgs/nixos/tests/containers-bridge.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-bridge.nix
@@ -15,7 +15,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;
- virtualisation.memorySize = 768;
networking.bridges = {
br0 = {
@@ -56,7 +55,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''
diff --git a/third_party/nixpkgs/nixos/tests/containers-ephemeral.nix b/third_party/nixpkgs/nixos/tests/containers-ephemeral.nix
index fabf0593f2..db1631cf5b 100644
--- a/third_party/nixpkgs/nixos/tests/containers-ephemeral.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-ephemeral.nix
@@ -5,7 +5,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
machine = { pkgs, ... }: {
- virtualisation.memorySize = 768;
virtualisation.writableStore = true;
containers.webserver = {
diff --git a/third_party/nixpkgs/nixos/tests/containers-extra_veth.nix b/third_party/nixpkgs/nixos/tests/containers-extra_veth.nix
index cbbb252583..b8f3d98440 100644
--- a/third_party/nixpkgs/nixos/tests/containers-extra_veth.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-extra_veth.nix
@@ -8,7 +8,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;
- virtualisation.memorySize = 768;
virtualisation.vlans = [];
networking.useDHCP = false;
@@ -45,7 +44,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =
diff --git a/third_party/nixpkgs/nixos/tests/containers-hosts.nix b/third_party/nixpkgs/nixos/tests/containers-hosts.nix
index 1f24ed1f3c..3c6a157100 100644
--- a/third_party/nixpkgs/nixos/tests/containers-hosts.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-hosts.nix
@@ -7,7 +7,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine =
{ lib, ... }:
{
- virtualisation.memorySize = 256;
virtualisation.vlans = [];
networking.bridges.br0.interfaces = [];
diff --git a/third_party/nixpkgs/nixos/tests/containers-imperative.nix b/third_party/nixpkgs/nixos/tests/containers-imperative.nix
index 1dcccfc306..a126a5480c 100644
--- a/third_party/nixpkgs/nixos/tests/containers-imperative.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-imperative.nix
@@ -14,10 +14,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
nix.binaryCaches = []; # don't try to access cache.nixos.org
virtualisation.writableStore = true;
- 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 +118,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/third_party/nixpkgs/nixos/tests/containers-ip.nix b/third_party/nixpkgs/nixos/tests/containers-ip.nix
index 5abea2dbad..91fdda0392 100644
--- a/third_party/nixpkgs/nixos/tests/containers-ip.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-ip.nix
@@ -22,12 +22,11 @@ in import ./make-test-python.nix ({ pkgs, lib, ... }: {
imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation = {
writableStore = true;
- memorySize = 768;
};
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/third_party/nixpkgs/nixos/tests/containers-macvlans.nix b/third_party/nixpkgs/nixos/tests/containers-macvlans.nix
index d0f41be8c1..a0cea8db4a 100644
--- a/third_party/nixpkgs/nixos/tests/containers-macvlans.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-macvlans.nix
@@ -15,7 +15,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine1 =
{ lib, ... }:
{
- virtualisation.memorySize = 256;
virtualisation.vlans = [ 1 ];
# To be able to ping containers from the host, it is necessary
@@ -55,7 +54,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine2 =
{ ... }:
{
- virtualisation.memorySize = 256;
virtualisation.vlans = [ 1 ];
};
diff --git a/third_party/nixpkgs/nixos/tests/containers-physical_interfaces.nix b/third_party/nixpkgs/nixos/tests/containers-physical_interfaces.nix
index 57bd0eedcc..e203f88786 100644
--- a/third_party/nixpkgs/nixos/tests/containers-physical_interfaces.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-physical_interfaces.nix
@@ -7,7 +7,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
nodes = {
server = { ... }:
{
- virtualisation.memorySize = 256;
virtualisation.vlans = [ 1 ];
containers.server = {
@@ -23,7 +22,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
bridged = { ... }: {
- virtualisation.memorySize = 128;
virtualisation.vlans = [ 1 ];
containers.bridged = {
@@ -41,7 +39,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
bonded = { ... }: {
- virtualisation.memorySize = 128;
virtualisation.vlans = [ 1 ];
containers.bonded = {
@@ -62,7 +59,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
bridgedbond = { ... }: {
- virtualisation.memorySize = 128;
virtualisation.vlans = [ 1 ];
containers.bridgedbond = {
diff --git a/third_party/nixpkgs/nixos/tests/containers-portforward.nix b/third_party/nixpkgs/nixos/tests/containers-portforward.nix
index 221a6f50ef..6cecd72f1b 100644
--- a/third_party/nixpkgs/nixos/tests/containers-portforward.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-portforward.nix
@@ -15,7 +15,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;
- virtualisation.memorySize = 768;
containers.webserver =
{ privateNetwork = true;
@@ -29,7 +28,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =
diff --git a/third_party/nixpkgs/nixos/tests/containers-tmpfs.nix b/third_party/nixpkgs/nixos/tests/containers-tmpfs.nix
index fd9f9a252c..d95178d1ff 100644
--- a/third_party/nixpkgs/nixos/tests/containers-tmpfs.nix
+++ b/third_party/nixpkgs/nixos/tests/containers-tmpfs.nix
@@ -8,7 +8,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;
- virtualisation.memorySize = 768;
containers.tmpfs =
{
@@ -26,7 +25,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
config = { };
};
- virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''
diff --git a/third_party/nixpkgs/nixos/tests/croc.nix b/third_party/nixpkgs/nixos/tests/croc.nix
index 75a8fc991d..5d709eb3d1 100644
--- a/third_party/nixpkgs/nixos/tests/croc.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/custom-ca.nix b/third_party/nixpkgs/nixos/tests/custom-ca.nix
index 05cfbbb2fd..a55449a397 100644
--- a/third_party/nixpkgs/nixos/tests/custom-ca.nix
+++ b/third_party/nixpkgs/nixos/tests/custom-ca.nix
@@ -81,8 +81,9 @@ in
# chromium-based browsers refuse to run as root
test-support.displayManager.auto.user = "alice";
+
# browsers may hang with the default memory
- virtualisation.memorySize = 500;
+ virtualisation.memorySize = 600;
networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
@@ -109,9 +110,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 +152,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"
@@ -166,7 +163,7 @@ in
browser = command.split()[0]
with subtest("Good certificate is trusted in " + browser):
execute_as(
- "alice", f"env P11_KIT_DEBUG=trust {command} https://good.example.com & >&2"
+ "alice", f"{command} https://good.example.com >&2 &"
)
wait_for_window_as("alice", browser)
machine.wait_for_text("It works!")
@@ -174,9 +171,9 @@ in
execute_as("alice", "xdotool key ctrl+w") # close tab
with subtest("Unknown CA is untrusted in " + browser):
- execute_as("alice", f"{command} https://bad.example.com & >&2")
+ execute_as("alice", f"{command} https://bad.example.com >&2 &")
machine.wait_for_text(error)
machine.screenshot("bad" + browser)
- machine.succeed("pkill " + browser)
+ machine.succeed("pkill -f " + browser)
'';
})
diff --git a/third_party/nixpkgs/nixos/tests/deluge.nix b/third_party/nixpkgs/nixos/tests/deluge.nix
index f673ec2db5..33c57ce7c3 100644
--- a/third_party/nixpkgs/nixos/tests/deluge.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/discourse.nix b/third_party/nixpkgs/nixos/tests/discourse.nix
index 7dd39085a0..cfac5f84a6 100644
--- a/third_party/nixpkgs/nixos/tests/discourse.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/doas.nix b/third_party/nixpkgs/nixos/tests/doas.nix
index 5e9ce4b2c7..7f038b2bee 100644
--- a/third_party/nixpkgs/nixos/tests/doas.nix
+++ b/third_party/nixpkgs/nixos/tests/doas.nix
@@ -85,6 +85,14 @@ import ./make-test-python.nix (
# ../../pkgs/tools/security/doas/0001-add-NixOS-specific-dirs-to-safe-PATH.patch
with subtest("recursive calls to doas from subprocesses should succeed"):
machine.succeed('doas -u test0 sh -c "doas -u test0 true"')
+
+ with subtest("test0 should inherit TERMINFO_DIRS from the user environment"):
+ dirs = machine.succeed(
+ "su - test0 -c 'doas -u root $SHELL -c \"echo \$TERMINFO_DIRS\"'"
+ )
+
+ if not "test0" in dirs:
+ raise Exception(f"user profile TERMINFO_DIRS is not preserved: {dirs}")
'';
}
)
diff --git a/third_party/nixpkgs/nixos/tests/docker-tools.nix b/third_party/nixpkgs/nixos/tests/docker-tools.nix
index 7110187e8d..19ebed3ebd 100644
--- a/third_party/nixpkgs/nixos/tests/docker-tools.nix
+++ b/third_party/nixpkgs/nixos/tests/docker-tools.nix
@@ -276,15 +276,22 @@ import ./make-test-python.nix ({ pkgs, ... }: {
# Ensure the image has the correct number of layers
assert len(set_of_layers("layered-bulk-layer")) == 4
- with subtest("Ensure correct behavior when no store is needed"):
+ with subtest("Ensure only minimal paths are added to the store"):
+ # TODO: make an example that has no store paths, for example by making
+ # busybox non-self-referential.
+
# This check tests that buildLayeredImage can build images that don't need a store.
docker.succeed(
"docker load --input='${pkgs.dockerTools.examples.no-store-paths}'"
)
- # This check may be loosened to allow an *empty* store rather than *no* store.
- docker.succeed("docker run --rm no-store-paths ls /")
- docker.fail("docker run --rm no-store-paths ls /nix/store")
+ docker.succeed("docker run --rm no-store-paths ls / >/dev/console")
+
+ # If busybox isn't self-referential, we need this line
+ # docker.fail("docker run --rm no-store-paths ls /nix/store >/dev/console")
+ # However, it currently is self-referential, so we check that it is the
+ # only store path.
+ docker.succeed("diff <(docker run --rm no-store-paths ls /nix/store) <(basename ${pkgs.pkgsStatic.busybox}) >/dev/console")
with subtest("Ensure buildLayeredImage does not change store path contents."):
docker.succeed(
@@ -379,11 +386,21 @@ import ./make-test-python.nix ({ pkgs, ... }: {
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
)
+ with subtest("The image contains store paths referenced by the fakeRootCommands output"):
+ docker.succeed(
+ "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} /hello/bin/layeredImageWithFakeRootCommands-hello"
+ )
+
with subtest("exportImage produces a valid tarball"):
docker.succeed(
"tar -tf ${examples.exportBash} | grep '\./bin/bash' > /dev/null"
)
+ with subtest("layered image fakeRootCommands with fakechroot works"):
+ docker.succeed("${examples.imageViaFakeChroot} | docker load")
+ docker.succeed("docker run --rm image-via-fake-chroot | grep -i hello")
+ docker.succeed("docker image rm image-via-fake-chroot:latest")
+
with subtest("Ensure bare paths in contents are loaded correctly"):
docker.succeed(
"docker load --input='${examples.build-image-with-path}'",
diff --git a/third_party/nixpkgs/nixos/tests/domination.nix b/third_party/nixpkgs/nixos/tests/domination.nix
new file mode 100644
index 0000000000..c76d4ed8c6
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/domination.nix
@@ -0,0 +1,26 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "domination";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ fgaz ];
+ };
+
+ machine = { config, pkgs, ... }: {
+ imports = [
+ ./common/x11.nix
+ ];
+
+ services.xserver.enable = true;
+ environment.systemPackages = [ pkgs.domination ];
+ };
+
+ enableOCR = true;
+
+ testScript =
+ ''
+ machine.wait_for_x()
+ machine.execute("domination >&2 &")
+ machine.wait_for_window("Menu")
+ machine.wait_for_text("New Game")
+ machine.screenshot("screen")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/drbd.nix b/third_party/nixpkgs/nixos/tests/drbd.nix
new file mode 100644
index 0000000000..bede7206d7
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/drbd.nix
@@ -0,0 +1,87 @@
+import ./make-test-python.nix (
+ { pkgs, lib, ... }:
+ let
+ drbdPort = 7789;
+
+ drbdConfig =
+ { nodes, ... }:
+ {
+ virtualisation.emptyDiskImages = [ 1 ];
+ networking.firewall.allowedTCPPorts = [ drbdPort ];
+
+ services.drbd = {
+ enable = true;
+ config = ''
+ global {
+ usage-count yes;
+ }
+
+ common {
+ net {
+ protocol C;
+ ping-int 1;
+ }
+ }
+
+ resource r0 {
+ volume 0 {
+ device /dev/drbd0;
+ disk /dev/vdb;
+ meta-disk internal;
+ }
+
+ on drbd1 {
+ address ${nodes.drbd1.config.networking.primaryIPAddress}:${toString drbdPort};
+ }
+
+ on drbd2 {
+ address ${nodes.drbd2.config.networking.primaryIPAddress}:${toString drbdPort};
+ }
+ }
+ '';
+ };
+ };
+ in
+ {
+ name = "drbd";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ ryantm astro ];
+ };
+
+ nodes.drbd1 = drbdConfig;
+ nodes.drbd2 = drbdConfig;
+
+ testScript = { nodes }: ''
+ drbd1.start()
+ drbd2.start()
+
+ drbd1.wait_for_unit("network.target")
+ drbd2.wait_for_unit("network.target")
+
+ drbd1.succeed(
+ "drbdadm create-md r0",
+ "drbdadm up r0",
+ "drbdadm primary r0 --force",
+ )
+
+ drbd2.succeed("drbdadm create-md r0", "drbdadm up r0")
+
+ drbd1.succeed(
+ "mkfs.ext4 /dev/drbd0",
+ "mkdir -p /mnt/drbd",
+ "mount /dev/drbd0 /mnt/drbd",
+ "touch /mnt/drbd/hello",
+ "umount /mnt/drbd",
+ "drbdadm secondary r0",
+ )
+ drbd1.sleep(1)
+
+ drbd2.succeed(
+ "drbdadm primary r0",
+ "mkdir -p /mnt/drbd",
+ "mount /dev/drbd0 /mnt/drbd",
+ "ls /mnt/drbd/hello",
+ )
+ '';
+ }
+)
diff --git a/third_party/nixpkgs/nixos/tests/elk.nix b/third_party/nixpkgs/nixos/tests/elk.nix
index 2a1a4cba29..ae746d7e1f 100644
--- a/third_party/nixpkgs/nixos/tests/elk.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/emacs-daemon.nix b/third_party/nixpkgs/nixos/tests/emacs-daemon.nix
index 58bcd09599..e12da56021 100644
--- a/third_party/nixpkgs/nixos/tests/emacs-daemon.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/enlightenment.nix b/third_party/nixpkgs/nixos/tests/enlightenment.nix
index 4623574ce9..8506c34824 100644
--- a/third_party/nixpkgs/nixos/tests/enlightenment.nix
+++ b/third_party/nixpkgs/nixos/tests/enlightenment.nix
@@ -19,7 +19,6 @@ import ./make-test-python.nix ({ pkgs, ...} :
};
};
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
- virtualisation.memorySize = 1024;
environment.systemPackages = [ pkgs.xdotool ];
services.acpid.enable = true;
services.connman.enable = true;
@@ -88,7 +87,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/third_party/nixpkgs/nixos/tests/etesync-dav.nix b/third_party/nixpkgs/nixos/tests/etesync-dav.nix
index da5c056f53..6a747e23f7 100644
--- a/third_party/nixpkgs/nixos/tests/etesync-dav.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/fcitx/default.nix b/third_party/nixpkgs/nixos/tests/fcitx/default.nix
index cbeb95d33b..a243be8dc1 100644
--- a/third_party/nixpkgs/nixos/tests/fcitx/default.nix
+++ b/third_party/nixpkgs/nixos/tests/fcitx/default.nix
@@ -11,7 +11,6 @@ import ../make-test-python.nix (
...
}:
{
- virtualisation.memorySize = 1024;
imports = [
../common/user-account.nix
diff --git a/third_party/nixpkgs/nixos/tests/fenics.nix b/third_party/nixpkgs/nixos/tests/fenics.nix
index 56f09d6a27..f0a8c32c7c 100644
--- a/third_party/nixpkgs/nixos/tests/fenics.nix
+++ b/third_party/nixpkgs/nixos/tests/fenics.nix
@@ -38,7 +38,6 @@ in
gcc
(python3.withPackages (ps: with ps; [ fenics ]))
];
- virtualisation.memorySize = 512;
};
};
testScript =
diff --git a/third_party/nixpkgs/nixos/tests/firefox.nix b/third_party/nixpkgs/nixos/tests/firefox.nix
index dcaf369b62..6101fc9735 100644
--- a/third_party/nixpkgs/nixos/tests/firefox.nix
+++ b/third_party/nixpkgs/nixos/tests/firefox.nix
@@ -13,9 +13,6 @@ import ./make-test-python.nix ({ pkgs, firefoxPackage, ... }: {
pkgs.xdotool
];
- # Need some more memory to record audio.
- virtualisation.memorySize = 500;
-
# Create a virtual sound device, with mixing
# and all, for recording audio.
boot.kernelModules = [ "snd-aloop" ];
@@ -91,7 +88,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 +96,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/third_party/nixpkgs/nixos/tests/ft2-clone.nix b/third_party/nixpkgs/nixos/tests/ft2-clone.nix
index c877054234..71eda43e2b 100644
--- a/third_party/nixpkgs/nixos/tests/ft2-clone.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/gerrit.nix b/third_party/nixpkgs/nixos/tests/gerrit.nix
index b6b6486fae..8ae9e89cf6 100644
--- a/third_party/nixpkgs/nixos/tests/gerrit.nix
+++ b/third_party/nixpkgs/nixos/tests/gerrit.nix
@@ -18,7 +18,6 @@ in {
{ config, pkgs, ... }: {
networking.firewall.allowedTCPPorts = [ 80 2222 ];
- virtualisation.memorySize = 1024;
services.gerrit = {
enable = true;
diff --git a/third_party/nixpkgs/nixos/tests/ghostunnel.nix b/third_party/nixpkgs/nixos/tests/ghostunnel.nix
index a82cff8082..8bea648540 100644
--- a/third_party/nixpkgs/nixos/tests/ghostunnel.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/gitlab.nix b/third_party/nixpkgs/nixos/tests/gitlab.nix
index 3e9feeb076..dc3b889c8e 100644
--- a/third_party/nixpkgs/nixos/tests/gitlab.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/gnome-xorg.nix b/third_party/nixpkgs/nixos/tests/gnome-xorg.nix
index b9ff5e6828..6264b87af4 100644
--- a/third_party/nixpkgs/nixos/tests/gnome-xorg.nix
+++ b/third_party/nixpkgs/nixos/tests/gnome-xorg.nix
@@ -40,7 +40,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
};
};
- virtualisation.memorySize = 1024;
};
testScript = { nodes, ... }: let
diff --git a/third_party/nixpkgs/nixos/tests/gnome.nix b/third_party/nixpkgs/nixos/tests/gnome.nix
index 1da97f733c..06f387ecad 100644
--- a/third_party/nixpkgs/nixos/tests/gnome.nix
+++ b/third_party/nixpkgs/nixos/tests/gnome.nix
@@ -45,7 +45,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
};
};
- virtualisation.memorySize = 1024;
};
testScript = { nodes, ... }: let
diff --git a/third_party/nixpkgs/nixos/tests/google-cloud-sdk.nix b/third_party/nixpkgs/nixos/tests/google-cloud-sdk.nix
deleted file mode 100644
index 3150b2d53c..0000000000
--- a/third_party/nixpkgs/nixos/tests/google-cloud-sdk.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
- name = "google-cloud-sdk";
- meta = with pkgs.lib.maintainers; { maintainers = [ iammrinal0 ]; };
-
- machine = { pkgs, ... }: {
- environment.systemPackages = [ pkgs.google-cloud-sdk ];
- };
-
- testScript = ''
- import json
- assert "${pkgs.google-cloud-sdk.version}" in json.loads(machine.succeed("gcloud version --format json"))["Google Cloud SDK"]
- '';
-})
diff --git a/third_party/nixpkgs/nixos/tests/graphite.nix b/third_party/nixpkgs/nixos/tests/graphite.nix
index 137be2d89c..496f16846e 100644
--- a/third_party/nixpkgs/nixos/tests/graphite.nix
+++ b/third_party/nixpkgs/nixos/tests/graphite.nix
@@ -4,7 +4,6 @@ import ./make-test-python.nix ({ pkgs, ... } :
nodes = {
one =
{ ... }: {
- virtualisation.memorySize = 1024;
time.timeZone = "UTC";
services.graphite = {
web = {
diff --git a/third_party/nixpkgs/nixos/tests/hadoop/hadoop.nix b/third_party/nixpkgs/nixos/tests/hadoop/hadoop.nix
index 46dfac26e0..48737debab 100644
--- a/third_party/nixpkgs/nixos/tests/hadoop/hadoop.nix
+++ b/third_party/nixpkgs/nixos/tests/hadoop/hadoop.nix
@@ -1,70 +1,228 @@
+# 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://master";
+ "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 {
- master = {pkgs, options, ...}: {
- services.hadoop = {
- inherit package coreSite;
- hdfs.namenode.enabled = true;
- yarn.resourcemanager.enabled = true;
- };
- virtualisation.memorySize = 1024;
+ zk1 = { ... }: {
+ services.zookeeper.enable = true;
+ networking.firewall.allowedTCPPorts = [ 2181 ];
};
- worker = {pkgs, options, ...}: {
+ # HDFS cluster
+ nn1 = {pkgs, options, ...}: {
services.hadoop = {
- inherit package coreSite;
- hdfs.datanode.enabled = true;
- yarn.nodemanager.enabled = true;
- yarnSite = options.services.hadoop.yarnSite.default // {
- "yarn.resourcemanager.hostname" = "master";
- };
+ 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, ...}: {
+ services.hadoop = {
+ inherit package coreSite hdfsSite;
+ yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+ yarn.resourcemanager.enable = true;
+ };
+ };
+ rm2 = {pkgs, options, ...}: {
+ 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()
- master.wait_for_unit("network.target")
- master.wait_for_unit("hdfs-namenode")
+ #### HDFS tests ####
- master.wait_for_open_port(8020)
- master.wait_for_open_port(9870)
+ 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")
- worker.wait_for_unit("network.target")
- worker.wait_for_unit("hdfs-datanode")
- worker.wait_for_open_port(9864)
- worker.wait_for_open_port(9866)
- worker.wait_for_open_port(9867)
+ zk1.wait_for_unit("zookeeper")
+ jn1.wait_for_unit("hdfs-journalnode")
+ jn2.wait_for_unit("hdfs-journalnode")
+ jn3.wait_for_unit("hdfs-journalnode")
- master.succeed("curl -f http://worker:9864")
- worker.succeed("curl -f http://master:9870")
+ 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)
- worker.succeed("sudo -u hdfs hdfs dfsadmin -safemode wait")
+ # 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")
- master.wait_for_unit("yarn-resourcemanager")
+ # Initialize zookeeper for failover controller
+ nn1.succeed("sudo -u hdfs hdfs zkfc -formatZK 2>&1 | systemd-cat")
- master.wait_for_open_port(8030)
- master.wait_for_open_port(8031)
- master.wait_for_open_port(8032)
- master.wait_for_open_port(8088)
- worker.succeed("curl -f http://master:8088")
+ # 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)
- worker.wait_for_unit("yarn-nodemanager")
- worker.wait_for_open_port(8042)
- worker.wait_for_open_port(8040)
- master.succeed("curl -f http://worker:8042")
+ # 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")
- assert "Total Nodes:1" in worker.succeed("yarn node -list")
+ # Start failover controllers
+ nn1.succeed("systemctl start hdfs-zkfc")
+ nn2.succeed("systemctl start hdfs-zkfc")
- assert "Estimated value of Pi is" in worker.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 worker.succeed("yarn application -list -appStates FINISHED")
- worker.succeed("sudo -u hdfs hdfs dfs -ls / | systemd-cat")
+ # 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/third_party/nixpkgs/nixos/tests/hadoop/hdfs.nix b/third_party/nixpkgs/nixos/tests/hadoop/hdfs.nix
index f5907185c0..b63cbf4803 100644
--- a/third_party/nixpkgs/nixos/tests/hadoop/hdfs.nix
+++ b/third_party/nixpkgs/nixos/tests/hadoop/hdfs.nix
@@ -1,36 +1,33 @@
+# Test a minimal HDFS cluster with no HA
import ../make-test-python.nix ({...}: {
nodes = {
namenode = {pkgs, ...}: {
services.hadoop = {
package = pkgs.hadoop;
- hdfs.namenode.enabled = true;
+ 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;
- hdfs.datanode.enabled = true;
+ 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 +47,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/third_party/nixpkgs/nixos/tests/hadoop/yarn.nix b/third_party/nixpkgs/nixos/tests/hadoop/yarn.nix
index fbbb293eec..09bdb35791 100644
--- a/third_party/nixpkgs/nixos/tests/hadoop/yarn.nix
+++ b/third_party/nixpkgs/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;
- services.hadoop.yarn.resourcemanager.enabled = true;
+ 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;
- services.hadoop.yarn.nodemanager.enabled = true;
+ 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/third_party/nixpkgs/nixos/tests/handbrake.nix b/third_party/nixpkgs/nixos/tests/handbrake.nix
index c92fb5db7d..d2d41b372b 100644
--- a/third_party/nixpkgs/nixos/tests/handbrake.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/hibernate.nix b/third_party/nixpkgs/nixos/tests/hibernate.nix
index f0d5da4a95..4f05b99a5a 100644
--- a/third_party/nixpkgs/nixos/tests/hibernate.nix
+++ b/third_party/nixpkgs/nixos/tests/hibernate.nix
@@ -95,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()
@@ -110,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/third_party/nixpkgs/nixos/tests/home-assistant.nix b/third_party/nixpkgs/nixos/tests/home-assistant.nix
index 0894736bac..1ab5755863 100644
--- a/third_party/nixpkgs/nixos/tests/home-assistant.nix
+++ b/third_party/nixpkgs/nixos/tests/home-assistant.nix
@@ -24,6 +24,11 @@ in {
services.home-assistant = {
inherit configDir;
enable = true;
+ package = (pkgs.home-assistant.override {
+ extraComponents = [ "zha" ];
+ }).overrideAttrs (oldAttrs: {
+ doInstallCheck = false;
+ });
config = {
homeassistant = {
name = "Home";
@@ -87,6 +92,8 @@ in {
with subtest("Check that capabilities are passed for emulated_hue to bind to port 80"):
hass.wait_for_open_port(80)
hass.succeed("curl --fail http://localhost:80/description.xml")
+ with subtest("Check extra components are considered in systemd unit hardening"):
+ hass.succeed("systemctl show -p DeviceAllow home-assistant.service | grep -q char-ttyUSB")
with subtest("Print log to ease debugging"):
output_log = hass.succeed("cat ${configDir}/home-assistant.log")
print("\n### home-assistant.log ###\n")
diff --git a/third_party/nixpkgs/nixos/tests/ihatemoney.nix b/third_party/nixpkgs/nixos/tests/ihatemoney/default.nix
similarity index 52%
rename from third_party/nixpkgs/nixos/tests/ihatemoney.nix
rename to third_party/nixpkgs/nixos/tests/ihatemoney/default.nix
index 0451a45058..78278d2e86 100644
--- a/third_party/nixpkgs/nixos/tests/ihatemoney.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/ihatemoney/rates.json b/third_party/nixpkgs/nixos/tests/ihatemoney/rates.json
new file mode 100644
index 0000000000..ebdd2651b0
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/ihatemoney/server.crt b/third_party/nixpkgs/nixos/tests/ihatemoney/server.crt
new file mode 100644
index 0000000000..10e568b14b
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/ihatemoney/server.key b/third_party/nixpkgs/nixos/tests/ihatemoney/server.key
new file mode 100644
index 0000000000..72a43577d6
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/installed-tests/default.nix b/third_party/nixpkgs/nixos/tests/installed-tests/default.nix
index 6c2846a163..08785e5e66 100644
--- a/third_party/nixpkgs/nixos/tests/installed-tests/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/installed-tests/fwupd.nix b/third_party/nixpkgs/nixos/tests/installed-tests/fwupd.nix
index a8a683a1af..65614e2689 100644
--- a/third_party/nixpkgs/nixos/tests/installed-tests/fwupd.nix
+++ b/third_party/nixpkgs/nixos/tests/installed-tests/fwupd.nix
@@ -7,6 +7,5 @@ makeInstalledTest {
services.fwupd.enable = true;
services.fwupd.disabledPlugins = lib.mkForce []; # don't disable test plugin
services.fwupd.enableTestRemote = true;
- virtualisation.memorySize = 768;
};
}
diff --git a/third_party/nixpkgs/nixos/tests/installed-tests/power-profiles-daemon.nix b/third_party/nixpkgs/nixos/tests/installed-tests/power-profiles-daemon.nix
new file mode 100644
index 0000000000..43629a0155
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/installer.nix b/third_party/nixpkgs/nixos/tests/installer.nix
index 48f0f59342..bc41b6efc2 100644
--- a/third_party/nixpkgs/nixos/tests/installer.nix
+++ b/third_party/nixpkgs/nixos/tests/installer.nix
@@ -70,7 +70,7 @@ let
let iface = if grubVersion == 1 then "ide" else "virtio";
isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi);
bios = if pkgs.stdenv.isAarch64 then "QEMU_EFI.fd" else "OVMF.fd";
- in if !isEfi && !(pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) then
+ in if !isEfi && !pkgs.stdenv.hostPlatform.isx86 then
throw "Non-EFI boot methods are only supported on i686 / x86_64"
else ''
def assemble_qemu_flags():
@@ -184,11 +184,12 @@ let
with subtest("Check whether nixos-rebuild works"):
machine.succeed("nixos-rebuild switch >&2")
- with subtest("Test nixos-option"):
- kernel_modules = machine.succeed("nixos-option boot.initrd.kernelModules")
- assert "virtio_console" in kernel_modules
- assert "List of modules" in kernel_modules
- assert "qemu-guest.nix" in kernel_modules
+ # FIXME: Nix 2.4 broke nixos-option, someone has to fix it.
+ # with subtest("Test nixos-option"):
+ # kernel_modules = machine.succeed("nixos-option boot.initrd.kernelModules")
+ # assert "virtio_console" in kernel_modules
+ # assert "List of modules" in kernel_modules
+ # assert "qemu-guest.nix" in kernel_modules
machine.shutdown()
@@ -353,8 +354,8 @@ let
createPartitions = ''
machine.succeed(
"flock /dev/vda parted --script /dev/vda -- mklabel msdos"
- + " mkpart primary ext2 1M 50MB" # /boot
- + " mkpart primary linux-swap 50M 1024M"
+ + " mkpart primary ext2 1M 100MB" # /boot
+ + " mkpart primary linux-swap 100M 1024M"
+ " mkpart primary 1024M -1s", # LUKS
"udevadm settle",
"mkswap /dev/vda2 -L swap",
@@ -455,9 +456,9 @@ in {
createPartitions = ''
machine.succeed(
"flock /dev/vda parted --script /dev/vda -- mklabel gpt"
- + " mkpart ESP fat32 1M 50MiB" # /boot
+ + " mkpart ESP fat32 1M 100MiB" # /boot
+ " set 1 boot on"
- + " mkpart primary linux-swap 50MiB 1024MiB"
+ + " mkpart primary linux-swap 100MiB 1024MiB"
+ " mkpart primary ext2 1024MiB -1MiB", # /
"udevadm settle",
"mkswap /dev/vda2 -L swap",
@@ -482,8 +483,8 @@ in {
createPartitions = ''
machine.succeed(
"flock /dev/vda parted --script /dev/vda -- mklabel msdos"
- + " mkpart primary ext2 1M 50MB" # /boot
- + " mkpart primary linux-swap 50MB 1024M"
+ + " mkpart primary ext2 1M 100MB" # /boot
+ + " mkpart primary linux-swap 100MB 1024M"
+ " mkpart primary ext2 1024M -1s", # /
"udevadm settle",
"mkswap /dev/vda2 -L swap",
@@ -502,8 +503,8 @@ in {
createPartitions = ''
machine.succeed(
"flock /dev/vda parted --script /dev/vda -- mklabel msdos"
- + " mkpart primary ext2 1M 50MB" # /boot
- + " mkpart primary linux-swap 50MB 1024M"
+ + " mkpart primary ext2 1M 100MB" # /boot
+ + " mkpart primary linux-swap 100MB 1024M"
+ " mkpart primary ext2 1024M -1s", # /
"udevadm settle",
"mkswap /dev/vda2 -L swap",
@@ -598,8 +599,8 @@ in {
createPartitions = ''
machine.succeed(
"flock /dev/vda parted --script /dev/vda -- mklabel msdos"
- + " mkpart primary ext2 1M 50MB" # /boot
- + " mkpart primary linux-swap 50M 1024M"
+ + " mkpart primary ext2 1M 100MB" # /boot
+ + " mkpart primary linux-swap 100M 1024M"
+ " mkpart primary 1024M 1280M" # LUKS with keyfile
+ " mkpart primary 1280M -1s",
"udevadm settle",
@@ -673,8 +674,8 @@ in {
machine.succeed(
"flock /dev/vda parted --script /dev/vda --"
+ " mklabel msdos"
- + " mkpart primary ext2 1M 50MB" # /boot
- + " mkpart primary 50MB 512MB " # swap
+ + " mkpart primary ext2 1M 100MB" # /boot
+ + " mkpart primary 100MB 512MB " # swap
+ " mkpart primary 512MB 1024MB" # Cache (typically SSD)
+ " mkpart primary 1024MB -1s ", # Backing device (typically HDD)
"modprobe bcache",
diff --git a/third_party/nixpkgs/nixos/tests/invidious.nix b/third_party/nixpkgs/nixos/tests/invidious.nix
new file mode 100644
index 0000000000..8b831715a4
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/jitsi-meet.nix b/third_party/nixpkgs/nixos/tests/jitsi-meet.nix
index f9a0b121a2..d95f7c2ea9 100644
--- a/third_party/nixpkgs/nixos/tests/jitsi-meet.nix
+++ b/third_party/nixpkgs/nixos/tests/jitsi-meet.nix
@@ -8,7 +8,6 @@ import ./make-test-python.nix ({ pkgs, ... }: {
client = { nodes, pkgs, ... }: {
};
server = { config, pkgs, ... }: {
- virtualisation.memorySize = 512;
services.jitsi-meet = {
enable = true;
hostName = "server";
diff --git a/third_party/nixpkgs/nixos/tests/kafka.nix b/third_party/nixpkgs/nixos/tests/kafka.nix
index 95711808a2..5def759ca2 100644
--- a/third_party/nixpkgs/nixos/tests/kafka.nix
+++ b/third_party/nixpkgs/nixos/tests/kafka.nix
@@ -19,7 +19,6 @@ let
};
networking.firewall.allowedTCPPorts = [ 2181 ];
- virtualisation.memorySize = 1024;
};
kafka = { ... }: {
services.apache-kafka = {
diff --git a/third_party/nixpkgs/nixos/tests/keepassxc.nix b/third_party/nixpkgs/nixos/tests/keepassxc.nix
index 98902187f6..685a200b31 100644
--- a/third_party/nixpkgs/nixos/tests/keepassxc.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/kernel-generic.nix b/third_party/nixpkgs/nixos/tests/kernel-generic.nix
index 192dc810d7..45c5c1963a 100644
--- a/third_party/nixpkgs/nixos/tests/kernel-generic.nix
+++ b/third_party/nixpkgs/nixos/tests/kernel-generic.nix
@@ -23,22 +23,15 @@ 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
+ 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_5_15_hardened
- linuxPackages_4_14_hardened
- linuxPackages_4_19_hardened
- linuxPackages_5_4_hardened
- linuxPackages_5_10_hardened
-
- linuxPackages_testing;
+ linux_testing;
};
in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
diff --git a/third_party/nixpkgs/nixos/tests/kexec.nix b/third_party/nixpkgs/nixos/tests/kexec.nix
index ec0cd9796b..010f3da498 100644
--- a/third_party/nixpkgs/nixos/tests/kexec.nix
+++ b/third_party/nixpkgs/nixos/tests/kexec.nix
@@ -4,12 +4,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
name = "kexec";
meta = with lib.maintainers; {
maintainers = [ eelco ];
- # Currently hangs forever; last output is:
- # machine # [ 10.239914] dhcpcd[707]: eth0: adding default route via fe80::2
- # machine: waiting for the VM to finish booting
- # machine # Cannot find the ESP partition mount point.
- # machine # [ 28.681197] nscd[692]: 692 checking for monitored file `/etc/netgroup': No such file or directory
- broken = true;
};
machine = { ... }:
@@ -18,8 +12,11 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
testScript =
''
machine.wait_for_unit("multi-user.target")
- machine.execute("systemctl kexec &")
+ machine.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(&2 &", check_return=False)
machine.connected = False
+ machine.connect()
machine.wait_for_unit("multi-user.target")
+ machine.shutdown()
'';
})
diff --git a/third_party/nixpkgs/nixos/tests/keycloak.nix b/third_party/nixpkgs/nixos/tests/keycloak.nix
index fc321b8902..1be3fed6ac 100644
--- a/third_party/nixpkgs/nixos/tests/keycloak.nix
+++ b/third_party/nixpkgs/nixos/tests/keycloak.nix
@@ -17,7 +17,6 @@ let
nodes = {
keycloak = { ... }: {
- virtualisation.memorySize = 1024;
security.pki.certificateFiles = [
certs.ca.cert
diff --git a/third_party/nixpkgs/nixos/tests/keymap.nix b/third_party/nixpkgs/nixos/tests/keymap.nix
index a18a05f90c..4306a9ae2c 100644
--- a/third_party/nixpkgs/nixos/tests/keymap.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/knot.nix b/third_party/nixpkgs/nixos/tests/knot.nix
index 22279292f7..203fd03fac 100644
--- a/third_party/nixpkgs/nixos/tests/knot.nix
+++ b/third_party/nixpkgs/nixos/tests/knot.nix
@@ -45,6 +45,10 @@ in {
nodes = {
master = { lib, ... }: {
imports = [ common ];
+
+ # trigger sched_setaffinity syscall
+ virtualisation.cores = 2;
+
networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [
{ address = "192.168.0.1"; prefixLength = 24; }
@@ -206,5 +210,7 @@ in {
test(host, "RRSIG", "www.example.com", r"RR set signature is")
test(host, "DNSKEY", "example.com", r"DNSSEC key is")
+
+ master.log(master.succeed("systemd-analyze security knot.service | grep -v '✓'"))
'';
})
diff --git a/third_party/nixpkgs/nixos/tests/libinput.nix b/third_party/nixpkgs/nixos/tests/libinput.nix
new file mode 100644
index 0000000000..2f84aaadcd
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/libinput.nix
@@ -0,0 +1,38 @@
+import ./make-test-python.nix ({ ... }:
+
+{
+ name = "libinput";
+
+ machine = { ... }:
+ {
+ imports = [
+ ./common/x11.nix
+ ./common/user-account.nix
+ ];
+
+ test-support.displayManager.auto.user = "alice";
+
+ services.xserver.libinput = {
+ enable = true;
+ mouse = {
+ naturalScrolling = true;
+ leftHanded = true;
+ middleEmulation = false;
+ horizontalScrolling = false;
+ };
+ };
+ };
+
+ testScript = ''
+ def expect_xserver_option(option, value):
+ machine.succeed(f"""cat /var/log/X.0.log | grep -F 'Option "{option}" "{value}"'""")
+
+ machine.start()
+ machine.wait_for_x()
+ machine.succeed("""cat /var/log/X.0.log | grep -F "Using input driver 'libinput'" """)
+ expect_xserver_option("NaturalScrolling", "on")
+ expect_xserver_option("LeftHanded", "on")
+ expect_xserver_option("MiddleEmulation", "off")
+ expect_xserver_option("HorizontalScrolling", "off")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/libresprite.nix b/third_party/nixpkgs/nixos/tests/libresprite.nix
new file mode 100644
index 0000000000..1a6210e367
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/libresprite.nix
@@ -0,0 +1,30 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "libresprite";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ fgaz ];
+ };
+
+ machine = { config, pkgs, ... }: {
+ imports = [
+ ./common/x11.nix
+ ];
+
+ services.xserver.enable = true;
+ environment.systemPackages = [
+ pkgs.imagemagick
+ pkgs.libresprite
+ ];
+ };
+
+ enableOCR = true;
+
+ testScript =
+ ''
+ machine.wait_for_x()
+ machine.succeed("convert -font DejaVu-Sans +antialias label:'IT WORKS' image.png")
+ machine.execute("libresprite image.png >&2 &")
+ machine.wait_for_window("LibreSprite v${pkgs.libresprite.version}")
+ machine.wait_for_text("IT WORKS")
+ machine.screenshot("screen")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/libreswan.nix b/third_party/nixpkgs/nixos/tests/libreswan.nix
index 17ae60af8e..56ab908aed 100644
--- a/third_party/nixpkgs/nixos/tests/libreswan.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/lorri/default.nix b/third_party/nixpkgs/nixos/tests/lorri/default.nix
index c33c750399..147ae999fd 100644
--- a/third_party/nixpkgs/nixos/tests/lorri/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/lsd.nix b/third_party/nixpkgs/nixos/tests/lsd.nix
deleted file mode 100644
index c643f2f0b7..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/lxd-image-server.nix b/third_party/nixpkgs/nixos/tests/lxd-image-server.nix
new file mode 100644
index 0000000000..9f060fed38
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/lxd-image.nix b/third_party/nixpkgs/nixos/tests/lxd-image.nix
new file mode 100644
index 0000000000..096b9d9aba
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/lxd-image.nix
@@ -0,0 +1,89 @@
+# 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 = {
+ # 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/third_party/nixpkgs/nixos/tests/lxd.nix b/third_party/nixpkgs/nixos/tests/lxd.nix
index 889ca9598e..1a3b84a85c 100644
--- a/third_party/nixpkgs/nixos/tests/lxd.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/magic-wormhole-mailbox-server.nix b/third_party/nixpkgs/nixos/tests/magic-wormhole-mailbox-server.nix
index afdf7124fd..54088ac60f 100644
--- a/third_party/nixpkgs/nixos/tests/magic-wormhole-mailbox-server.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/matrix-appservice-irc.nix b/third_party/nixpkgs/nixos/tests/matrix-appservice-irc.nix
index 79b07ef83c..e1da410af0 100644
--- a/third_party/nixpkgs/nixos/tests/matrix-appservice-irc.nix
+++ b/third_party/nixpkgs/nixos/tests/matrix-appservice-irc.nix
@@ -25,7 +25,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
"bind_address" = "";
"port" = 8448;
"resources" = [
- { "compress" = true; "names" = [ "client" "webclient" ]; }
+ { "compress" = true; "names" = [ "client" ]; }
{ "compress" = false; "names" = [ "federation" ]; }
];
"tls" = false;
@@ -85,52 +85,108 @@ import ./make-test-python.nix ({ pkgs, ... }:
client = { pkgs, ... }: {
environment.systemPackages = [
(pkgs.writers.writePython3Bin "do_test"
- { libraries = [ pkgs.python3Packages.matrix-client ]; } ''
- import socket
- from matrix_client.client import MatrixClient
- from time import sleep
+ {
+ libraries = [ pkgs.python3Packages.matrix-nio ];
+ flakeIgnore = [
+ # We don't live in the dark ages anymore.
+ # Languages like Python that are whitespace heavy will overrun
+ # 79 characters..
+ "E501"
+ ];
+ } ''
+ import sys
+ import socket
+ import functools
+ from time import sleep
+ import asyncio
- matrix = MatrixClient("${homeserverUrl}")
- matrix.register_with_password(username="alice", password="foobar")
-
- irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- irc.connect(("ircd", 6667))
- irc.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
- irc.send(b"USER bob bob bob :bob\n")
- irc.send(b"NICK bob\n")
-
- m_room = matrix.join_room("#irc_#test:homeserver")
- irc.send(b"JOIN #test\n")
-
- # plenty of time for the joins to happen
- sleep(10)
-
- m_room.send_text("hi from matrix")
- irc.send(b"PRIVMSG #test :hi from irc \r\n")
-
- print("Waiting for irc message...")
- while True:
- buf = irc.recv(10000)
- if b"hi from matrix" in buf:
- break
-
- print("Waiting for matrix message...")
+ from nio import AsyncClient, RoomMessageText, JoinResponse
- def callback(room, e):
- if "hi from irc" in e['content']['body']:
- exit(0)
+ async def matrix_room_message_text_callback(matrix: AsyncClient, msg: str, _r, e):
+ print("Received matrix text message: ", e)
+ if msg in e.body:
+ print("Received hi from IRC")
+ await matrix.close()
+ exit(0) # Actual exit point
- m_room.add_listener(callback, "m.room.message")
- matrix.listen_forever()
- ''
+ class IRC:
+ def __init__(self):
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect(("ircd", 6667))
+ sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+ sock.send(b"USER bob bob bob :bob\n")
+ sock.send(b"NICK bob\n")
+ self.sock = sock
+
+ def join(self, room: str):
+ self.sock.send(f"JOIN {room}\n".encode())
+
+ def privmsg(self, room: str, msg: str):
+ self.sock.send(f"PRIVMSG {room} :{msg}\n".encode())
+
+ def expect_msg(self, body: str):
+ buffer = ""
+ while True:
+ buf = self.sock.recv(1024).decode()
+ buffer += buf
+ if body in buffer:
+ return
+
+
+ async def run(homeserver: str):
+ irc = IRC()
+
+ matrix = AsyncClient(homeserver)
+ response = await matrix.register("alice", "foobar")
+ print("Matrix register response: ", response)
+
+ response = await matrix.join("#irc_#test:homeserver")
+ print("Matrix join room response:", response)
+ assert isinstance(response, JoinResponse)
+ room_id = response.room_id
+
+ irc.join("#test")
+ # FIXME: what are we waiting on here? Matrix? IRC? Both?
+ # 10s seem bad for busy hydra machines.
+ sleep(10)
+
+ # Exchange messages
+ print("Sending text message to matrix room")
+ response = await matrix.room_send(
+ room_id=room_id,
+ message_type="m.room.message",
+ content={"msgtype": "m.text", "body": "hi from matrix"},
+ )
+ print("Matrix room send response: ", response)
+ irc.privmsg("#test", "hi from irc")
+
+ print("Waiting for the matrix message to appear on the IRC side...")
+ irc.expect_msg("hi from matrix")
+
+ callback = functools.partial(
+ matrix_room_message_text_callback, matrix, "hi from irc"
+ )
+ matrix.add_event_callback(callback, RoomMessageText)
+
+ print("Waiting for matrix message...")
+ await matrix.sync_forever()
+
+ exit(1) # Unreachable
+
+
+ if __name__ == "__main__":
+ asyncio.run(run(sys.argv[1]))
+ ''
)
];
};
};
testScript = ''
+ import pathlib
+
start_all()
ircd.wait_for_unit("ngircd.service")
@@ -156,7 +212,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
homeserver.wait_for_open_port(8448)
with subtest("ensure messages can be exchanged"):
- client.succeed("do_test")
+ client.succeed("do_test ${homeserverUrl} >&2")
'';
-
})
diff --git a/third_party/nixpkgs/nixos/tests/matrix/mjolnir.nix b/third_party/nixpkgs/nixos/tests/matrix/mjolnir.nix
new file mode 100644
index 0000000000..bb55f6f544
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/matrix/mjolnir.nix
@@ -0,0 +1,165 @@
+import ../make-test-python.nix (
+ { pkgs, ... }:
+ let
+ # Set up SSL certs for Synapse to be happy.
+ runWithOpenSSL = file: cmd: pkgs.runCommand file
+ {
+ buildInputs = [ pkgs.openssl ];
+ }
+ cmd;
+
+ ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
+ ca_pem = runWithOpenSSL "ca.pem" ''
+ openssl req \
+ -x509 -new -nodes -key ${ca_key} \
+ -days 10000 -out $out -subj "/CN=snakeoil-ca"
+ '';
+ key = runWithOpenSSL "matrix_key.pem" "openssl genrsa -out $out 2048";
+ csr = runWithOpenSSL "matrix.csr" ''
+ openssl req \
+ -new -key ${key} \
+ -out $out -subj "/CN=localhost" \
+ '';
+ cert = runWithOpenSSL "matrix_cert.pem" ''
+ openssl x509 \
+ -req -in ${csr} \
+ -CA ${ca_pem} -CAkey ${ca_key} \
+ -CAcreateserial -out $out \
+ -days 365
+ '';
+ in
+ {
+ name = "mjolnir";
+ meta = with pkgs.lib; {
+ maintainers = teams.matrix.members;
+ };
+
+ nodes = {
+ homeserver = { pkgs, ... }: {
+ services.matrix-synapse = {
+ enable = true;
+ database_type = "sqlite3";
+ tls_certificate_path = "${cert}";
+ tls_private_key_path = "${key}";
+ enable_registration = true;
+ registration_shared_secret = "supersecret-registration";
+
+ listeners = [
+ # The default but tls=false
+ {
+ "bind_address" = "";
+ "port" = 8448;
+ "resources" = [
+ { "compress" = true; "names" = [ "client" "webclient" ]; }
+ { "compress" = false; "names" = [ "federation" ]; }
+ ];
+ "tls" = false;
+ "type" = "http";
+ "x_forwarded" = false;
+ }
+ ];
+ };
+
+ networking.firewall.allowedTCPPorts = [ 8448 ];
+
+ environment.systemPackages = [
+ (pkgs.writeShellScriptBin "register_mjolnir_user" ''
+ exec ${pkgs.matrix-synapse}/bin/register_new_matrix_user \
+ -u mjolnir \
+ -p mjolnir-password \
+ --admin \
+ --shared-secret supersecret-registration \
+ http://localhost:8448
+ ''
+ )
+ (pkgs.writeShellScriptBin "register_moderator_user" ''
+ exec ${pkgs.matrix-synapse}/bin/register_new_matrix_user \
+ -u moderator \
+ -p moderator-password \
+ --no-admin \
+ --shared-secret supersecret-registration \
+ http://localhost:8448
+ ''
+ )
+ ];
+ };
+
+ mjolnir = { pkgs, ... }: {
+ services.mjolnir = {
+ enable = true;
+ homeserverUrl = "http://homeserver:8448";
+ pantalaimon = {
+ enable = true;
+ username = "mjolnir";
+ passwordFile = pkgs.writeText "password.txt" "mjolnir-password";
+ };
+ managementRoom = "#moderators:homeserver";
+ };
+ };
+
+ client = { pkgs, ... }: {
+ environment.systemPackages = [
+ (pkgs.writers.writePython3Bin "create_management_room_and_invite_mjolnir"
+ { libraries = [ pkgs.python3Packages.matrix-nio ]; } ''
+ import asyncio
+
+ from nio import (
+ AsyncClient,
+ EnableEncryptionBuilder
+ )
+
+
+ async def main() -> None:
+ client = AsyncClient("http://homeserver:8448", "moderator")
+
+ await client.login("moderator-password")
+
+ room = await client.room_create(
+ name="Moderators",
+ alias="moderators",
+ initial_state=[EnableEncryptionBuilder().as_dict()],
+ )
+
+ await client.join(room.room_id)
+ await client.room_invite(room.room_id, "@mjolnir:homeserver")
+
+ asyncio.run(main())
+ ''
+ )
+ ];
+ };
+ };
+
+ testScript = ''
+ with subtest("start homeserver"):
+ homeserver.start()
+
+ homeserver.wait_for_unit("matrix-synapse.service")
+ homeserver.wait_until_succeeds("curl --fail -L http://localhost:8448/")
+
+ with subtest("register users"):
+ # register mjolnir user
+ homeserver.succeed("register_mjolnir_user")
+ # register moderator user
+ homeserver.succeed("register_moderator_user")
+
+ with subtest("start mjolnir"):
+ mjolnir.start()
+
+ # wait for pantalaimon to be ready
+ mjolnir.wait_for_unit("pantalaimon-mjolnir.service")
+ mjolnir.wait_for_unit("mjolnir.service")
+
+ mjolnir.wait_until_succeeds("curl --fail -L http://localhost:8009/")
+
+ with subtest("ensure mjolnir can be invited to the management room"):
+ client.start()
+
+ client.wait_until_succeeds("curl --fail -L http://homeserver:8448/")
+
+ client.succeed("create_management_room_and_invite_mjolnir")
+
+ mjolnir.wait_for_console_text("Startup complete. Now monitoring rooms")
+ '';
+ }
+)
diff --git a/third_party/nixpkgs/nixos/tests/matrix/pantalaimon.nix b/third_party/nixpkgs/nixos/tests/matrix/pantalaimon.nix
new file mode 100644
index 0000000000..fcb9904b21
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/matrix/pantalaimon.nix
@@ -0,0 +1,65 @@
+import ../make-test-python.nix (
+ { pkgs, ... }:
+ let
+ pantalaimonInstanceName = "testing";
+
+ # Set up SSL certs for Synapse to be happy.
+ runWithOpenSSL = file: cmd: pkgs.runCommand file
+ {
+ buildInputs = [ pkgs.openssl ];
+ }
+ cmd;
+
+ ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
+ ca_pem = runWithOpenSSL "ca.pem" ''
+ openssl req \
+ -x509 -new -nodes -key ${ca_key} \
+ -days 10000 -out $out -subj "/CN=snakeoil-ca"
+ '';
+ key = runWithOpenSSL "matrix_key.pem" "openssl genrsa -out $out 2048";
+ csr = runWithOpenSSL "matrix.csr" ''
+ openssl req \
+ -new -key ${key} \
+ -out $out -subj "/CN=localhost" \
+ '';
+ cert = runWithOpenSSL "matrix_cert.pem" ''
+ openssl x509 \
+ -req -in ${csr} \
+ -CA ${ca_pem} -CAkey ${ca_key} \
+ -CAcreateserial -out $out \
+ -days 365
+ '';
+ in
+ {
+ name = "pantalaimon";
+ meta = with pkgs.lib; {
+ maintainers = teams.matrix.members;
+ };
+
+ machine = { pkgs, ... }: {
+ services.pantalaimon-headless.instances.${pantalaimonInstanceName} = {
+ homeserver = "https://localhost:8448";
+ listenAddress = "0.0.0.0";
+ listenPort = 8888;
+ logLevel = "debug";
+ ssl = false;
+ };
+
+ services.matrix-synapse = {
+ enable = true;
+ database_type = "sqlite3";
+ tls_certificate_path = "${cert}";
+ tls_private_key_path = "${key}";
+ };
+ };
+
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("pantalaimon-${pantalaimonInstanceName}.service")
+ machine.wait_for_unit("matrix-synapse.service")
+ machine.wait_until_succeeds(
+ "curl --fail -L http://localhost:8888/"
+ )
+ '';
+ }
+)
diff --git a/third_party/nixpkgs/nixos/tests/metabase.nix b/third_party/nixpkgs/nixos/tests/metabase.nix
index 370114e922..1b25071902 100644
--- a/third_party/nixpkgs/nixos/tests/metabase.nix
+++ b/third_party/nixpkgs/nixos/tests/metabase.nix
@@ -7,7 +7,6 @@ import ./make-test-python.nix ({ pkgs, ... }: {
nodes = {
machine = { ... }: {
services.metabase.enable = true;
- virtualisation.memorySize = 1024;
};
};
diff --git a/third_party/nixpkgs/nixos/tests/minecraft.nix b/third_party/nixpkgs/nixos/tests/minecraft.nix
index 3225ebac39..1c34f04b4d 100644
--- a/third_party/nixpkgs/nixos/tests/minecraft.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/misc.nix b/third_party/nixpkgs/nixos/tests/misc.nix
index fb19b70605..0587912c9a 100644
--- a/third_party/nixpkgs/nixos/tests/misc.nix
+++ b/third_party/nixpkgs/nixos/tests/misc.nix
@@ -50,17 +50,18 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
def get_path_info(path):
- result = machine.succeed(f"nix path-info --json {path}")
+ result = machine.succeed(f"nix --option experimental-features nix-command path-info --json {path}")
parsed = json.loads(result)
return parsed
with subtest("nix-db"):
info = get_path_info("${foo}")
+ print(info)
if (
info[0]["narHash"]
- != "sha256:0afw0d9j1hvwiz066z93jiddc33nxg6i6qyp26vnqyglpyfivlq5"
+ != "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
):
raise Exception("narHash not set")
diff --git a/third_party/nixpkgs/nixos/tests/mosquitto.nix b/third_party/nixpkgs/nixos/tests/mosquitto.nix
index eb47e97ba0..36cc8e3e3d 100644
--- a/third_party/nixpkgs/nixos/tests/mosquitto.nix
+++ b/third_party/nixpkgs/nixos/tests/mosquitto.nix
@@ -3,6 +3,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
let
port = 1888;
tlsPort = 1889;
+ anonPort = 1890;
password = "VERY_secret";
hashedPassword = "$7$101$/WJc4Mp+I+uYE9sR$o7z9rD1EYXHPwEP5GqQj6A7k4W1yVbePlb8TqNcuOLV9WNCiDgwHOB0JHC1WCtdkssqTBduBNUnUGd6kmZvDSw==";
topic = "test/foo";
@@ -63,7 +64,7 @@ in {
};
in {
server = { pkgs, ... }: {
- networking.firewall.allowedTCPPorts = [ port tlsPort ];
+ networking.firewall.allowedTCPPorts = [ port tlsPort anonPort ];
services.mosquitto = {
enable = true;
settings = {
@@ -112,6 +113,18 @@ in {
use_identity_as_username = true;
};
}
+ {
+ port = anonPort;
+ omitPasswordAuth = true;
+ settings.allow_anonymous = true;
+ acl = [ "pattern read #" ];
+ users = {
+ anonWriter = {
+ password = "" + password;
+ acl = [ "write ${topic}" ];
+ };
+ };
+ }
];
};
};
@@ -136,9 +149,8 @@ in {
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 "{} -C 1 {}".format(mosquitto_cmd("sub", user, topic, port), args)
+ return "{} -W 5 -C 1 {}".format(mosquitto_cmd("sub", user, topic, port), args)
def parallel(*fns):
from threading import Thread
@@ -150,17 +162,15 @@ in {
start_all()
server.wait_for_unit("mosquitto.service")
- def check_passwords():
+ 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"))
- check_passwords()
-
- def check_acl():
+ with subtest("check acl"):
client1.succeed(subscribe("", "reader", topic="$SYS/#"))
- client1.fail(subscribe("-W 5", "writer", topic="$SYS/#"))
+ client1.fail(subscribe("", "writer", topic="$SYS/#"))
parallel(
lambda: client1.succeed(subscribe("-i 3688cdd7-aa07-42a4-be22-cb9352917e40", "reader")),
@@ -170,15 +180,13 @@ in {
])
parallel(
- lambda: client1.fail(subscribe("-W 5 -i 24ff16a2-ae33-4a51-9098-1b417153c712", "reader")),
+ 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"))
])
- check_acl()
-
- def check_tls():
+ with subtest("check tls"):
client1.succeed(
subscribe(
"--cafile ${snakeOil}/ca.crt "
@@ -188,6 +196,13 @@ in {
port=${toString tlsPort},
user="no_such_user"))
- check_tls()
+ 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/third_party/nixpkgs/nixos/tests/mpv.nix b/third_party/nixpkgs/nixos/tests/mpv.nix
index 9e44862cb1..a4803f3cb5 100644
--- a/third_party/nixpkgs/nixos/tests/mpv.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/mumble.nix b/third_party/nixpkgs/nixos/tests/mumble.nix
index 717f3c7892..2b5cc20163 100644
--- a/third_party/nixpkgs/nixos/tests/mumble.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/musescore.nix b/third_party/nixpkgs/nixos/tests/musescore.nix
index 96481a9a8b..7fd80d70df 100644
--- a/third_party/nixpkgs/nixos/tests/musescore.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/mysql/mysql.nix b/third_party/nixpkgs/nixos/tests/mysql/mysql.nix
index dce5fa26ac..2ac2b34a18 100644
--- a/third_party/nixpkgs/nixos/tests/mysql/mysql.nix
+++ b/third_party/nixpkgs/nixos/tests/mysql/mysql.nix
@@ -64,10 +64,6 @@ in
{
imports = [ users ];
- # prevent oom:
- # Kernel panic - not syncing: Out of memory: compulsory panic_on_oom is enabled
- virtualisation.memorySize = 1024;
-
services.mysql.enable = true;
services.mysql.initialDatabases = [
{ name = "testdb3"; schema = ./testdb.sql; }
diff --git a/third_party/nixpkgs/nixos/tests/networking-proxy.nix b/third_party/nixpkgs/nixos/tests/networking-proxy.nix
index 62b5e690f6..fcb2558cf3 100644
--- a/third_party/nixpkgs/nixos/tests/networking-proxy.nix
+++ b/third_party/nixpkgs/nixos/tests/networking-proxy.nix
@@ -8,7 +8,6 @@ let default-config = {
services.xserver.enable = false;
- virtualisation.memorySize = 128;
};
in import ./make-test-python.nix ({ pkgs, ...} : {
name = "networking-proxy";
diff --git a/third_party/nixpkgs/nixos/tests/nextcloud/default.nix b/third_party/nixpkgs/nixos/tests/nextcloud/default.nix
index bd7a7aacdc..34d3c34535 100644
--- a/third_party/nixpkgs/nixos/tests/nextcloud/default.nix
+++ b/third_party/nixpkgs/nixos/tests/nextcloud/default.nix
@@ -1,6 +1,6 @@
-{ system ? builtins.currentSystem,
- config ? {},
- pkgs ? import ../../.. { inherit system config; }
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../../.. { inherit system config; }
}:
with pkgs.lib;
@@ -17,5 +17,5 @@ foldl
nextcloudVersion = ver;
};
})
- {}
- [ 21 22 ]
+{ }
+ [ 21 22 23 ]
diff --git a/third_party/nixpkgs/nixos/tests/nfs/simple.nix b/third_party/nixpkgs/nixos/tests/nfs/simple.nix
index 6a01089c08..1e319a8eec 100644
--- a/third_party/nixpkgs/nixos/tests/nfs/simple.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/nginx-etag.nix b/third_party/nixpkgs/nixos/tests/nginx-etag.nix
index 63ab2e0c6c..b69511d081 100644
--- a/third_party/nixpkgs/nixos/tests/nginx-etag.nix
+++ b/third_party/nixpkgs/nixos/tests/nginx-etag.nix
@@ -37,7 +37,6 @@ import ./make-test-python.nix {
};
client = { pkgs, lib, ... }: {
- virtualisation.memorySize = 512;
environment.systemPackages = let
testRunner = pkgs.writers.writePython3Bin "test-runner" {
libraries = [ pkgs.python3Packages.selenium ];
@@ -76,7 +75,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/third_party/nixpkgs/nixos/tests/nix-ssh-serve.nix b/third_party/nixpkgs/nixos/tests/nix-serve-ssh.nix
similarity index 92%
rename from third_party/nixpkgs/nixos/tests/nix-ssh-serve.nix
rename to third_party/nixpkgs/nixos/tests/nix-serve-ssh.nix
index 03f83542c7..1eb8d5b395 100644
--- a/third_party/nixpkgs/nixos/tests/nix-ssh-serve.nix
+++ b/third_party/nixpkgs/nixos/tests/nix-serve-ssh.nix
@@ -35,7 +35,7 @@ in
client.fail("diff /root/other-store$(cat mach-id-path) /etc/machine-id")
# Currently due to shared store this is a noop :(
- client.succeed("nix copy --to ssh-ng://nix-ssh@server $(cat mach-id-path)")
+ client.succeed("nix copy --experimental-features 'nix-command' --to ssh-ng://nix-ssh@server $(cat mach-id-path)")
client.succeed(
"nix-store --realise $(cat mach-id-path) --store /root/other-store --substituters ssh-ng://nix-ssh@server"
)
diff --git a/third_party/nixpkgs/nixos/tests/nixops/default.nix b/third_party/nixpkgs/nixos/tests/nixops/default.nix
index 4520b42684..ec3d028aab 100644
--- a/third_party/nixpkgs/nixos/tests/nixops/default.nix
+++ b/third_party/nixpkgs/nixos/tests/nixops/default.nix
@@ -26,8 +26,7 @@ let
nix.binaryCaches = lib.mkForce [ ];
users.users.person.isNormalUser = true;
virtualisation.writableStore = true;
- virtualisation.memorySize = 1024 /*MiB*/;
- virtualisation.pathsInNixDB = [
+ virtualisation.additionalPaths = [
pkgs.hello
pkgs.figlet
@@ -78,7 +77,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/third_party/nixpkgs/nixos/tests/odoo.nix b/third_party/nixpkgs/nixos/tests/odoo.nix
new file mode 100644
index 0000000000..96e3405482
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/openarena.nix b/third_party/nixpkgs/nixos/tests/openarena.nix
index 461a35e89f..63dc1b9a68 100644
--- a/third_party/nixpkgs/nixos/tests/openarena.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/opensmtpd-rspamd.nix b/third_party/nixpkgs/nixos/tests/opensmtpd-rspamd.nix
index 9cb2624e6c..19969a7b47 100644
--- a/third_party/nixpkgs/nixos/tests/opensmtpd-rspamd.nix
+++ b/third_party/nixpkgs/nixos/tests/opensmtpd-rspamd.nix
@@ -39,7 +39,6 @@ import ./make-test-python.nix {
smtp2 = { pkgs, ... }: {
imports = [ common/user-account.nix ];
- virtualisation.memorySize = 512;
networking = {
firewall.allowedTCPPorts = [ 25 143 ];
useDHCP = false;
diff --git a/third_party/nixpkgs/nixos/tests/os-prober.nix b/third_party/nixpkgs/nixos/tests/os-prober.nix
index 3cc38ebe34..a7b955d447 100644
--- a/third_party/nixpkgs/nixos/tests/os-prober.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/owncast.nix b/third_party/nixpkgs/nixos/tests/owncast.nix
index e54d2cc5dd..debb34f500 100644
--- a/third_party/nixpkgs/nixos/tests/owncast.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/pam/pam-file-contents.nix b/third_party/nixpkgs/nixos/tests/pam/pam-file-contents.nix
new file mode 100644
index 0000000000..86c61003ae
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/pam/pam-file-contents.nix
@@ -0,0 +1,25 @@
+let
+ name = "pam";
+in
+import ../make-test-python.nix ({ pkgs, ... }: {
+
+ nodes.machine = { ... }: {
+ imports = [ ../../modules/profiles/minimal.nix ];
+
+ krb5.enable = true;
+
+ users = {
+ mutableUsers = false;
+ users = {
+ user = {
+ isNormalUser = true;
+ };
+ };
+ };
+ };
+
+ testScript = builtins.replaceStrings
+ [ "@@pam_ccreds@@" "@@pam_krb5@@" ]
+ [ pkgs.pam_ccreds.outPath pkgs.pam_krb5.outPath ]
+ (builtins.readFile ./test_chfn.py);
+})
diff --git a/third_party/nixpkgs/nixos/tests/pam-oath-login.nix b/third_party/nixpkgs/nixos/tests/pam/pam-oath-login.nix
similarity index 98%
rename from third_party/nixpkgs/nixos/tests/pam-oath-login.nix
rename to third_party/nixpkgs/nixos/tests/pam/pam-oath-login.nix
index 6d48199eda..597596b211 100644
--- a/third_party/nixpkgs/nixos/tests/pam-oath-login.nix
+++ b/third_party/nixpkgs/nixos/tests/pam/pam-oath-login.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ ... }:
+import ../make-test-python.nix ({ ... }:
let
oathSnakeoilSecret = "cdd4083ef8ff1fa9178c6d46bfb1a3";
diff --git a/third_party/nixpkgs/nixos/tests/pam-u2f.nix b/third_party/nixpkgs/nixos/tests/pam/pam-u2f.nix
similarity index 91%
rename from third_party/nixpkgs/nixos/tests/pam-u2f.nix
rename to third_party/nixpkgs/nixos/tests/pam/pam-u2f.nix
index f492baa9e1..0ac6ac17be 100644
--- a/third_party/nixpkgs/nixos/tests/pam-u2f.nix
+++ b/third_party/nixpkgs/nixos/tests/pam/pam-u2f.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ ... }:
+import ../make-test-python.nix ({ ... }:
{
name = "pam-u2f";
diff --git a/third_party/nixpkgs/nixos/tests/pam/test_chfn.py b/third_party/nixpkgs/nixos/tests/pam/test_chfn.py
new file mode 100644
index 0000000000..b108a9423c
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/pam/test_chfn.py
@@ -0,0 +1,27 @@
+expected_lines = {
+ "account required pam_unix.so",
+ "account sufficient @@pam_krb5@@/lib/security/pam_krb5.so",
+ "auth [default=die success=done] @@pam_ccreds@@/lib/security/pam_ccreds.so action=validate use_first_pass",
+ "auth [default=ignore success=1 service_err=reset] @@pam_krb5@@/lib/security/pam_krb5.so use_first_pass",
+ "auth required pam_deny.so",
+ "auth sufficient @@pam_ccreds@@/lib/security/pam_ccreds.so action=store use_first_pass",
+ "auth sufficient pam_rootok.so",
+ "auth sufficient pam_unix.so likeauth try_first_pass",
+ "password sufficient @@pam_krb5@@/lib/security/pam_krb5.so use_first_pass",
+ "password sufficient pam_unix.so nullok sha512",
+ "session optional @@pam_krb5@@/lib/security/pam_krb5.so",
+ "session required pam_env.so conffile=/etc/pam/environment readenv=0",
+ "session required pam_unix.so",
+}
+actual_lines = set(machine.succeed("cat /etc/pam.d/chfn").splitlines())
+
+missing_lines = expected_lines - actual_lines
+extra_lines = actual_lines - expected_lines
+non_functional_lines = set([line for line in extra_lines if (line == "" or line.startswith("#"))])
+unexpected_functional_lines = extra_lines - non_functional_lines
+
+with subtest("All expected lines are in the file"):
+ assert not missing_lines, f"Missing lines: {missing_lines}"
+
+with subtest("All remaining lines are empty or comments"):
+ assert not unexpected_functional_lines, f"Unexpected lines: {unexpected_functional_lines}"
diff --git a/third_party/nixpkgs/nixos/tests/pantheon.nix b/third_party/nixpkgs/nixos/tests/pantheon.nix
index 20aee2eb7a..989d29a966 100644
--- a/third_party/nixpkgs/nixos/tests/pantheon.nix
+++ b/third_party/nixpkgs/nixos/tests/pantheon.nix
@@ -15,7 +15,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
services.xserver.enable = true;
services.xserver.desktopManager.pantheon.enable = true;
- virtualisation.memorySize = 1024;
};
enableOCR = true;
@@ -51,7 +50,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/third_party/nixpkgs/nixos/tests/paperless-ng.nix b/third_party/nixpkgs/nixos/tests/paperless-ng.nix
index a4b2f348ec..618eeec6b1 100644
--- a/third_party/nixpkgs/nixos/tests/paperless-ng.nix
+++ b/third_party/nixpkgs/nixos/tests/paperless-ng.nix
@@ -8,7 +8,6 @@ import ./make-test-python.nix ({ lib, ... }: {
enable = true;
passwordFile = builtins.toFile "password" "admin";
};
- virtualisation.memorySize = 1024;
};
testScript = ''
diff --git a/third_party/nixpkgs/nixos/tests/plasma5-systemd-start.nix b/third_party/nixpkgs/nixos/tests/plasma5-systemd-start.nix
new file mode 100644
index 0000000000..72de19af70
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/plasma5-systemd-start.nix
@@ -0,0 +1,42 @@
+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";
+ };
+ };
+ };
+
+ 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/third_party/nixpkgs/nixos/tests/plasma5.nix b/third_party/nixpkgs/nixos/tests/plasma5.nix
index 7a5b7db946..5c7ea602f7 100644
--- a/third_party/nixpkgs/nixos/tests/plasma5.nix
+++ b/third_party/nixpkgs/nixos/tests/plasma5.nix
@@ -19,7 +19,6 @@ import ./make-test-python.nix ({ pkgs, ...} :
user = "alice";
};
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
- virtualisation.memorySize = 1024;
};
testScript = { nodes, ... }: let
@@ -42,15 +41,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/third_party/nixpkgs/nixos/tests/pleroma.nix b/third_party/nixpkgs/nixos/tests/pleroma.nix
index d0ae1488d1..bf3623fce3 100644
--- a/third_party/nixpkgs/nixos/tests/pleroma.nix
+++ b/third_party/nixpkgs/nixos/tests/pleroma.nix
@@ -202,7 +202,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
security.pki.certificateFiles = [ "${tls-cert}/cert.pem" ];
networking.extraHosts = hosts nodes;
networking.firewall.enable = false;
- virtualisation.memorySize = 512;
environment.systemPackages = with pkgs; [
provision-db
provision-secrets
diff --git a/third_party/nixpkgs/nixos/tests/plotinus.nix b/third_party/nixpkgs/nixos/tests/plotinus.nix
index ddd6a4c119..af38b41813 100644
--- a/third_party/nixpkgs/nixos/tests/plotinus.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/printing.nix b/third_party/nixpkgs/nixos/tests/printing.nix
index badcb99a57..6338fd8d8a 100644
--- a/third_party/nixpkgs/nixos/tests/printing.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/privacyidea.nix b/third_party/nixpkgs/nixos/tests/privacyidea.nix
index 4a94f07279..c1141465ec 100644
--- a/third_party/nixpkgs/nixos/tests/privacyidea.nix
+++ b/third_party/nixpkgs/nixos/tests/privacyidea.nix
@@ -8,7 +8,6 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
machine = { ... }: {
virtualisation.cores = 2;
- virtualisation.memorySize = 512;
services.privacyidea = {
enable = true;
diff --git a/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix b/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix
index 38b93c4087..62deb38649 100644
--- a/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix
+++ b/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix
@@ -464,7 +464,6 @@ let
extraFlags = [ "--lnd.network=regtest" ];
};
metricProvider = {
- virtualisation.memorySize = 1024;
systemd.services.prometheus-lnd-exporter.serviceConfig.RestartSec = 15;
systemd.services.prometheus-lnd-exporter.after = [ "lnd.service" ];
services.bitcoind.regtest = {
@@ -862,6 +861,9 @@ let
wait_for_unit("prometheus-postfix-exporter.service")
wait_for_file("/var/lib/postfix/queue/public/showq")
wait_for_open_port(9154)
+ wait_until_succeeds(
+ "curl -sSf http://localhost:9154/metrics | grep 'postfix_up{path=\"/var/lib/postfix/queue/public/showq\"} 1'"
+ )
succeed(
"curl -sSf http://localhost:9154/metrics | grep 'postfix_smtpd_connects_total 0'"
)
@@ -953,7 +955,6 @@ let
};
metricProvider = {
services.rspamd.enable = true;
- virtualisation.memorySize = 1024;
};
exporterTest = ''
wait_for_unit("rspamd.service")
@@ -1017,6 +1018,25 @@ let
'';
};
+ smartctl = {
+ exporterConfig = {
+ enable = true;
+ devices = [
+ "/dev/vda"
+ ];
+ };
+ exporterTest = ''
+ wait_for_unit("prometheus-smartctl-exporter.service")
+ wait_for_open_port("9633")
+ wait_until_succeeds(
+ "curl -sSf 'localhost:9633/metrics'"
+ )
+ wait_until_succeeds(
+ 'journalctl -eu prometheus-smartctl-exporter.service -o cat | grep "/dev/vda: Unable to detect device type"'
+ )
+ '';
+ };
+
smokeping = {
exporterConfig = {
enable = true;
diff --git a/third_party/nixpkgs/nixos/tests/prometheus.nix b/third_party/nixpkgs/nixos/tests/prometheus.nix
index 70ac78a4a4..a075cfc1f1 100644
--- a/third_party/nixpkgs/nixos/tests/prometheus.nix
+++ b/third_party/nixpkgs/nixos/tests/prometheus.nix
@@ -41,6 +41,7 @@ in import ./make-test-python.nix {
networking.firewall.allowedTCPPorts = [ grpcPort ];
services.prometheus = {
enable = true;
+ enableReload = true;
scrapeConfigs = [
{
job_name = "prometheus";
@@ -118,6 +119,32 @@ in import ./make-test-python.nix {
# };
#};
};
+ # Adds a "specialisation" of the above config which allows us to
+ # "switch" to it and see if the services.prometheus.enableReload
+ # functionality actually reloads the prometheus service instead of
+ # restarting it.
+ specialisation = {
+ "prometheus-config-change" = {
+ configuration = {
+ environment.systemPackages = [ pkgs.yq ];
+
+ # This configuration just adds a new prometheus job
+ # to scrape the node_exporter metrics of the s3 machine.
+ services.prometheus = {
+ scrapeConfigs = [
+ {
+ job_name = "s3-node_exporter";
+ static_configs = [
+ {
+ targets = [ "s3:9100" ];
+ }
+ ];
+ }
+ ];
+ };
+ };
+ };
+ };
};
query = { pkgs, ... }: {
@@ -161,7 +188,6 @@ in import ./make-test-python.nix {
# Minio requires at least 1GiB of free disk space to run.
virtualisation = {
diskSize = 2 * 1024;
- memorySize = 1024;
};
networking.firewall.allowedTCPPorts = [ minioPort ];
@@ -171,10 +197,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 +226,7 @@ in import ./make-test-python.nix {
# Check if prometheus responds to requests:
prometheus.wait_for_unit("prometheus.service")
+
prometheus.wait_for_open_port(${toString queryPort})
prometheus.succeed("curl -sf http://127.0.0.1:${toString queryPort}/metrics")
@@ -245,5 +279,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/third_party/nixpkgs/nixos/tests/pt2-clone.nix b/third_party/nixpkgs/nixos/tests/pt2-clone.nix
index 3c090b7de4..364920c398 100644
--- a/third_party/nixpkgs/nixos/tests/pt2-clone.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/rasdaemon.nix b/third_party/nixpkgs/nixos/tests/rasdaemon.nix
new file mode 100644
index 0000000000..e4bd8d96a8
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/rspamd.nix b/third_party/nixpkgs/nixos/tests/rspamd.nix
index 3fd55444fd..f0ccfe7ea0 100644
--- a/third_party/nixpkgs/nixos/tests/rspamd.nix
+++ b/third_party/nixpkgs/nixos/tests/rspamd.nix
@@ -25,7 +25,6 @@ let
machine = {
services.rspamd.enable = true;
networking.enableIPv6 = enableIPv6;
- virtualisation.memorySize = 1024;
};
testScript = ''
start_all()
@@ -69,7 +68,6 @@ in
group = "rspamd";
}];
};
- virtualisation.memorySize = 1024;
};
testScript = ''
@@ -118,7 +116,6 @@ in
'';
};
};
- virtualisation.memorySize = 1024;
};
testScript = ''
@@ -224,7 +221,6 @@ in
rspamd_logger.infox(rspamd_config, 'Work dammit!!!')
'';
};
- virtualisation.memorySize = 1024;
};
testScript = ''
${initMachine}
@@ -291,7 +287,6 @@ in
postfix.enable = true;
workers.rspamd_proxy.type = "rspamd_proxy";
};
- virtualisation.memorySize = 1024;
};
testScript = ''
${initMachine}
diff --git a/third_party/nixpkgs/nixos/tests/seafile.nix b/third_party/nixpkgs/nixos/tests/seafile.nix
index 17862cff18..6eec8b1fbe 100644
--- a/third_party/nixpkgs/nixos/tests/seafile.nix
+++ b/third_party/nixpkgs/nixos/tests/seafile.nix
@@ -1,18 +1,16 @@
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.stdenv.lib.maintainers; {
+ 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";
diff --git a/third_party/nixpkgs/nixos/tests/service-runner.nix b/third_party/nixpkgs/nixos/tests/service-runner.nix
index 58f46735f5..79d96f739a 100644
--- a/third_party/nixpkgs/nixos/tests/service-runner.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/shattered-pixel-dungeon.nix b/third_party/nixpkgs/nixos/tests/shattered-pixel-dungeon.nix
index d8c4b44819..d4e5de22ab 100644
--- a/third_party/nixpkgs/nixos/tests/shattered-pixel-dungeon.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/signal-desktop.nix b/third_party/nixpkgs/nixos/tests/signal-desktop.nix
index 379af4d391..8c72306299 100644
--- a/third_party/nixpkgs/nixos/tests/signal-desktop.nix
+++ b/third_party/nixpkgs/nixos/tests/signal-desktop.nix
@@ -29,7 +29,6 @@ in {
environment.systemPackages = with pkgs; [
signal-desktop file sqlite sqlcipher-signal
];
- virtualisation.memorySize = 1024;
};
enableOCR = true;
@@ -41,7 +40,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/third_party/nixpkgs/nixos/tests/soapui.nix b/third_party/nixpkgs/nixos/tests/soapui.nix
index 205128df91..76a87ed5ef 100644
--- a/third_party/nixpkgs/nixos/tests/soapui.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/spark/default.nix b/third_party/nixpkgs/nixos/tests/spark/default.nix
index 254cdec6e6..025c5a5222 100644
--- a/third_party/nixpkgs/nixos/tests/spark/default.nix
+++ b/third_party/nixpkgs/nixos/tests/spark/default.nix
@@ -3,7 +3,6 @@ import ../make-test-python.nix ({...}: {
nodes = {
worker = { nodes, pkgs, ... }: {
- virtualisation.memorySize = 1024;
services.spark.worker = {
enable = true;
master = "master:7077";
diff --git a/third_party/nixpkgs/nixos/tests/spike.nix b/third_party/nixpkgs/nixos/tests/spike.nix
deleted file mode 100644
index 09035a1564..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/sssd-ldap.nix b/third_party/nixpkgs/nixos/tests/sssd-ldap.nix
index e3119348ea..5c58eaef71 100644
--- a/third_party/nixpkgs/nixos/tests/sssd-ldap.nix
+++ b/third_party/nixpkgs/nixos/tests/sssd-ldap.nix
@@ -1,96 +1,94 @@
-({ pkgs, ... }:
- let
- dbDomain = "example.org";
- dbSuffix = "dc=example,dc=org";
+let
+ dbDomain = "example.org";
+ dbSuffix = "dc=example,dc=org";
- ldapRootUser = "admin";
- ldapRootPassword = "foobar";
+ ldapRootUser = "admin";
+ ldapRootPassword = "foobar";
- testUser = "alice";
- in import ./make-test-python.nix {
- name = "sssd-ldap";
+ testUser = "alice";
+in import ./make-test-python.nix ({pkgs, ...}: {
+ name = "sssd-ldap";
- meta = with pkgs.lib.maintainers; {
- maintainers = [ bbigras ];
- };
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ bbigras ];
+ };
- machine = { pkgs, ... }: {
- services.openldap = {
- enable = true;
- settings = {
- children = {
- "cn=schema".includes = [
- "${pkgs.openldap}/etc/schema/core.ldif"
- "${pkgs.openldap}/etc/schema/cosine.ldif"
- "${pkgs.openldap}/etc/schema/inetorgperson.ldif"
- "${pkgs.openldap}/etc/schema/nis.ldif"
- ];
- "olcDatabase={1}mdb" = {
- attrs = {
- objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
- olcDatabase = "{1}mdb";
- olcDbDirectory = "/var/db/openldap";
- olcSuffix = dbSuffix;
- olcRootDN = "cn=${ldapRootUser},${dbSuffix}";
- olcRootPW = ldapRootPassword;
- };
+ machine = { pkgs, ... }: {
+ services.openldap = {
+ enable = true;
+ settings = {
+ children = {
+ "cn=schema".includes = [
+ "${pkgs.openldap}/etc/schema/core.ldif"
+ "${pkgs.openldap}/etc/schema/cosine.ldif"
+ "${pkgs.openldap}/etc/schema/inetorgperson.ldif"
+ "${pkgs.openldap}/etc/schema/nis.ldif"
+ ];
+ "olcDatabase={1}mdb" = {
+ attrs = {
+ objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
+ olcDatabase = "{1}mdb";
+ olcDbDirectory = "/var/db/openldap";
+ olcSuffix = dbSuffix;
+ olcRootDN = "cn=${ldapRootUser},${dbSuffix}";
+ olcRootPW = ldapRootPassword;
};
};
};
- declarativeContents = {
- ${dbSuffix} = ''
- dn: ${dbSuffix}
- objectClass: top
- objectClass: dcObject
- objectClass: organization
- o: ${dbDomain}
-
- dn: ou=posix,${dbSuffix}
- objectClass: top
- objectClass: organizationalUnit
-
- dn: ou=accounts,ou=posix,${dbSuffix}
- objectClass: top
- objectClass: organizationalUnit
-
- dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
- objectClass: person
- objectClass: posixAccount
- # userPassword: somePasswordHash
- homeDirectory: /home/${testUser}
- uidNumber: 1234
- gidNumber: 1234
- cn: ""
- sn: ""
- '';
- };
};
+ declarativeContents = {
+ ${dbSuffix} = ''
+ dn: ${dbSuffix}
+ objectClass: top
+ objectClass: dcObject
+ objectClass: organization
+ o: ${dbDomain}
- services.sssd = {
- enable = true;
- config = ''
- [sssd]
- config_file_version = 2
- services = nss, pam, sudo
- domains = ${dbDomain}
+ dn: ou=posix,${dbSuffix}
+ objectClass: top
+ objectClass: organizationalUnit
- [domain/${dbDomain}]
- auth_provider = ldap
- id_provider = ldap
- ldap_uri = ldap://127.0.0.1:389
- ldap_search_base = ${dbSuffix}
- ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
- ldap_default_authtok_type = password
- ldap_default_authtok = ${ldapRootPassword}
+ dn: ou=accounts,ou=posix,${dbSuffix}
+ objectClass: top
+ objectClass: organizationalUnit
+
+ dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
+ objectClass: person
+ objectClass: posixAccount
+ # userPassword: somePasswordHash
+ homeDirectory: /home/${testUser}
+ uidNumber: 1234
+ gidNumber: 1234
+ cn: ""
+ sn: ""
'';
};
};
- testScript = ''
- machine.start()
- machine.wait_for_unit("openldap.service")
- machine.wait_for_unit("sssd.service")
- machine.succeed("getent passwd ${testUser}")
- '';
- }
-)
+ services.sssd = {
+ enable = true;
+ config = ''
+ [sssd]
+ config_file_version = 2
+ services = nss, pam, sudo
+ domains = ${dbDomain}
+
+ [domain/${dbDomain}]
+ auth_provider = ldap
+ id_provider = ldap
+ ldap_uri = ldap://127.0.0.1:389
+ ldap_search_base = ${dbSuffix}
+ ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
+ ldap_default_authtok_type = password
+ ldap_default_authtok = ${ldapRootPassword}
+ '';
+ };
+ };
+
+ testScript = ''
+ machine.start()
+ machine.wait_for_unit("openldap.service")
+ machine.wait_for_unit("sssd.service")
+ machine.succeed("getent passwd ${testUser}")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/step-ca.nix b/third_party/nixpkgs/nixos/tests/step-ca.nix
new file mode 100644
index 0000000000..b22bcb060f
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/step-ca.nix
@@ -0,0 +1,76 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+ let
+ test-certificates = pkgs.runCommandLocal "test-certificates" { } ''
+ mkdir -p $out
+ echo insecure-root-password > $out/root-password-file
+ echo insecure-intermediate-password > $out/intermediate-password-file
+ ${pkgs.step-cli}/bin/step certificate create "Example Root CA" $out/root_ca.crt $out/root_ca.key --password-file=$out/root-password-file --profile root-ca
+ ${pkgs.step-cli}/bin/step certificate create "Example Intermediate CA 1" $out/intermediate_ca.crt $out/intermediate_ca.key --password-file=$out/intermediate-password-file --ca-password-file=$out/root-password-file --profile intermediate-ca --ca $out/root_ca.crt --ca-key $out/root_ca.key
+ '';
+ in
+ {
+ nodes =
+ {
+ caserver =
+ { config, pkgs, ... }: {
+ services.step-ca = {
+ enable = true;
+ address = "0.0.0.0";
+ port = 8443;
+ openFirewall = true;
+ intermediatePasswordFile = "${test-certificates}/intermediate-password-file";
+ settings = {
+ dnsNames = [ "caserver" ];
+ root = "${test-certificates}/root_ca.crt";
+ crt = "${test-certificates}/intermediate_ca.crt";
+ key = "${test-certificates}/intermediate_ca.key";
+ db = {
+ type = "badger";
+ dataSource = "/var/lib/step-ca/db";
+ };
+ authority = {
+ provisioners = [
+ {
+ type = "ACME";
+ name = "acme";
+ }
+ ];
+ };
+ };
+ };
+ };
+
+ caclient =
+ { config, pkgs, ... }: {
+ security.acme.server = "https://caserver:8443/acme/acme/directory";
+ security.acme.email = "root@example.org";
+ security.acme.acceptTerms = true;
+
+ security.pki.certificateFiles = [ "${test-certificates}/root_ca.crt" ];
+
+ networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+ services.nginx = {
+ enable = true;
+ virtualHosts = {
+ "caclient" = {
+ forceSSL = true;
+ enableACME = true;
+ };
+ };
+ };
+ };
+
+ catester = { config, pkgs, ... }: {
+ security.pki.certificateFiles = [ "${test-certificates}/root_ca.crt" ];
+ };
+ };
+
+ testScript =
+ ''
+ catester.start()
+ caserver.wait_for_unit("step-ca.service")
+ caclient.wait_for_unit("acme-finished-caclient.target")
+ catester.succeed("curl https://caclient/ | grep \"Welcome to nginx!\"")
+ '';
+ })
diff --git a/third_party/nixpkgs/nixos/tests/sway.nix b/third_party/nixpkgs/nixos/tests/sway.nix
index 01240ef572..3476ebab3e 100644
--- a/third_party/nixpkgs/nixos/tests/sway.nix
+++ b/third_party/nixpkgs/nixos/tests/sway.nix
@@ -44,7 +44,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
# To test pinentry via gpg-agent:
programs.gnupg.agent.enable = true;
- virtualisation.memorySize = 1024;
# Need to switch to a different GPU driver than the default one (-vga std) so that Sway can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
diff --git a/third_party/nixpkgs/nixos/tests/switch-test.nix b/third_party/nixpkgs/nixos/tests/switch-test.nix
index 4caa7d98f4..78adf7ffa7 100644
--- a/third_party/nixpkgs/nixos/tests/switch-test.nix
+++ b/third_party/nixpkgs/nixos/tests/switch-test.nix
@@ -7,224 +7,15 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
nodes = {
- machine = { config, pkgs, lib, ... }: {
- environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
+ machine = { ... }: {
users.mutableUsers = false;
-
- specialisation = {
- # A system with a simple socket-activated unit
- simple-socket.configuration = {
- systemd.services.socket-activated.serviceConfig = {
- ExecStart = pkgs.writeScript "socket-test.py" /* python */ ''
- #!${pkgs.python3}/bin/python3
-
- from socketserver import TCPServer, StreamRequestHandler
- import socket
-
- class Handler(StreamRequestHandler):
- def handle(self):
- self.wfile.write("hello".encode("utf-8"))
-
- class Server(TCPServer):
- def __init__(self, server_address, handler_cls):
- # Invoke base but omit bind/listen steps (performed by systemd activation!)
- TCPServer.__init__(
- self, server_address, handler_cls, bind_and_activate=False)
- # Override socket
- self.socket = socket.fromfd(3, self.address_family, self.socket_type)
-
- if __name__ == "__main__":
- server = Server(("localhost", 1234), Handler)
- server.serve_forever()
- '';
- };
- systemd.sockets.socket-activated = {
- wantedBy = [ "sockets.target" ];
- listenStreams = [ "/run/test.sock" ];
- socketConfig.SocketMode = lib.mkDefault "0777";
- };
- };
-
- # The same system but the socket is modified
- modified-socket.configuration = {
- imports = [ config.specialisation.simple-socket.configuration ];
- systemd.sockets.socket-activated.socketConfig.SocketMode = "0666";
- };
-
- # The same system but the service is modified
- modified-service.configuration = {
- imports = [ config.specialisation.simple-socket.configuration ];
- systemd.services.socket-activated.serviceConfig.X-Test = "test";
- };
-
- # The same system but both service and socket are modified
- modified-service-and-socket.configuration = {
- imports = [ config.specialisation.simple-socket.configuration ];
- systemd.services.socket-activated.serviceConfig.X-Test = "some_value";
- systemd.sockets.socket-activated.socketConfig.SocketMode = "0444";
- };
-
- # A system with a socket-activated service and some simple services
- service-and-socket.configuration = {
- imports = [ config.specialisation.simple-socket.configuration ];
- systemd.services.simple-service = {
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- Type = "oneshot";
- RemainAfterExit = true;
- ExecStart = "${pkgs.coreutils}/bin/true";
- };
- };
-
- systemd.services.simple-restart-service = {
- stopIfChanged = false;
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- Type = "oneshot";
- RemainAfterExit = true;
- ExecStart = "${pkgs.coreutils}/bin/true";
- };
- };
-
- systemd.services.simple-reload-service = {
- reloadIfChanged = true;
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- Type = "oneshot";
- RemainAfterExit = true;
- ExecStart = "${pkgs.coreutils}/bin/true";
- ExecReload = "${pkgs.coreutils}/bin/true";
- };
- };
-
- systemd.services.no-restart-service = {
- restartIfChanged = false;
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- Type = "oneshot";
- RemainAfterExit = true;
- ExecStart = "${pkgs.coreutils}/bin/true";
- };
- };
- };
-
- # The same system but with an activation script that restarts all services
- restart-and-reload-by-activation-script.configuration = {
- imports = [ config.specialisation.service-and-socket.configuration ];
- system.activationScripts.restart-and-reload-test = {
- supportsDryActivation = true;
- deps = [];
- text = ''
- if [ "$NIXOS_ACTION" = dry-activate ]; then
- f=/run/nixos/dry-activation-restart-list
- else
- f=/run/nixos/activation-restart-list
- fi
- cat <> "$f"
- simple-service.service
- simple-restart-service.service
- simple-reload-service.service
- no-restart-service.service
- socket-activated.service
- EOF
- '';
- };
- };
-
- # A system with a timer
- with-timer.configuration = {
- systemd.timers.test-timer = {
- wantedBy = [ "timers.target" ];
- timerConfig.OnCalendar = "@1395716396"; # chosen by fair dice roll
- };
- systemd.services.test-timer = {
- serviceConfig = {
- Type = "oneshot";
- ExecStart = "${pkgs.coreutils}/bin/true";
- };
- };
- };
-
- # The same system but with another time
- with-timer-modified.configuration = {
- imports = [ config.specialisation.with-timer.configuration ];
- systemd.timers.test-timer.timerConfig.OnCalendar = lib.mkForce "Fri 2012-11-23 16:00:00";
- };
-
- # A system with a systemd mount
- with-mount.configuration = {
- systemd.mounts = [
- {
- description = "Testmount";
- what = "tmpfs";
- type = "tmpfs";
- where = "/testmount";
- options = "size=1M";
- wantedBy = [ "local-fs.target" ];
- }
- ];
- };
-
- # The same system but with another time
- with-mount-modified.configuration = {
- systemd.mounts = [
- {
- description = "Testmount";
- what = "tmpfs";
- type = "tmpfs";
- where = "/testmount";
- options = "size=10M";
- wantedBy = [ "local-fs.target" ];
- }
- ];
- };
-
- # A system with a path unit
- with-path.configuration = {
- systemd.paths.test-watch = {
- wantedBy = [ "paths.target" ];
- pathConfig.PathExists = "/testpath";
- };
- systemd.services.test-watch = {
- serviceConfig = {
- Type = "oneshot";
- ExecStart = "${pkgs.coreutils}/bin/touch /testpath-modified";
- };
- };
- };
-
- # The same system but watching another file
- with-path-modified.configuration = {
- imports = [ config.specialisation.with-path.configuration ];
- systemd.paths.test-watch.pathConfig.PathExists = lib.mkForce "/testpath2";
- };
-
- # A system with a slice
- with-slice.configuration = {
- systemd.slices.testslice.sliceConfig.MemoryMax = "1"; # don't allow memory allocation
- systemd.services.testservice = {
- serviceConfig = {
- Type = "oneshot";
- RemainAfterExit = true;
- ExecStart = "${pkgs.coreutils}/bin/true";
- Slice = "testslice.slice";
- };
- };
- };
-
- # The same system but the slice allows to allocate memory
- with-slice-non-crashing.configuration = {
- imports = [ config.specialisation.with-slice.configuration ];
- systemd.slices.testslice.sliceConfig.MemoryMax = lib.mkForce null;
- };
- };
};
other = { ... }: {
users.mutableUsers = true;
};
};
- testScript = { nodes, ... }: let
+ testScript = {nodes, ...}: let
originalSystem = nodes.machine.config.system.build.toplevel;
otherSystem = nodes.other.config.system.build.toplevel;
@@ -236,182 +27,12 @@ import ./make-test-python.nix ({ pkgs, ...} : {
set -o pipefail
exec env -i "$@" | tee /dev/stderr
'';
- in /* python */ ''
- def switch_to_specialisation(name, action="test"):
- out = machine.succeed(f"${originalSystem}/specialisation/{name}/bin/switch-to-configuration {action} 2>&1")
- assert_lacks(out, "switch-to-configuration line") # Perl warnings
- return out
-
- def assert_contains(haystack, needle):
- if needle not in haystack:
- print("The haystack that will cause the following exception is:")
- print("---")
- print(haystack)
- print("---")
- raise Exception(f"Expected string '{needle}' was not found")
-
- def assert_lacks(haystack, needle):
- if needle in haystack:
- print("The haystack that will cause the following exception is:")
- print("---")
- print(haystack, end="")
- print("---")
- raise Exception(f"Unexpected string '{needle}' was found")
-
-
+ in ''
machine.succeed(
"${stderrRunner} ${originalSystem}/bin/switch-to-configuration test"
)
machine.succeed(
"${stderrRunner} ${otherSystem}/bin/switch-to-configuration test"
)
-
- with subtest("systemd sockets"):
- machine.succeed("${originalSystem}/bin/switch-to-configuration test")
-
- # Simple socket is created
- out = switch_to_specialisation("simple-socket")
- assert_lacks(out, "stopping the following units:")
- # not checking for reload because dbus gets reloaded
- assert_lacks(out, "restarting the following units:")
- assert_lacks(out, "\nstarting the following units:")
- assert_contains(out, "the following new units were started: socket-activated.socket\n")
- assert_lacks(out, "as well:")
- machine.succeed("[ $(stat -c%a /run/test.sock) = 777 ]")
-
- # Changing the socket restarts it
- out = switch_to_specialisation("modified-socket")
- assert_lacks(out, "stopping the following units:")
- #assert_lacks(out, "reloading the following units:")
- assert_contains(out, "restarting the following units: socket-activated.socket\n")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
- machine.succeed("[ $(stat -c%a /run/test.sock) = 666 ]") # change was applied
-
- # The unit is properly activated when the socket is accessed
- if machine.succeed("socat - UNIX-CONNECT:/run/test.sock") != "hello":
- raise Exception("Socket was not properly activated")
-
- # Changing the socket restarts it and ignores the active service
- out = switch_to_specialisation("simple-socket")
- assert_contains(out, "stopping the following units: socket-activated.service\n")
- assert_lacks(out, "reloading the following units:")
- assert_contains(out, "restarting the following units: socket-activated.socket\n")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
- machine.succeed("[ $(stat -c%a /run/test.sock) = 777 ]") # change was applied
-
- # Changing the service does nothing when the service is not active
- out = switch_to_specialisation("modified-service")
- assert_lacks(out, "stopping the following units:")
- assert_lacks(out, "reloading the following units:")
- assert_lacks(out, "restarting the following units:")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
-
- # Activating the service and modifying it stops it but leaves the socket untouched
- machine.succeed("socat - UNIX-CONNECT:/run/test.sock")
- out = switch_to_specialisation("simple-socket")
- assert_contains(out, "stopping the following units: socket-activated.service\n")
- assert_lacks(out, "reloading the following units:")
- assert_lacks(out, "restarting the following units:")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
-
- # Activating the service and both the service and the socket stops the service and restarts the socket
- machine.succeed("socat - UNIX-CONNECT:/run/test.sock")
- out = switch_to_specialisation("modified-service-and-socket")
- assert_contains(out, "stopping the following units: socket-activated.service\n")
- assert_lacks(out, "reloading the following units:")
- assert_contains(out, "restarting the following units: socket-activated.socket\n")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
-
- with subtest("restart and reload by activation file"):
- out = switch_to_specialisation("service-and-socket")
- # Switch to a system where the example services get restarted
- # by the activation script
- out = switch_to_specialisation("restart-and-reload-by-activation-script")
- assert_lacks(out, "stopping the following units:")
- assert_contains(out, "stopping the following units as well: simple-service.service, socket-activated.service\n")
- assert_contains(out, "reloading the following units: simple-reload-service.service\n")
- assert_contains(out, "restarting the following units: simple-restart-service.service\n")
- assert_contains(out, "\nstarting the following units: simple-service.service")
-
- # The same, but in dry mode
- switch_to_specialisation("service-and-socket")
- out = switch_to_specialisation("restart-and-reload-by-activation-script", action="dry-activate")
- assert_lacks(out, "would stop the following units:")
- assert_contains(out, "would stop the following units as well: simple-service.service, socket-activated.service\n")
- assert_contains(out, "would reload the following units: simple-reload-service.service\n")
- assert_contains(out, "would restart the following units: simple-restart-service.service\n")
- assert_contains(out, "\nwould start the following units: simple-service.service")
-
- with subtest("mounts"):
- switch_to_specialisation("with-mount")
- out = machine.succeed("mount | grep 'on /testmount'")
- assert_contains(out, "size=1024k")
-
- out = switch_to_specialisation("with-mount-modified")
- assert_lacks(out, "stopping the following units:")
- assert_contains(out, "reloading the following units: testmount.mount\n")
- assert_lacks(out, "restarting the following units:")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
- # It changed
- out = machine.succeed("mount | grep 'on /testmount'")
- assert_contains(out, "size=10240k")
-
- with subtest("timers"):
- switch_to_specialisation("with-timer")
- out = machine.succeed("systemctl show test-timer.timer")
- assert_contains(out, "OnCalendar=2014-03-25 02:59:56 UTC")
-
- out = switch_to_specialisation("with-timer-modified")
- assert_lacks(out, "stopping the following units:")
- assert_lacks(out, "reloading the following units:")
- assert_contains(out, "restarting the following units: test-timer.timer\n")
- assert_lacks(out, "\nstarting the following units:")
- assert_lacks(out, "the following new units were started:")
- assert_lacks(out, "as well:")
- # It changed
- out = machine.succeed("systemctl show test-timer.timer")
- assert_contains(out, "OnCalendar=Fri 2012-11-23 16:00:00")
-
- with subtest("paths"):
- switch_to_specialisation("with-path")
- machine.fail("test -f /testpath-modified")
-
- # touch the file, unit should be triggered
- machine.succeed("touch /testpath")
- machine.wait_until_succeeds("test -f /testpath-modified")
-
- machine.succeed("rm /testpath /testpath-modified")
- switch_to_specialisation("with-path-modified")
-
- machine.succeed("touch /testpath")
- machine.fail("test -f /testpath-modified")
- machine.succeed("touch /testpath2")
- machine.wait_until_succeeds("test -f /testpath-modified")
-
- # This test ensures that changes to slice configuration get applied.
- # We test this by having a slice that allows no memory allocation at
- # all and starting a service within it. If the service crashes, the slice
- # is applied and if we modify the slice to allow memory allocation, the
- # service should successfully start.
- with subtest("slices"):
- machine.succeed("echo 0 > /proc/sys/vm/panic_on_oom") # allow OOMing
- out = switch_to_specialisation("with-slice")
- machine.fail("systemctl start testservice.service")
- out = switch_to_specialisation("with-slice-non-crashing")
- machine.succeed("systemctl start testservice.service")
- machine.succeed("echo 1 > /proc/sys/vm/panic_on_oom") # disallow OOMing
-
'';
})
diff --git a/third_party/nixpkgs/nixos/tests/sympa.nix b/third_party/nixpkgs/nixos/tests/sympa.nix
index eb38df180a..aad7c95b6c 100644
--- a/third_party/nixpkgs/nixos/tests/sympa.nix
+++ b/third_party/nixpkgs/nixos/tests/sympa.nix
@@ -5,7 +5,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine =
{ ... }:
{
- virtualisation.memorySize = 1024;
services.sympa = {
enable = true;
diff --git a/third_party/nixpkgs/nixos/tests/systemd-boot.nix b/third_party/nixpkgs/nixos/tests/systemd-boot.nix
index ae3727afaf..c3899b58d6 100644
--- a/third_party/nixpkgs/nixos/tests/systemd-boot.nix
+++ b/third_party/nixpkgs/nixos/tests/systemd-boot.nix
@@ -42,7 +42,7 @@ in
# Check that specialisations create corresponding boot entries.
specialisation = makeTest {
name = "systemd-boot-specialisation";
- meta.maintainers = with pkgs.stdenv.lib.maintainers; [ lukegb ];
+ meta.maintainers = with pkgs.lib.maintainers; [ lukegb ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
@@ -102,12 +102,12 @@ in
machine.succeed(
"""
find /boot -iname '*.efi' -print0 | \
- xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 001 ####/' '{}'
+ xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 000.0-1-notnixos ####/' '{}'
"""
)
output = machine.succeed("/run/current-system/bin/switch-to-configuration boot")
- assert "updating systemd-boot from 001 to " in output
+ assert "updating systemd-boot from (000.0-1-notnixos) to " in output
'';
};
}
diff --git a/third_party/nixpkgs/nixos/tests/systemd-cryptenroll.nix b/third_party/nixpkgs/nixos/tests/systemd-cryptenroll.nix
new file mode 100644
index 0000000000..49634ef656
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/systemd-cryptenroll.nix
@@ -0,0 +1,54 @@
+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 ];
+ 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/third_party/nixpkgs/nixos/tests/systemd.nix b/third_party/nixpkgs/nixos/tests/systemd.nix
index e0685f53a9..6561f7efe1 100644
--- a/third_party/nixpkgs/nixos/tests/systemd.nix
+++ b/third_party/nixpkgs/nixos/tests/systemd.nix
@@ -5,7 +5,6 @@ import ./make-test-python.nix ({ pkgs, ... }: {
imports = [ common/user-account.nix common/x11.nix ];
virtualisation.emptyDiskImages = [ 512 512 ];
- virtualisation.memorySize = 1024;
environment.systemPackages = [ pkgs.cryptsetup ];
diff --git a/third_party/nixpkgs/nixos/tests/tigervnc.nix b/third_party/nixpkgs/nixos/tests/tigervnc.nix
index 092eaf238d..ed575682d9 100644
--- a/third_party/nixpkgs/nixos/tests/tigervnc.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/tinydns.nix b/third_party/nixpkgs/nixos/tests/tinydns.nix
index b80e345170..124508bc00 100644
--- a/third_party/nixpkgs/nixos/tests/tinydns.nix
+++ b/third_party/nixpkgs/nixos/tests/tinydns.nix
@@ -21,6 +21,20 @@ import ./make-test-python.nix ({ lib, ...} : {
testScript = ''
nameserver.start()
nameserver.wait_for_unit("tinydns.service")
- nameserver.succeed("host bla.foo.bar 192.168.1.1 | grep '1\.2\.3\.4'")
+
+ # We query tinydns a few times to trigger the bug:
+ #
+ # nameserver # [ 6.105872] mmap: tinydns (842): VmData 331776 exceed data ulimit 300000. Update limits or use boot option ignore_rlimit_data.
+ #
+ # which was reported in https://github.com/NixOS/nixpkgs/issues/119066.
+ # Without the patch
+ # it fails on the 10th iteration.
+ nameserver.succeed(
+ """
+ for i in {1..100}; do
+ host bla.foo.bar 192.168.1.1 | grep '1\.2\.3\.4'
+ done
+ """
+ )
'';
})
diff --git a/third_party/nixpkgs/nixos/tests/turbovnc-headless-server.nix b/third_party/nixpkgs/nixos/tests/turbovnc-headless-server.nix
index dfa17d65f8..7d705c56ec 100644
--- a/third_party/nixpkgs/nixos/tests/turbovnc-headless-server.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/tuxguitar.nix b/third_party/nixpkgs/nixos/tests/tuxguitar.nix
index 6586132d3c..63a7b6c7de 100644
--- a/third_party/nixpkgs/nixos/tests/tuxguitar.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/ucg.nix b/third_party/nixpkgs/nixos/tests/ucg.nix
deleted file mode 100644
index 7769fd01fc..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/vault-postgresql.nix b/third_party/nixpkgs/nixos/tests/vault-postgresql.nix
index a563aead22..2847af13cb 100644
--- a/third_party/nixpkgs/nixos/tests/vault-postgresql.nix
+++ b/third_party/nixpkgs/nixos/tests/vault-postgresql.nix
@@ -12,7 +12,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
maintainers = [ lnl7 roberth ];
};
machine = { lib, pkgs, ... }: {
- virtualisation.memorySize = 512;
environment.systemPackages = [ pkgs.vault ];
environment.variables.VAULT_ADDR = "http://127.0.0.1:8200";
services.vault.enable = true;
@@ -65,6 +64,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
machine.wait_for_unit("vault.service")
machine.wait_for_open_port(8200)
machine.succeed("vault operator init")
- machine.succeed("vault status | grep Sealed | grep true")
+ machine.succeed("vault status || test $? -eq 2")
'';
})
diff --git a/third_party/nixpkgs/nixos/tests/vault.nix b/third_party/nixpkgs/nixos/tests/vault.nix
index c3b28b6269..e86acd5b59 100644
--- a/third_party/nixpkgs/nixos/tests/vault.nix
+++ b/third_party/nixpkgs/nixos/tests/vault.nix
@@ -8,7 +8,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
environment.systemPackages = [ pkgs.vault ];
environment.variables.VAULT_ADDR = "http://127.0.0.1:8200";
services.vault.enable = true;
- virtualisation.memorySize = 512;
};
testScript =
diff --git a/third_party/nixpkgs/nixos/tests/vaultwarden.nix b/third_party/nixpkgs/nixos/tests/vaultwarden.nix
index b5343f5cad..56f1d245d5 100644
--- a/third_party/nixpkgs/nixos/tests/vaultwarden.nix
+++ b/third_party/nixpkgs/nixos/tests/vaultwarden.nix
@@ -140,7 +140,6 @@ let
in
[ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
- virtualisation.memorySize = 768;
}
];
diff --git a/third_party/nixpkgs/nixos/tests/vengi-tools.nix b/third_party/nixpkgs/nixos/tests/vengi-tools.nix
new file mode 100644
index 0000000000..6b90542887
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/vengi-tools.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "vengi-tools";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ fgaz ];
+ };
+
+ machine = { config, pkgs, ... }: {
+ imports = [
+ ./common/x11.nix
+ ];
+
+ services.xserver.enable = true;
+ environment.systemPackages = [ pkgs.vengi-tools ];
+ };
+
+ enableOCR = true;
+
+ testScript =
+ ''
+ machine.wait_for_x()
+ machine.execute("vengi-voxedit >&2 &")
+ machine.wait_for_window("voxedit")
+ # OCR on voxedit's window is very expensive, so we avoid wasting a try
+ # by letting the window load fully first
+ machine.sleep(15)
+ machine.wait_for_text("Palette")
+ machine.screenshot("screen")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/virtualbox.nix b/third_party/nixpkgs/nixos/tests/virtualbox.nix
index 09314d93b7..f15412d365 100644
--- a/third_party/nixpkgs/nixos/tests/virtualbox.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/vscodium.nix b/third_party/nixpkgs/nixos/tests/vscodium.nix
index ca75da35b1..43a0d61c85 100644
--- a/third_party/nixpkgs/nixos/tests/vscodium.nix
+++ b/third_party/nixpkgs/nixos/tests/vscodium.nix
@@ -1,47 +1,69 @@
-import ./make-test-python.nix ({ pkgs, ...} :
+let
+ tests = {
+ wayland = { pkgs, ... }: {
+ imports = [ ./common/wayland-cage.nix ];
-{
- name = "vscodium";
- meta = with pkgs.lib.maintainers; {
- maintainers = [ turion ];
+ services.cage.program = ''
+ ${pkgs.vscodium}/bin/codium \
+ --enable-features=UseOzonePlatform \
+ --ozone-platform=wayland
+ '';
+
+ fonts.fonts = with pkgs; [ dejavu_fonts ];
+ };
+ xorg = { pkgs, ... }: {
+ imports = [ ./common/user-account.nix ./common/x11.nix ];
+
+ virtualisation.memorySize = 2047;
+ services.xserver.enable = true;
+ services.xserver.displayManager.sessionCommands = ''
+ ${pkgs.vscodium}/bin/codium
+ '';
+ test-support.displayManager.auto.user = "alice";
+ };
};
- machine = { ... }:
+ mkTest = name: machine:
+ import ./make-test-python.nix ({ pkgs, ... }: {
+ inherit name;
- {
- imports = [
- ./common/user-account.nix
- ./common/x11.nix
- ];
+ nodes = { "${name}" = machine; };
- virtualisation.memorySize = 2047;
- services.xserver.enable = true;
- test-support.displayManager.auto.user = "alice";
- environment.systemPackages = with pkgs; [
- vscodium
- ];
- };
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ synthetica turion ];
+ };
+ enableOCR = true;
+ testScript = ''
+ start_all()
- enableOCR = true;
+ machine.wait_for_unit('graphical.target')
+ machine.wait_until_succeeds('pgrep -x codium')
- testScript = { nodes, ... }: ''
- # Start up X
- start_all()
- machine.wait_for_x()
+ # Wait until vscodium is visible. "File" is in the menu bar.
+ machine.wait_for_text('File')
+ machine.screenshot('start_screen')
- # 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' &")
+ test_string = 'testfile'
- # Wait for the window to appear
- machine.wait_for_text("VSCodium")
+ # Create a new file
+ machine.send_key('ctrl-n')
+ machine.wait_for_text('Untitled')
+ machine.screenshot('empty_editor')
- # Save file
- machine.send_key("ctrl-s")
+ # Type a string
+ machine.send_chars(test_string)
+ machine.wait_for_text(test_string)
+ machine.screenshot('editor')
- # Wait until the file has been saved
- machine.wait_for_file("/home/alice/foo.txt")
+ # Save the file
+ machine.send_key('ctrl-s')
+ machine.wait_for_text('Save')
+ machine.screenshot('save_window')
+ machine.send_key('ret')
- machine.screenshot("VSCodium")
- '';
-})
+ # (the default filename is the first line of the file)
+ machine.wait_for_file(f'/home/alice/{test_string}')
+ '';
+ });
+
+in builtins.mapAttrs (k: v: mkTest k v { }) tests
diff --git a/third_party/nixpkgs/nixos/tests/wine.nix b/third_party/nixpkgs/nixos/tests/wine.nix
new file mode 100644
index 0000000000..c46c7d338b
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/xfce.nix b/third_party/nixpkgs/nixos/tests/xfce.nix
index 99e30342e5..9051deebae 100644
--- a/third_party/nixpkgs/nixos/tests/xfce.nix
+++ b/third_party/nixpkgs/nixos/tests/xfce.nix
@@ -23,7 +23,6 @@ import ./make-test-python.nix ({ pkgs, ...} : {
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
- virtualisation.memorySize = 1024;
};
testScript = { nodes, ... }: let
@@ -38,7 +37,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/third_party/nixpkgs/nixos/tests/xrdp.nix b/third_party/nixpkgs/nixos/tests/xrdp.nix
index 92eb7d4772..0e1d521c5a 100644
--- a/third_party/nixpkgs/nixos/tests/xrdp.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/xterm.nix b/third_party/nixpkgs/nixos/tests/xterm.nix
index 078d1dca96..4ee31139ab 100644
--- a/third_party/nixpkgs/nixos/tests/xterm.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/nixos/tests/yq.nix b/third_party/nixpkgs/nixos/tests/yq.nix
deleted file mode 100644
index cdcb3d6e24..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/ChowKick/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ChowKick/default.nix
new file mode 100644
index 0000000000..b3ad00bf63
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/ChowKick/default.nix
@@ -0,0 +1,106 @@
+{ alsa-lib
+, at-spi2-core
+, brotli
+, cmake
+, curl
+, dbus
+, libepoxy
+, fetchFromGitHub
+, freeglut
+, freetype
+, gtk2-x11
+, lib
+, libGL
+, libXcursor
+, libXdmcp
+, libXext
+, libXinerama
+, libXrandr
+, libXtst
+, libdatrie
+, libjack2
+, libpsl
+, libselinux
+, libsepol
+, libsysprof-capture
+, libthai
+, libxkbcommon
+, lv2
+, pcre
+, pkg-config
+, python3
+, sqlite
+, stdenv
+, util-linuxMinimal
+, webkitgtk
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ChowKick";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "Chowdhury-DSP";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0amnp0p7ckbbr9dcbdnld1ryv46kvza2dj8m6hzmi7c1s4df8x5q";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ ];
+ buildInputs = [
+ alsa-lib
+ at-spi2-core
+ brotli
+ curl
+ dbus
+ libepoxy
+ freeglut
+ freetype
+ gtk2-x11
+ libGL
+ libXcursor
+ libXdmcp
+ libXext
+ libXinerama
+ libXrandr
+ libXtst
+ libdatrie
+ libjack2
+ libpsl
+ libselinux
+ libsepol
+ libsysprof-capture
+ libthai
+ libxkbcommon
+ lv2
+ pcre
+ python3
+ sqlite
+ util-linuxMinimal
+ webkitgtk
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
+ "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin
+ cp -r ChowKick_artefacts/Release/LV2//${pname}.lv2 $out/lib/lv2
+ cp -r ChowKick_artefacts/Release/VST3/${pname}.vst3 $out/lib/vst3
+ cp ChowKick_artefacts/Release/Standalone/${pname} $out/bin
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/Chowdhury-DSP/ChowKick";
+ description = "Kick synthesizer based on old-school drum machine circuits";
+ license = with licenses; [ bsd3 ];
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/aether-lv2/default.nix b/third_party/nixpkgs/pkgs/applications/audio/aether-lv2/default.nix
new file mode 100644
index 0000000000..e912c7fa49
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/aether-lv2/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, lv2, libX11, libGL, libGLU, mesa, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "aether-lv2";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "Dougal-s";
+ repo = "aether";
+ rev = "v${version}";
+ sha256 = "0xhih4smjxn87s0f4gaab51d8594qlp0lyypzxl5lm37j1i9zigs";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ lv2 libX11 libGL libGLU mesa
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2
+ cp -r aether.lv2 $out/lib/lv2
+ '';
+
+ meta = with lib; {
+ homepage = "https://dougal-s.github.io/Aether/";
+ description = "An algorithmic reverb LV2 based on Cloudseed";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.mit;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ardour/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ardour/default.nix
index 2bd6cf03cc..d5afcac86c 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ardour/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/ardour/default.nix
@@ -52,7 +52,7 @@
, vamp-plugin-sdk
, wafHook
, xjadeo
-, videoSupport ? false
+, videoSupport ? true
}:
stdenv.mkDerivation rec {
pname = "ardour";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ashuffle/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
index e445132ee3..90a2abe8ad 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "ashuffle";
- version = "3.10.1";
+ version = "3.12.5";
src = fetchFromGitHub {
owner = "joshkunz";
repo = "ashuffle";
rev = "v${version}";
- sha256 = "103jhajqwryiaf52qqgshajcnsxsz4l8gn3sz6bxs7k0yq5x1knr";
+ sha256 = "sha256-dPgv6EzRxRdHkGvys601Bkg9Srd8oEjoE9jbAin74Vk=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/audacious/default.nix b/third_party/nixpkgs/pkgs/applications/audio/audacious/default.nix
index a6c8221c9f..7cd22d2583 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/audacious/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/audacious/default.nix
@@ -11,15 +11,15 @@
mkDerivation rec {
pname = "audacious";
- version = "4.0.5";
+ version = "4.1";
src = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
- sha256 = "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji";
+ sha256 = "0p734psjjvjcmla2hg5h6a9v1prvy63jj9xm2g2ngs49jy7qan0z";
};
pluginsSrc = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
- sha256 = "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz";
+ sha256 = "0k0xnqmxi5lna034i2cnzvfzrykxmv4fbs1nkrc9sd2ma1igrmns";
};
nativeBuildInputs = [ gettext pkg-config ];
@@ -36,8 +36,10 @@ mkDerivation rec {
libopenmpt
];
+ configureFlags = [ "--disable-gtk" ];
+
# Here we build both audacious and audacious-plugins in one
- # derivations, since they really expect to be in the same prefix.
+ # derivation, since they really expect to be in the same prefix.
# This is slighly tricky.
builder = builtins.toFile "builder.sh" ''
# First build audacious.
diff --git a/third_party/nixpkgs/pkgs/applications/audio/audacity/default.nix b/third_party/nixpkgs/pkgs/applications/audio/audacity/default.nix
index 566024881b..0832bb1dd9 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -32,7 +32,7 @@
, linuxHeaders
, at-spi2-core
, dbus
-, epoxy
+, libepoxy
, libXdmcp
, libXtst
, libpthreadstubs
@@ -143,7 +143,7 @@ stdenv.mkDerivation rec {
] ++ optionals stdenv.isLinux [
at-spi2-core
dbus
- epoxy
+ libepoxy
libXdmcp
libXtst
libpthreadstubs
diff --git a/third_party/nixpkgs/pkgs/applications/audio/aumix/default.nix b/third_party/nixpkgs/pkgs/applications/audio/aumix/default.nix
index b1808ed90f..51dda20cc3 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/aumix/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/aumix/default.nix
@@ -1,30 +1,34 @@
-{lib, stdenv, fetchurl, gettext, ncurses
+{ lib
+, stdenv
+, fetchurl
+, gettext
+, ncurses
, gtkGUI ? false
-, pkg-config ? null
-, gtk2 ? null}:
-
-assert gtkGUI -> pkg-config != null && gtk2 != null;
+, pkg-config
+, gtk2
+}:
stdenv.mkDerivation rec {
- name = "aumix-2.9.1";
+ pname = "aumix";
+ version = "2.9.1";
+
src = fetchurl {
- url = "http://www.jpj.net/~trevor/aumix/releases/${name}.tar.bz2";
+ url = "http://www.jpj.net/~trevor/aumix/releases/aumix-${version}.tar.bz2";
sha256 = "0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj";
};
buildInputs = [ gettext ncurses ]
- ++ (if gtkGUI then [pkg-config gtk2] else []);
+ ++ lib.optionals gtkGUI [ pkg-config gtk2 ];
- meta = {
+ meta = with lib; {
description = "Audio mixer for X and the console";
longDescription = ''
Aumix adjusts an audio mixer from X, the console, a terminal,
the command line or a script.
'';
homepage = "http://www.jpj.net/~trevor/aumix.html";
- license = lib.licenses.gpl2Plus;
-
- maintainers = [ ];
- platforms = lib.platforms.linux;
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/bambootracker/default.nix b/third_party/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
index 591c14c1ad..b2cce97bbc 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/bespokesynth/default.nix b/third_party/nixpkgs/pkgs/applications/audio/bespokesynth/default.nix
index c3c33267f6..e8d2ada387 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bespokesynth/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/bespokesynth/default.nix
@@ -106,7 +106,13 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Software modular synth with controllers support, scripting and VST";
homepage = "https://github.com/awwbees/BespokeSynth";
- license = licenses.gpl3Plus;
+ license = with licenses; [
+ gpl3Plus
+
+ # This package is unfree and not distributable due to the license of VST2.
+ # see #145607
+ unfree
+ ];
maintainers = with maintainers; [ astro ];
platforms = platforms.all;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 447bc7d663..aa3ed2c8b3 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "bitwig-studio";
- version = "4.0.1";
+ version = "4.1";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
- sha256 = "sha256-yhCAKlbLjyBywkSYY1aqbUGFlAHBLR8g8xPDIqoUIZk=";
+ sha256 = "sha256-h6TNlfKgN7CPhtY8DxESrydtEsdVPT+Uf+VKcqKVuXw=";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/cadence/default.nix b/third_party/nixpkgs/pkgs/applications/audio/cadence/default.nix
index 62bf32eb71..72f13bdb09 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/cadence/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/cadence/default.nix
@@ -3,7 +3,7 @@
, coreutils
, libjack2
, fetchpatch
-, fetchzip
+, fetchFromGitHub
, jack_capture
, pkg-config
, pulseaudioFull
@@ -20,9 +20,11 @@ mkDerivation rec {
version = "0.9.1";
pname = "cadence";
- src = fetchzip {
- url = "https://github.com/falkTX/Cadence/archive/v${version}.tar.gz";
- sha256 = "07z8grnnpkd0nf3y3r6qjlk1jlzrbhdrp9mnhrhhmws54p1bhl20";
+ src = fetchFromGitHub {
+ owner = "falkTX";
+ repo = "Cadence";
+ rev = "v${version}";
+ sha256 = "sha256-QFC4wiVF8wphhrammxtc+VMZJpXY5OGHs6DNa21+6B8=";
};
patches = [
@@ -39,11 +41,11 @@ mkDerivation rec {
];
postPatch = ''
- libjackso=$(realpath ${lib.makeLibraryPath [libjack2]}/libjack.so.0);
- substituteInPlace ./src/jacklib.py --replace libjack.so.0 $libjackso
- substituteInPlace ./src/cadence.py --replace "/usr/bin/pulseaudio" \
- "${lib.makeBinPath[pulseaudioFull]}/pulseaudio"
- substituteInPlace ./c++/jackbridge/JackBridge.cpp --replace libjack.so.0 $libjackso
+ libjackso=$(realpath ${lib.makeLibraryPath [libjack2]}/libjack.so.0);
+ substituteInPlace ./src/jacklib.py --replace libjack.so.0 $libjackso
+ substituteInPlace ./src/cadence.py --replace "/usr/bin/pulseaudio" \
+ "${lib.makeBinPath[pulseaudioFull]}/pulseaudio"
+ substituteInPlace ./c++/jackbridge/JackBridge.cpp --replace libjack.so.0 $libjackso
'';
nativeBuildInputs = [
@@ -54,10 +56,12 @@ mkDerivation rec {
qtbase
jack_capture
pulseaudioFull
- ((python3.withPackages (ps: with ps; [
- pyqt5
- dbus-python
- ])))
+ (
+ (python3.withPackages (ps: with ps; [
+ pyqt5
+ dbus-python
+ ]))
+ )
];
makeFlags = [
@@ -68,31 +72,37 @@ mkDerivation rec {
dontWrapQtApps = true;
# Replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise.
- preFixup = let
- outRef = placeholder "out";
- prefix = "${outRef}/share/cadence/src";
- scriptAndSource = lib.mapAttrs' (script: source:
- lib.nameValuePair ("${outRef}/bin/" + script) ("${prefix}/" + source)
- ) {
- "cadence" = "cadence.py";
- "claudia" = "claudia.py";
- "catarina" = "catarina.py";
- "catia" = "catia.py";
- "cadence-jacksettings" = "jacksettings.py";
- "cadence-aloop-daemon" = "cadence_aloop_daemon.py";
- "cadence-logs" = "logs.py";
- "cadence-render" = "render.py";
- "claudia-launcher" = "claudia_launcher.py";
- "cadence-session-start" = "cadence_session_start.py";
- };
- in lib.mapAttrsToList (script: source: ''
- rm -f ${script}
- makeQtWrapper ${source} ${script} \
- --prefix PATH : "${lib.makeBinPath [
- jack_capture # cadence-render
- pulseaudioFull # cadence, cadence-session-start
- ]}"
- '') scriptAndSource;
+ preFixup =
+ let
+ outRef = placeholder "out";
+ prefix = "${outRef}/share/cadence/src";
+ scriptAndSource = lib.mapAttrs'
+ (script: source:
+ lib.nameValuePair ("${outRef}/bin/" + script) ("${prefix}/" + source)
+ )
+ {
+ "cadence" = "cadence.py";
+ "claudia" = "claudia.py";
+ "catarina" = "catarina.py";
+ "catia" = "catia.py";
+ "cadence-jacksettings" = "jacksettings.py";
+ "cadence-aloop-daemon" = "cadence_aloop_daemon.py";
+ "cadence-logs" = "logs.py";
+ "cadence-render" = "render.py";
+ "claudia-launcher" = "claudia_launcher.py";
+ "cadence-session-start" = "cadence_session_start.py";
+ };
+ in
+ lib.mapAttrsToList
+ (script: source: ''
+ rm -f ${script}
+ makeQtWrapper ${source} ${script} \
+ --prefix PATH : "${lib.makeBinPath [
+ jack_capture # cadence-render
+ pulseaudioFull # cadence, cadence-session-start
+ ]}"
+ '')
+ scriptAndSource;
meta = {
homepage = "https://github.com/falkTX/Cadence/";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/callaudiod/default.nix b/third_party/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
index 0cc1ccd2ac..e7cd257f25 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
@@ -21,10 +21,12 @@ stdenv.mkDerivation rec {
sha256 = "087589z45xvldn2m1g79y0xbwzylwkjmfk83s5xjixyq0wqmfppd";
};
+ strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
+ glib
];
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix b/third_party/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix
index 36686655f3..10ff66de77 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix
@@ -35,6 +35,15 @@ stdenv.mkDerivation rec {
cp ${gnu-config}/config.guess configure.guess
'';
+ # Build system reuses the same object file names for shared and static
+ # library. Occasionally fails in the middle:
+ # gcc -O2 -fsigned-char -g -O2 -c scan_devices.c
+ # rm -f *.o core *~ *.out
+ # gcc -O2 -fsigned-char -g -O2 -fpic -c scan_devices.c
+ # gcc -fpic -shared -o libcdda_interface.so.0.10.2 ... scan_devices.o ...
+ # scan_devices.o: file not recognized: file format not recognized
+ enableParallelBuilding = false;
+
meta = with lib; {
homepage = "https://xiph.org/paranoia";
description = "A tool and library for reading digital audio from CDs";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/clerk/default.nix b/third_party/nixpkgs/pkgs/applications/audio/clerk/default.nix
index ebcd09ca6a..ff9dca961a 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/clerk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/clerk/default.nix
@@ -1,8 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, rofi, mpc_cli, perl,
-util-linux, python3Packages, libnotify }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, rofi
+, mpc_cli
+, perl
+, util-linux
+, python3Packages
+, libnotify
+}:
stdenv.mkDerivation {
- name = "clerk-2016-10-14";
+ pname = "clerk";
+ version = "unstable-2016-10-14";
src = fetchFromGitHub {
owner = "carnager";
@@ -26,8 +36,8 @@ stdenv.mkDerivation {
meta = with lib; {
description = "An MPD client built on top of rofi";
- homepage = "https://github.com/carnager/clerk";
- license = licenses.mit;
+ homepage = "https://github.com/carnager/clerk";
+ license = licenses.mit;
maintainers = with maintainers; [ anderspapitto ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ecasound/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ecasound/default.nix
index 47db220164..108be8726c 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ecasound/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix b/third_party/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
index 44d5a0aa15..e0f7822bcd 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
@@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
"--with-mbrola=${if mbrolaSupport then "yes" else "no"}"
];
+ # Current release lacks dependencies on local espeak-ng:
+ # cd dictsource && ESPEAK_DATA_PATH=/build/espeak-ng LD_LIBRARY_PATH=../src: ../src/espeak-ng --compile=yue && cd ..
+ # bash: line 1: ../src/espeak-ng: No such file or directory
+ # Should be fixed in next release: https://github.com/espeak-ng/espeak-ng/pull/1029
+ enableParallelBuilding = false;
+
postInstall = lib.optionalString stdenv.isLinux ''
patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
'';
diff --git a/third_party/nixpkgs/pkgs/applications/audio/espeak/default.nix b/third_party/nixpkgs/pkgs/applications/audio/espeak/default.nix
index 675f31b478..e5579175bb 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/espeak/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/espeak/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, unzip, portaudio }:
stdenv.mkDerivation rec {
- name = "espeak-1.48.04";
+ pname = "espeak";
+ version = "1.48.04";
src = fetchurl {
- url = "mirror://sourceforge/espeak/${name}-source.zip";
+ url = "mirror://sourceforge/espeak/espeak-${version}-source.zip";
sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/third_party/nixpkgs/pkgs/applications/audio/espeak/edit.nix
index 0b9fa3dfbe..2240a85611 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/espeak/edit.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/espeak/edit.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, unzip, portaudio, wxGTK, sox }:
stdenv.mkDerivation rec {
- name = "espeakedit-1.48.03";
+ pname = "espeakedit";
+ version = "1.48.03";
src = fetchurl {
- url = "mirror://sourceforge/espeak/${name}.zip";
+ url = "mirror://sourceforge/espeak/espeakedit-${version}.zip";
sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/faust/faust2.nix b/third_party/nixpkgs/pkgs/applications/audio/faust/faust2.nix
index c1d351fa53..0309031cf7 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/faust/faust2.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/faust/faust2.nix
@@ -20,13 +20,13 @@ with lib.strings;
let
- version = "2.30.5";
+ version = "2.37.3";
src = fetchFromGitHub {
owner = "grame-cncm";
repo = "faust";
rev = version;
- sha256 = "0cs52w4rwaj5d8pjak4cxsg02sxvx4y07592nc3ck81clqjmszmm";
+ sha256 = "sha256-Jzauw8+vBjtbK73Bh4huhX1ql1cWmh80EzEET3x03rc=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix b/third_party/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix
index 8dd43ead59..f9dbd3f80f 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix
@@ -1,13 +1,13 @@
{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
stdenv.mkDerivation rec {
pname = "faustPhysicalModeling";
- version = "2.33.1";
+ version = "2.37.3";
src = fetchFromGitHub {
owner = "grame-cncm";
repo = "faust";
rev = version;
- sha256 = "sha256-gzkfLfNhJHg/jEhf/RQDhHnXxn3UI15eDZfutKt3yGk=";
+ sha256 = "sha256-h6L+qRkN2chnI4821WrjD3uRFw3J0sUYVLL8w57vR1U=";
};
buildInputs = [ faust2jaqt faust2lv2 ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix b/third_party/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
index 1a6471397d..ad57b6a690 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
@@ -1,36 +1,20 @@
-{ stdenv, lib, fetchFromGitHub, pkg-config, cmake
+{ stdenv, lib, fetchFromGitHub, buildPackages, pkg-config, cmake
, alsa-lib, glib, libjack2, libsndfile, libpulseaudio
, AudioUnit, CoreAudio, CoreMIDI, CoreServices
-, version ? "2"
}:
-let
- versionMap = {
- "1" = {
- fluidsynthVersion = "1.1.11";
- sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
- };
- "2" = {
- fluidsynthVersion = "2.0.6";
- sha256 = "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a";
- };
- };
-in
-
-with versionMap.${version};
-
-stdenv.mkDerivation {
- name = "fluidsynth-${fluidsynthVersion}";
- version = fluidsynthVersion;
+stdenv.mkDerivation rec {
+ pname = "fluidsynth";
+ version = "2.2.3";
src = fetchFromGitHub {
owner = "FluidSynth";
repo = "fluidsynth";
- rev = "v${fluidsynthVersion}";
- inherit sha256;
+ rev = "v${version}";
+ sha256 = "0x5808d03ym23np17nl8gfbkx3c4y3d7jyyr2222wn2prswbb6x3";
};
- nativeBuildInputs = [ pkg-config cmake ];
+ nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
buildInputs = [ glib libsndfile libpulseaudio libjack2 ]
++ lib.optionals stdenv.isLinux [ alsa-lib ]
diff --git a/third_party/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix b/third_party/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
index f7abeb2a91..abb13b021c 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, libjack2, gtk2, lv2, faust, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, libjack2, gtk2, lv2, faust, pkg-config }:
stdenv.mkDerivation {
- version = "git-2015-05-21";
+ version = "unstable-2015-05-21";
pname = "foo-yc20";
src = fetchFromGitHub {
owner = "sampov2";
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
broken = true; # see: https://github.com/sampov2/foo-yc20/issues/7
description = "A Faust implementation of a 1969 designed Yamaha combo organ, the YC-20";
homepage = "https://github.com/sampov2/foo-yc20";
- license = with licenses; [ bsd3 lgpl21 mpl11 ] ;
+ license = with licenses; [ bsd3 lgpl21 mpl11 ];
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/freqtweak/default.nix b/third_party/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
index 113894a935..71bb0f6f05 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = with lib; {
- homepage = http://essej.net/freqtweak/;
+ homepage = "http://essej.net/freqtweak/";
description = "Realtime audio frequency spectral manipulation";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/applications/audio/gigedit/default.nix b/third_party/nixpkgs/pkgs/applications/audio/gigedit/default.nix
index 1187dd1ba2..8c37e8901a 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/gigedit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/gigedit/default.nix
@@ -1,7 +1,24 @@
-{ lib, stdenv, fetchurl, autoconf, automake, intltool, libtool, pkg-config, which
-, docbook_xml_dtd_45, docbook_xsl, gtkmm2, libgig, libsndfile, libxslt
+{ lib
+, stdenv
+, fetchurl
+, autoconf
+, automake
+, intltool
+, libtool
+, pkg-config
+, which
+, docbook_xml_dtd_45
+, docbook_xsl
+, gtkmm2
+, pangomm_2_42
+, libgig
+, libsndfile
+, libxslt
}:
+let
+ gtkmm2_with_pango242 = gtkmm2.override { pangomm = pangomm_2_42; };
+in
stdenv.mkDerivation rec {
pname = "gigedit";
version = "1.1.1";
@@ -15,7 +32,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoconf automake intltool libtool pkg-config which ];
- buildInputs = [ docbook_xml_dtd_45 docbook_xsl gtkmm2 libgig libsndfile libxslt ];
+ buildInputs = [ docbook_xml_dtd_45 docbook_xsl gtkmm2_with_pango242 libgig libsndfile libxslt ];
enableParallelBuilding = true;
diff --git a/third_party/nixpkgs/pkgs/applications/audio/gmu/default.nix b/third_party/nixpkgs/pkgs/applications/audio/gmu/default.nix
index b2b9f5e347..cc2b46cd6a 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/gmu/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/gmu/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
+{lib, stdenv, fetchurl, fetchpatch, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
, speex, ncurses
, keymap ? "default"
, conf ? "unknown"
@@ -13,6 +13,24 @@ stdenv.mkDerivation rec {
sha256 = "03x0mc0xw2if0bpf0a15yprcyx1xccki039zvl2099dagwk6xskv";
};
+ patches = [
+ # pull pending upstream inclusion fix for ncurses-6.3:
+ # https://github.com/jhe2/gmu/pull/7
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/jhe2/gmu/commit/c8b3a10afee136feb333754ef6ec26383b11072f.patch";
+ sha256 = "0xp2j3jp8pkmv6yvnzi378m2dylbfsaqrsrkw7hbxw6kglzj399r";
+ })
+
+ # pull upstream fix for -fno-common toolchains like
+ # upstream gcc-10 of clang-13.
+ (fetchpatch {
+ name = "fno-common.patch";
+ url = "https://github.com/jhe2/gmu/commit/b705209f08ddfda141ad358ccd0c3d2d099be5e6.patch";
+ sha256 = "1ci2b8kz3r58rzmivlfhqjmcgqwlkwlzzhnyxlk36vmk240a3gqq";
+ })
+ ];
+
buildInputs = [ SDL SDL_gfx SDL_image tremor flac mpg123 libmikmod speex ncurses ];
makeFlags = [ "PREFIX=$(out)" ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix b/third_party/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
index c539a31642..d281ec11c7 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
@@ -1,6 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, fetchzip, cmake, pkg-config, lv2, alsa-lib, libjack2,
- freetype, libX11, gtk3, pcre, libpthreadstubs, libXdmcp, libxkbcommon,
- epoxy, at-spi2-core, dbus, curl, fftwFloat }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, lv2
+, alsa-lib
+, libjack2
+, freetype
+, libX11
+, gtk3
+, pcre
+, libpthreadstubs
+, libXdmcp
+, libxkbcommon
+, libepoxy
+, at-spi2-core
+, dbus
+, curl
+, fftwFloat
+}:
let
pname = "HybridReverb2";
@@ -10,11 +28,13 @@ let
in
stdenv.mkDerivation rec {
- name = "${pname}-${version}";
+ inherit pname version;
- impulseDB = fetchzip {
- url = "https://github.com/${owner}/${pname}-impulse-response-database/archive/v${DBversion}.zip";
- sha256 = "1hlfxbbkahm1k2sk3c3n2mjaz7k80ky3r55xil8nfbvbv0qan89z";
+ impulseDB = fetchFromGitHub {
+ inherit owner;
+ repo = "HybridReverb2-impulse-response-database";
+ rev = "v${DBversion}";
+ sha256 = "sha256-PyGrMNhrL2cRjb2UPPwEaJ6vZBV2sDG1mKFCNdfqjsI=";
};
src = fetchFromGitHub {
@@ -26,8 +46,23 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkg-config cmake ];
- buildInputs = [ lv2 alsa-lib libjack2 freetype libX11 gtk3 pcre
- libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core dbus curl fftwFloat ];
+ buildInputs = [
+ lv2
+ alsa-lib
+ libjack2
+ freetype
+ libX11
+ gtk3
+ pcre
+ libpthreadstubs
+ libXdmcp
+ libxkbcommon
+ libepoxy
+ at-spi2-core
+ dbus
+ curl
+ fftwFloat
+ ];
cmakeFlags = [
"-DHybridReverb2_AdvancedJackStandalone=ON"
diff --git a/third_party/nixpkgs/pkgs/applications/audio/hydrogen/0.nix b/third_party/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
index ad3566571b..aa18216578 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
@@ -1,19 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, cmake
-, alsa-lib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, alsa-lib
+, boost
+, glib
+, lash
+, libjack2
+, libarchive
+, libsndfile
+, lrdf
+, qt4
}:
stdenv.mkDerivation rec {
version = "0.9.7";
pname = "hydrogen";
- src = fetchurl {
- url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
- sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+ src = fetchFromGitHub {
+ owner = "hydrogen-music";
+ repo = "hydrogen";
+ rev = version;
+ sha256 = "sha256-6ycNUcumtAEl/6XbIpW6JglGv4nNOdMrOJ1nvJg3z/c=";
};
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [
- alsa-lib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+ alsa-lib
+ boost
+ glib
+ lash
+ libjack2
+ libarchive
+ libsndfile
+ lrdf
+ qt4
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/audio/jconvolver/default.nix b/third_party/nixpkgs/pkgs/applications/audio/jconvolver/default.nix
new file mode 100644
index 0000000000..5294ae5f13
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix b/third_party/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
index 6e5cc0d519..655fc6a960 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Set of LADSPA and LV2 plugins for guitar sound processing";
- homepage = https://github.com/olegkapitonov/Kapitonov-Plugins-Pack;
+ homepage = "https://github.com/olegkapitonov/Kapitonov-Plugins-Pack";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ magnetophon ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
index fe8e9f323a..491a18bba3 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
@@ -1,18 +1,28 @@
-{ lib, stdenv, fetchurl, autoreconfHook, automake, fftw, ladspaH, libxml2, pkg-config
-, perlPackages }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, automake
+, fftw
+, ladspaH
+, libxml2
+, pkg-config
+, perlPackages
+}:
stdenv.mkDerivation rec {
pname = "swh-plugins";
version = "0.4.17";
-
- src = fetchurl {
- url = "https://github.com/swh/ladspa/archive/v${version}.tar.gz";
- sha256 = "1rqwh8xrw6hnp69dg4gy336bfbfpmbx4fjrk0nb8ypjcxkz91c6i";
+ src = fetchFromGitHub {
+ owner = "swh";
+ repo = "ladspa";
+ rev = "v${version}";
+ sha256 = "sha256-eOtIhNcuItREUShI8JRlBVKfMfovpdfIYu+m37v4KLE=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
- buildInputs = [ fftw ladspaH libxml2 perlPackages.perl perlPackages.XMLParser ];
+ buildInputs = [ fftw ladspaH libxml2 perlPackages.perl perlPackages.XMLParser ];
patchPhase = ''
patchShebangs .
diff --git a/third_party/nixpkgs/pkgs/applications/audio/libopenmpt/default.nix b/third_party/nixpkgs/pkgs/applications/audio/libopenmpt/default.nix
index ef5c080133..b2b5ebecd7 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/libopenmpt/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/libopenmpt/default.nix
@@ -1,4 +1,4 @@
-{ config, lib, stdenv, fetchurl, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
+{ config, lib, stdenv, fetchurl, fetchpatch, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
, usePulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
stdenv.mkDerivation rec {
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
sha256 = "1c54lldr2imjzhlhq5lvwhj7d5794xm97cby9pznr5wdjjay0sa4";
};
+ patches = [
+ # Fix pending upstream inclusion for gcc-12 include headers:
+ # https://github.com/OpenMPT/openmpt/pull/8
+ (fetchpatch {
+ name = "gcc-12.patch";
+ url = "https://github.com/OpenMPT/openmpt/commit/6e7a43190ef2f9ba0b3efc19b9527261b69ec8f7.patch";
+ sha256 = "081m1rf09bbrlg52aihaajmld5dcnwbp6y7zpyik92mm332r330h";
+ })
+ ];
+
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix b/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix
index 7b7d811f57..64d59516f8 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix
@@ -15,24 +15,18 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "1sal85gsbnrabxi39298w9njdc08csnwl40akd6k9fsc0fmpn1b0";
- cargoBuildFlags = with lib; [
- "--no-default-features"
- "--features"
- (concatStringsSep "," (filter (x: x != "") [
- (optionalString withRodio "rodio-backend")
- (optionalString withALSA "alsa-backend")
- (optionalString withPulseAudio "pulseaudio-backend")
- (optionalString withPortAudio "portaudio-backend")
-
- ]))
- ];
-
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optional withALSA alsa-lib
++ lib.optional withPulseAudio libpulseaudio
++ lib.optional withPortAudio portaudio;
+ buildNoDefaultFeatures = true;
+ buildFeatures = lib.optional withRodio "rodio-backend"
+ ++ lib.optional withALSA "alsa-backend"
+ ++ lib.optional withPulseAudio "pulseaudio-backend"
+ ++ lib.optional withPortAudio "portaudio-backend";
+
doCheck = false;
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/audio/losslessaudiochecker/default.nix b/third_party/nixpkgs/pkgs/applications/audio/losslessaudiochecker/default.nix
new file mode 100644
index 0000000000..551f56a3ce
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/losslessaudiochecker/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook }:
+
+stdenv.mkDerivation {
+ pname = "losslessaudiochecker";
+ version = "2.0.5";
+
+ src = fetchurl {
+ url = "https://web.archive.org/web/20211119122205/https://losslessaudiochecker.com/dl/LAC-Linux-64bit.tar.gz";
+ sha256 = "1i1zbl7sqwxwmhw89lgz922l5k85in3y76zb06h8j3zd0lb20wkq";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ setSourceRoot = "sourceRoot=$PWD";
+
+ dontBuild = true;
+
+ installPhase = ''
+ install LAC -D -t $out/bin
+ '';
+
+ meta = {
+ description = "Utility to check whether audio is truly lossless or not";
+ homepage = "https://losslessaudiochecker.com";
+ license = lib.licenses.unfree;
+ platforms = lib.platforms.x86_64;
+ maintainers = with lib.maintainers; [ p-h ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix b/third_party/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
index 0213dc4af6..a50e5dcd66 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/milkytracker/default.nix b/third_party/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
index ce29a587d2..32e5cec9dd 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
homepage = "http://milkytracker.org";
license = licenses.gpl3Plus;
platforms = [ "x86_64-linux" "i686-linux" ];
- maintainers = with maintainers; [ zoomulator ];
+ maintainers = with maintainers; [];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/mixxx/default.nix b/third_party/nixpkgs/pkgs/applications/audio/mixxx/default.nix
index 518c54dc48..bbd0e07a64 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mixxx/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/mmtc/default.nix b/third_party/nixpkgs/pkgs/applications/audio/mmtc/default.nix
index fc5a2e9b03..578cecf09b 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mmtc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/mmtc/default.nix
@@ -1,27 +1,26 @@
-{ fetchFromGitHub, installShellFiles, lib, rustPlatform }:
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
rustPlatform.buildRustPackage rec {
pname = "mmtc";
- version = "0.2.13";
+ version = "0.2.14";
src = fetchFromGitHub {
owner = "figsoda";
repo = pname;
rev = "v${version}";
- sha256 = "0ag87hgdg6fvk80fgznba0xjlcajks5w5s6y8lvwhz9irn2kq2rz";
+ sha256 = "sha256-g2JHY95vkG/Ep2eqz8guteF8fHUso/JuuVijNGkgykA=";
};
- cargoSha256 = "0lkx0zj9xc0rlrq91l4wydzp430hxlrqyq7ii8wq2fcan8ln22lv";
+ cargoSha256 = "sha256-tVjy/O5hfnQFC6to8VMGc39mEXhA5lwUIne6pVvDec0=";
nativeBuildInputs = [ installShellFiles ];
preFixup = ''
completions=($releaseDir/build/mmtc-*/out/completions)
- installShellCompletion ''${completions[0]}/mmtc.{bash,fish}
- installShellCompletion --zsh ''${completions[0]}/_mmtc
+ installShellCompletion $completions/mmtc.{bash,fish} --zsh $completions/_mmtc
'';
- GEN_COMPLETIONS = "1";
+ GEN_COMPLETIONS = 1;
meta = with lib; {
description = "Minimal mpd terminal client that aims to be simple yet highly configurable";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix b/third_party/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
index 7c9f2acfd8..7e2b2bf6cf 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
@@ -1,8 +1,8 @@
{ lib, stdenv, fetchFromGitHub, lv2 }:
stdenv.mkDerivation {
- pname = "mod-distortion-git";
- version = "2016-08-19";
+ pname = "mod-distortion";
+ version = "unstable-2016-08-19";
src = fetchFromGitHub {
owner = "portalmod";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/mopidy/iris.nix b/third_party/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
index d02ca3d747..5b2cbe031c 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "Mopidy-Iris";
- version = "3.59.0";
+ version = "3.60.0";
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "0llvn0khl07ni34jvb3a1r6rnkf0ljizhpqrs5bdishfhpwyhm0j";
+ sha256 = "18w6qqmxzn8psiacybryxailm826f3j1wgiv0c03fbdsy6kr5f7l";
};
propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix b/third_party/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
index d7dd5f102d..0d65fe813e 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, libvorbis, SDL }:
stdenv.mkDerivation rec {
pname = "mp3blaster";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
};
+ patches = [
+ # Fix pending upstream inclusion for ncurses-6.3 support:
+ # https://github.com/stragulus/mp3blaster/pull/8
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/stragulus/mp3blaster/commit/62168cba5eaba6ffe56943552837cf033cfa96ed.patch";
+ sha256 = "088l27kl1l58lwxfnw5x2n64sdjy925ycphni3icwag7zvpj0xz1";
+ })
+ ];
+
buildInputs = [
ncurses
libvorbis
diff --git a/third_party/nixpkgs/pkgs/applications/audio/mpdevil/default.nix b/third_party/nixpkgs/pkgs/applications/audio/mpdevil/default.nix
index e355cfb86d..3676697f16 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mpdevil/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/mpdevil/default.nix
@@ -7,13 +7,13 @@
python3Packages.buildPythonApplication rec {
pname = "mpdevil";
- version = "1.4.0";
+ version = "1.4.1";
src = fetchFromGitHub {
owner = "SoongNoonien";
repo = pname;
rev = "v${version}";
- sha256 = "1zx129zl6bjb0j3f81yx2641nsj6ck04q5f0v0g8f08xgdwsyv3b";
+ sha256 = "1a5nhlbgi3ahnkcq16c2vgiaghgswy5lxg64pcrlbqssg1pj5gma";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/audio/munt/default.nix b/third_party/nixpkgs/pkgs/applications/audio/munt/default.nix
index 191612700f..93a9ce2585 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/munt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/musescore/default.nix b/third_party/nixpkgs/pkgs/applications/audio/musescore/default.nix
index 4b784272c3..7662eadc49 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/musescore/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -29,9 +29,9 @@ mkDerivation rec {
qtWrapperArgs = [
# MuseScore JACK backend loads libjack at runtime.
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libjack2 ]}"
- # Work around crash on update from 3.4.2 to 3.5.0
- # https://bugreports.qt.io/browse/QTBUG-85967
- "--set QML_DISABLE_DISK_CACHE 1"
+ # There are some issues with using the wayland backend, see:
+ # https://musescore.org/en/node/321936
+ "--set QT_QPA_PLATFORM xcb"
];
nativeBuildInputs = [ cmake pkg-config ];
@@ -49,7 +49,7 @@ mkDerivation rec {
description = "Music notation and composition software";
homepage = "https://musescore.org/";
license = licenses.gpl2;
- maintainers = with maintainers; [ vandenoever turion ];
+ maintainers = with maintainers; [ vandenoever turion doronbehar ];
platforms = platforms.linux;
repositories.git = "https://github.com/musescore/MuseScore";
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix b/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix
index 2824832ef6..8e9e269abc 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix
@@ -4,6 +4,7 @@
, boost
, curl
, fetchFromGitHub
+, fetchpatch
, ffmpeg
, lame
, libev
@@ -26,6 +27,16 @@ stdenv.mkDerivation rec {
sha256 = "1y00vwn1h10cfflxrm5bk271ak9gilhjycgi44hlkkhmf5bdgn35";
};
+ patches = [
+ # Fix pending upstream inclusion for ncuurses-6.3 support:
+ # https://github.com/clangen/musikcube/pull/474
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/clangen/musikcube/commit/1240720e27232fdb199a4da93ca6705864442026.patch";
+ sha256 = "0bhjgwnj6d24wb1m9xz1vi1k9xk27arba1absjbcimggn54pinid";
+ })
+ ];
+
nativeBuildInputs = [
cmake
pkg-config
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ncspot/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ncspot/default.nix
index d37cec15ff..d9df34c41f 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ncspot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/ncspot/default.nix
@@ -5,27 +5,18 @@
, withMPRIS ? false, dbus ? null
}:
-let
- features = [ "cursive/pancurses-backend" ]
- ++ lib.optional withALSA "alsa_backend"
- ++ lib.optional withPulseAudio "pulseaudio_backend"
- ++ lib.optional withPortAudio "portaudio_backend"
- ++ lib.optional withMPRIS "mpris";
-in
rustPlatform.buildRustPackage rec {
pname = "ncspot";
- version = "0.9.0";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "hrkfdn";
repo = "ncspot";
rev = "v${version}";
- sha256 = "07qqs5q64zaxl3b2091vjihqb35fm0136cm4zibrgpx21akmbvr2";
+ sha256 = "sha256-fZ0yQGLGnEFxt+OiG9J+niYzvttybudfciu5xo104Qo=";
};
- cargoSha256 = "0sdbba32f56z2q7kha5fxw2f00hikbz9sf4zl4wfl2i9b13j7mj0";
-
- cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
+ cargoSha256 = "sha256-i3/96rVfP8TbIz3pNArTp8w27rfp1aPhohfFMMHgubo=";
nativeBuildInputs = [ pkg-config ];
@@ -36,6 +27,13 @@ rustPlatform.buildRustPackage rec {
++ lib.optional withPortAudio portaudio
++ lib.optional withMPRIS dbus;
+ buildNoDefaultFeatures = true;
+ buildFeatures = [ "cursive/pancurses-backend" ]
+ ++ lib.optional withALSA "alsa_backend"
+ ++ lib.optional withPulseAudio "pulseaudio_backend"
+ ++ lib.optional withPortAudio "portaudio_backend"
+ ++ lib.optional withMPRIS "mpris";
+
doCheck = false;
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
new file mode 100644
index 0000000000..7fc21c11ff
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
@@ -0,0 +1,2007 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..41d41a5
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,2001 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "anyhow"
++version = "1.0.45"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7"
++
++[[package]]
++name = "async-channel"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
++dependencies = [
++ "concurrent-queue",
++ "event-listener",
++ "futures-core",
++]
++
++[[package]]
++name = "async-executor"
++version = "1.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
++dependencies = [
++ "async-task",
++ "concurrent-queue",
++ "fastrand",
++ "futures-lite",
++ "once_cell",
++ "slab",
++]
++
++[[package]]
++name = "async-global-executor"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6"
++dependencies = [
++ "async-channel",
++ "async-executor",
++ "async-io",
++ "async-mutex",
++ "blocking",
++ "futures-lite",
++ "num_cpus",
++ "once_cell",
++]
++
++[[package]]
++name = "async-io"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
++dependencies = [
++ "concurrent-queue",
++ "futures-lite",
++ "libc",
++ "log",
++ "once_cell",
++ "parking",
++ "polling",
++ "slab",
++ "socket2",
++ "waker-fn",
++ "winapi",
++]
++
++[[package]]
++name = "async-lock"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b"
++dependencies = [
++ "event-listener",
++]
++
++[[package]]
++name = "async-mutex"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
++dependencies = [
++ "event-listener",
++]
++
++[[package]]
++name = "async-std"
++version = "1.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"
++dependencies = [
++ "async-channel",
++ "async-global-executor",
++ "async-io",
++ "async-lock",
++ "crossbeam-utils",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-lite",
++ "gloo-timers",
++ "kv-log-macro",
++ "log",
++ "memchr",
++ "num_cpus",
++ "once_cell",
++ "pin-project-lite",
++ "pin-utils",
++ "slab",
++ "wasm-bindgen-futures",
++]
++
++[[package]]
++name = "async-task"
++version = "4.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
++
++[[package]]
++name = "atk"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "812b4911e210bd51b24596244523c856ca749e6223c50a7fbbba3f89ee37c426"
++dependencies = [
++ "atk-sys",
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++]
++
++[[package]]
++name = "atk-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f530e4af131d94cc4fa15c5c9d0348f0ef28bac64ba660b6b2a1cf2605dedfce"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "atomic-waker"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "base64"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
++
++[[package]]
++name = "bincode"
++version = "1.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "blocking"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9"
++dependencies = [
++ "async-channel",
++ "async-task",
++ "atomic-waker",
++ "fastrand",
++ "futures-lite",
++ "once_cell",
++]
++
++[[package]]
++name = "bumpalo"
++version = "3.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
++
++[[package]]
++name = "bytes"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
++
++[[package]]
++name = "cache-padded"
++version = "1.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
++
++[[package]]
++name = "cairo-rs"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5c0f2e047e8ca53d0ff249c54ae047931d7a6ebe05d00af73e0ffeb6e34bdb8"
++dependencies = [
++ "bitflags",
++ "cairo-sys-rs",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "thiserror",
++]
++
++[[package]]
++name = "cairo-sys-rs"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "castaway"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed247d1586918e46f2bbe0f13b06498db8dab5a8c1093f156652e9f2e0a73fc3"
++
++[[package]]
++name = "cc"
++version = "1.0.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "chrono"
++version = "0.4.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
++dependencies = [
++ "libc",
++ "num-integer",
++ "num-traits",
++ "time",
++ "winapi",
++]
++
++[[package]]
++name = "concurrent-queue"
++version = "1.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
++dependencies = [
++ "cache-padded",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
++dependencies = [
++ "cfg-if",
++ "lazy_static",
++]
++
++[[package]]
++name = "ctor"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
++dependencies = [
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "curl"
++version = "0.4.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "877cc2f9b8367e32b6dabb9d581557e651cb3aa693a37f8679091bbf42687d5d"
++dependencies = [
++ "curl-sys",
++ "libc",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "socket2",
++ "winapi",
++]
++
++[[package]]
++name = "curl-sys"
++version = "0.4.50+curl-7.79.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4856b76919dd599f31236bb18db5f5bd36e2ce131e64f857ca5c259665b76171"
++dependencies = [
++ "cc",
++ "libc",
++ "libnghttp2-sys",
++ "libz-sys",
++ "openssl-sys",
++ "pkg-config",
++ "vcpkg",
++ "winapi",
++]
++
++[[package]]
++name = "custom_error"
++version = "1.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f8a51dd197fa6ba5b4dc98a990a43cc13693c23eb0089ebb0fcc1f04152bca6"
++
++[[package]]
++name = "dbus"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "48b5f0f36f1eebe901b0e6bee369a77ed3396334bf3f09abd46454a576f71819"
++dependencies = [
++ "libc",
++ "libdbus-sys",
++]
++
++[[package]]
++name = "dirs"
++version = "3.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
++dependencies = [
++ "dirs-sys",
++]
++
++[[package]]
++name = "dirs"
++version = "4.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
++dependencies = [
++ "dirs-sys",
++]
++
++[[package]]
++name = "dirs-sys"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
++dependencies = [
++ "libc",
++ "redox_users",
++ "winapi",
++]
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "encoding_rs"
++version = "0.8.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a74ea89a0a1b98f6332de42c95baff457ada66d1cb4030f9ff151b2041a1c746"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "event-listener"
++version = "2.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
++
++[[package]]
++name = "fastrand"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
++dependencies = [
++ "instant",
++]
++
++[[package]]
++name = "fnv"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++
++[[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
++[[package]]
++name = "form_urlencoded"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
++dependencies = [
++ "matches",
++ "percent-encoding",
++]
++
++[[package]]
++name = "fragile"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "69a039c3498dc930fe810151a34ba0c1c70b02b8625035592e74432f678591f2"
++
++[[package]]
++name = "futures"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"
++dependencies = [
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-io",
++ "futures-sink",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-channel"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"
++dependencies = [
++ "futures-core",
++ "futures-sink",
++]
++
++[[package]]
++name = "futures-core"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
++
++[[package]]
++name = "futures-executor"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"
++dependencies = [
++ "futures-core",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-io"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
++
++[[package]]
++name = "futures-lite"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
++dependencies = [
++ "fastrand",
++ "futures-core",
++ "futures-io",
++ "memchr",
++ "parking",
++ "pin-project-lite",
++ "waker-fn",
++]
++
++[[package]]
++name = "futures-macro"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
++dependencies = [
++ "autocfg",
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "futures-sink"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11"
++
++[[package]]
++name = "futures-task"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99"
++
++[[package]]
++name = "futures-util"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
++dependencies = [
++ "autocfg",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-macro",
++ "futures-sink",
++ "futures-task",
++ "memchr",
++ "pin-project-lite",
++ "pin-utils",
++ "proc-macro-hack",
++ "proc-macro-nested",
++ "slab",
++]
++
++[[package]]
++name = "gdk"
++version = "0.13.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "db00839b2a68a7a10af3fa28dfb3febaba3a20c3a9ac2425a33b7df1f84a6b7d"
++dependencies = [
++ "bitflags",
++ "cairo-rs",
++ "cairo-sys-rs",
++ "gdk-pixbuf",
++ "gdk-sys",
++ "gio",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pango",
++]
++
++[[package]]
++name = "gdk-pixbuf"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f6dae3cb99dd49b758b88f0132f8d401108e63ae8edd45f432d42cdff99998a"
++dependencies = [
++ "gdk-pixbuf-sys",
++ "gio",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++]
++
++[[package]]
++name = "gdk-pixbuf-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3bfe468a7f43e97b8d193a762b6c5cf67a7d36cacbc0b9291dbcae24bfea1e8f"
++dependencies = [
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gdk-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a9653cfc500fd268015b1ac055ddbc3df7a5c9ea3f4ccef147b3957bd140d69"
++dependencies = [
++ "cairo-sys-rs",
++ "gdk-pixbuf-sys",
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pango-sys",
++ "pkg-config",
++ "system-deps",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "gio"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1fb60242bfff700772dae5d9e3a1f7aa2e4ebccf18b89662a16acb2822568561"
++dependencies = [
++ "bitflags",
++ "futures",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-util",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++ "thiserror",
++]
++
++[[package]]
++name = "gio-sys"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e24fb752f8f5d2cf6bbc2c606fd2bc989c81c5e2fe321ab974d54f8b6344eac"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++ "winapi",
++]
++
++[[package]]
++name = "glib"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0c685013b7515e668f1b57a165b009d4d28cb139a8a989bbd699c10dad29d0c5"
++dependencies = [
++ "bitflags",
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-task",
++ "futures-util",
++ "glib-macros",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++]
++
++[[package]]
++name = "glib-macros"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
++dependencies = [
++ "anyhow",
++ "heck",
++ "itertools",
++ "proc-macro-crate",
++ "proc-macro-error",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1"
++dependencies = [
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gloo-timers"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f"
++dependencies = [
++ "futures-channel",
++ "futures-core",
++ "js-sys",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer"
++version = "0.16.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ff5d0f7ff308ae37e6eb47b6ded17785bdea06e438a708cd09e0288c1862f33"
++dependencies = [
++ "bitflags",
++ "cfg-if",
++ "futures-channel",
++ "futures-core",
++ "futures-util",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "libc",
++ "muldiv",
++ "num-rational 0.3.2",
++ "once_cell",
++ "paste",
++ "pretty-hex",
++ "thiserror",
++]
++
++[[package]]
++name = "gstreamer-base"
++version = "0.16.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bafd01c56f59cb10f4b5a10f97bb4bdf8c2b2784ae5b04da7e2d400cf6e6afcf"
++dependencies = [
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "libc",
++]
++
++[[package]]
++name = "gstreamer-base-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4b7b6dc2d6e160a1ae28612f602bd500b3fa474ce90bf6bb2f08072682beef5"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer-player"
++version = "0.16.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34edf65e48e0d29c18101d77a2e004488a61f81a852a75e19d9c73e03d35cb77"
++dependencies = [
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-player-sys",
++ "gstreamer-sys",
++ "gstreamer-video",
++ "libc",
++]
++
++[[package]]
++name = "gstreamer-player-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53aaf79503e691a32266670bc631edb6c52bdb854984da76a0ce2756f49584a2"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "gstreamer-video-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc1f154082d01af5718c5f8a8eb4f565a4ea5586ad8833a8fc2c2aa6844b601d"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer-video"
++version = "0.16.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7bbb1485d87469849ec45c08e03c2f280d3ea20ff3c439d03185be54e3ce98e"
++dependencies = [
++ "bitflags",
++ "futures-channel",
++ "futures-util",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-base",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "gstreamer-video-sys",
++ "libc",
++ "once_cell",
++]
++
++[[package]]
++name = "gstreamer-video-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92347e46438007d6a2386302125f62cb9df6769cdacb931af5c0f12c1ee21de4"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gtk"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f022f2054072b3af07666341984562c8e626a79daa8be27b955d12d06a5ad6a"
++dependencies = [
++ "atk",
++ "bitflags",
++ "cairo-rs",
++ "cairo-sys-rs",
++ "cc",
++ "gdk",
++ "gdk-pixbuf",
++ "gdk-pixbuf-sys",
++ "gdk-sys",
++ "gio",
++ "gio-sys",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gtk-sys",
++ "libc",
++ "once_cell",
++ "pango",
++ "pango-sys",
++ "pkg-config",
++]
++
++[[package]]
++name = "gtk-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89acda6f084863307d948ba64a4b1ef674e8527dddab147ee4cdcc194c880457"
++dependencies = [
++ "atk-sys",
++ "cairo-sys-rs",
++ "gdk-pixbuf-sys",
++ "gdk-sys",
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pango-sys",
++ "system-deps",
++]
++
++[[package]]
++name = "heck"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "hex"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
++
++[[package]]
++name = "http"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b"
++dependencies = [
++ "bytes",
++ "fnv",
++ "itoa",
++]
++
++[[package]]
++name = "idna"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
++dependencies = [
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
++]
++
++[[package]]
++name = "instant"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "isahc"
++version = "1.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "40ef5402b1791c9fc479ef9871601a2f10e4cc0f14414a5c9c6e043fb51e5a56"
++dependencies = [
++ "async-channel",
++ "castaway",
++ "chrono",
++ "crossbeam-utils",
++ "curl",
++ "curl-sys",
++ "encoding_rs",
++ "event-listener",
++ "futures-lite",
++ "http",
++ "log",
++ "mime",
++ "once_cell",
++ "polling",
++ "slab",
++ "sluice",
++ "tracing",
++ "tracing-futures",
++ "url",
++ "waker-fn",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++
++[[package]]
++name = "js-sys"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
++dependencies = [
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "kv-log-macro"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
++dependencies = [
++ "log",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.107"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
++
++[[package]]
++name = "libdbus-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b"
++dependencies = [
++ "pkg-config",
++]
++
++[[package]]
++name = "libnghttp2-sys"
++version = "0.1.7+1.45.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f"
++dependencies = [
++ "cc",
++ "libc",
++]
++
++[[package]]
++name = "libz-sys"
++version = "1.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
++name = "log"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++dependencies = [
++ "cfg-if",
++ "value-bag",
++]
++
++[[package]]
++name = "loggerv"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60d8de15ae71e760bce7f05447f85f73624fe0d3b1e4c5a63ba5d4cb0748d374"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "log",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
++
++[[package]]
++name = "memchr"
++version = "2.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
++
++[[package]]
++name = "mime"
++version = "0.3.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
++
++[[package]]
++name = "mp4ameta"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "619f6fe86b8690efad1c53d2cc8b9c1af2a5f8b93247e0ba05ece1b7639b4e66"
++dependencies = [
++ "lazy_static",
++ "mp4ameta_proc",
++]
++
++[[package]]
++name = "mp4ameta_proc"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4975ce203cd69e96a89f803d87b7b53d1950a6e93668a666d177c28aebd15c8a"
++
++[[package]]
++name = "mpris-player"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f6badd6ebe31be46eb2e2975cf3b34b183bace5f8a8db1d609fefc4d46fbb07"
++dependencies = [
++ "dbus",
++ "glib",
++]
++
++[[package]]
++name = "muldiv"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
++
++[[package]]
++name = "netease-cloud-music-gtk"
++version = "1.2.2"
++dependencies = [
++ "async-std",
++ "base64",
++ "bincode",
++ "cairo-rs",
++ "chrono",
++ "custom_error",
++ "dirs 4.0.0",
++ "fragile",
++ "futures",
++ "gdk",
++ "gdk-pixbuf",
++ "gio",
++ "glib",
++ "gstreamer",
++ "gstreamer-player",
++ "gtk",
++ "hex",
++ "isahc",
++ "lazy_static",
++ "log",
++ "loggerv",
++ "mp4ameta",
++ "mpris-player",
++ "num",
++ "openssl",
++ "pango",
++ "rand",
++ "regex",
++ "serde",
++ "serde_json",
++ "urlqstring",
++ "xdg",
++]
++
++[[package]]
++name = "num"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
++dependencies = [
++ "num-bigint",
++ "num-complex",
++ "num-integer",
++ "num-iter",
++ "num-rational 0.4.0",
++ "num-traits",
++]
++
++[[package]]
++name = "num-bigint"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-complex"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
++dependencies = [
++ "num-traits",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++dependencies = [
++ "autocfg",
++ "num-traits",
++]
++
++[[package]]
++name = "num-iter"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-rational"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-rational"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
++dependencies = [
++ "autocfg",
++ "num-bigint",
++ "num-integer",
++ "num-traits",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
++
++[[package]]
++name = "openssl"
++version = "0.10.38"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
++dependencies = [
++ "bitflags",
++ "cfg-if",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
++
++[[package]]
++name = "openssl-sys"
++version = "0.9.70"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf"
++dependencies = [
++ "autocfg",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
++name = "pango"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9937068580bebd8ced19975938573803273ccbcbd598c58d4906efd4ac87c438"
++dependencies = [
++ "bitflags",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++ "pango-sys",
++]
++
++[[package]]
++name = "pango-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "24d2650c8b62d116c020abd0cea26a4ed96526afda89b1c4ea567131fdefc890"
++dependencies = [
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "parking"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
++
++[[package]]
++name = "paste"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5"
++
++[[package]]
++name = "percent-encoding"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
++
++[[package]]
++name = "pin-project"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08"
++dependencies = [
++ "pin-project-internal",
++]
++
++[[package]]
++name = "pin-project-internal"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pin-project-lite"
++version = "0.2.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
++
++[[package]]
++name = "pin-utils"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
++
++[[package]]
++name = "polling"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "log",
++ "wepoll-ffi",
++ "winapi",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
++
++[[package]]
++name = "pretty-hex"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131"
++
++[[package]]
++name = "proc-macro-crate"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++dependencies = [
++ "toml",
++]
++
++[[package]]
++name = "proc-macro-error"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
++dependencies = [
++ "proc-macro-error-attr",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-error-attr"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
++
++[[package]]
++name = "proc-macro-nested"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.8.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
++dependencies = [
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "redox_users"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
++dependencies = [
++ "getrandom",
++ "redox_syscall",
++]
++
++[[package]]
++name = "regex"
++version = "1.5.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.25"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
++
++[[package]]
++name = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[package]]
++name = "schannel"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
++dependencies = [
++ "lazy_static",
++ "winapi",
++]
++
++[[package]]
++name = "serde"
++version = "1.0.130"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.130"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
++
++[[package]]
++name = "sluice"
++version = "0.5.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
++dependencies = [
++ "async-channel",
++ "futures-core",
++ "futures-io",
++]
++
++[[package]]
++name = "socket2"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "strum"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
++
++[[package]]
++name = "strum_macros"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
++dependencies = [
++ "heck",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.81"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "system-deps"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
++dependencies = [
++ "heck",
++ "pkg-config",
++ "strum",
++ "strum_macros",
++ "thiserror",
++ "toml",
++ "version-compare",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "time"
++version = "0.1.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
++dependencies = [
++ "tinyvec_macros",
++]
++
++[[package]]
++name = "tinyvec_macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
++
++[[package]]
++name = "toml"
++version = "0.5.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "tracing"
++version = "0.1.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
++dependencies = [
++ "cfg-if",
++ "log",
++ "pin-project-lite",
++ "tracing-attributes",
++ "tracing-core",
++]
++
++[[package]]
++name = "tracing-attributes"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "tracing-core"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
++dependencies = [
++ "lazy_static",
++]
++
++[[package]]
++name = "tracing-futures"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
++dependencies = [
++ "pin-project",
++ "tracing",
++]
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
++dependencies = [
++ "tinyvec",
++]
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
++
++[[package]]
++name = "url"
++version = "2.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
++dependencies = [
++ "form_urlencoded",
++ "idna",
++ "matches",
++ "percent-encoding",
++]
++
++[[package]]
++name = "urlqstring"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "25ef3473a06a065718d8ec7cd7acc6a35fc20f836dee7661ad3b64ea3cc2e0cc"
++
++[[package]]
++name = "value-bag"
++version = "1.0.0-alpha.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f"
++dependencies = [
++ "ctor",
++ "version_check",
++]
++
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
++[[package]]
++name = "version-compare"
++version = "0.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
++
++[[package]]
++name = "version_check"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
++
++[[package]]
++name = "waker-fn"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
++
++[[package]]
++name = "wasi"
++version = "0.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++
++[[package]]
++name = "wasm-bindgen"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
++dependencies = [
++ "cfg-if",
++ "wasm-bindgen-macro",
++]
++
++[[package]]
++name = "wasm-bindgen-backend"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
++dependencies = [
++ "bumpalo",
++ "lazy_static",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-futures"
++version = "0.4.28"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39"
++dependencies = [
++ "cfg-if",
++ "js-sys",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "wasm-bindgen-macro"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
++dependencies = [
++ "quote",
++ "wasm-bindgen-macro-support",
++]
++
++[[package]]
++name = "wasm-bindgen-macro-support"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-shared"
++version = "0.2.78"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
++
++[[package]]
++name = "web-sys"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
++dependencies = [
++ "js-sys",
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "wepoll-ffi"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
++dependencies = [
++ "cc",
++]
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "xdg"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3a23fe958c70412687039c86f578938b4a0bb50ec788e96bce4d6ab00ddd5803"
++dependencies = [
++ "dirs 3.0.2",
++]
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
new file mode 100644
index 0000000000..76e1bc3923
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, glib
+, gtk3
+, curl
+, dbus
+, openssl
+, gst_all_1
+, pkg-config
+, rustPlatform
+, wrapGAppsHook
+, fetchurl
+, fetchFromGitHub
+, makeDesktopItem
+}:
+rustPlatform.buildRustPackage rec {
+ pname = "netease-cloud-music-gtk";
+ version = "1.2.2";
+ src = fetchFromGitHub {
+ owner = "gmg137";
+ repo = "netease-cloud-music-gtk";
+ rev = version;
+ sha256 = "sha256-42MaylfG5LY+TiYHWQMoh9CiVLShKXSBpMrxdWhujow=";
+ };
+ cargoSha256 = "sha256-A9wIcESdaJwLY4g/QlOxMU5PBB9wjvIzaXBSqeiRJBM=";
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ nativeBuildInputs = [
+ glib
+ gtk3
+ dbus
+ pkg-config
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ curl
+ dbus
+ openssl
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ]);
+
+ postPatch = ''
+ install -D netease-cloud-music-gtk.desktop $out/share/applications/netease-cloud-music-gtk.desktop
+ install -D icons/netease-cloud-music-gtk.svg $out/share/icons/hicolor/scalable/apps/netease-cloud-music-gtk.svg
+ '';
+
+ meta = with lib; {
+ description = "netease-cloud-music-gtk is a Rust + GTK based netease cloud music player";
+ homepage = "https://github.com/gmg137/netease-cloud-music-gtk";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ diffumist ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
new file mode 100755
index 0000000000..75b04d1e77
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils ripgrep git cargo
+
+# Ref: https://github.com/NixOS/nixpkgs/blob/nixos-21.05/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
+
+set -eu -vx
+
+here=$PWD
+version=$(cat default.nix | rg '^ version = "' | cut -d '"' -f 2)
+checkout=$(mktemp -d)
+
+git clone -b "$version" --depth=1 https://github.com/gmg137/netease-cloud-music-gtk "$checkout"
+cd "$checkout"
+
+cargo generate-lockfile
+git add -f Cargo.lock
+git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
+
+cd "$here"
+rm -rf "$checkout"
diff --git a/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix b/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
index b24c2eebcf..b18f2b52f9 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
@@ -37,6 +37,6 @@ buildGoModule rec {
homepage = "https://github.com/lawl/NoiseTorch";
license = licenses.gpl3Plus;
platforms = platforms.linux;
- maintainers = with maintainers; [ panaeon legendofmiracles ];
+ maintainers = with maintainers; [ panaeon lom ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/nootka/unstable.nix b/third_party/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
index edfb194836..b5e820e834 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
@@ -1,20 +1,38 @@
-{ lib, stdenv, fetchurl, cmake
-, alsa-lib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch
-, qtbase, qtdeclarative, qtquickcontrols2
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, alsa-lib
+, fftwSinglePrec
+, libjack2
+, libpulseaudio
+, libvorbis
+, soundtouch
+, qtbase
+, qtdeclarative
+, qtquickcontrols2
}:
stdenv.mkDerivation rec {
- name = "nootka-1.7.0-beta1";
+ pname = "nootka";
+ version = "1.7.0-beta1";
src = fetchurl {
- url = "mirror://sourceforge/nootka/${name}-source.tar.bz2";
+ url = "mirror://sourceforge/nootka/nootka-${version}-source.tar.bz2";
sha256 = "13b50vnpr1zx2mrgkc8fmhsyfa19rqq1rksvn31145dy6fk1f3gc";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
- alsa-lib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch
- qtbase qtdeclarative qtquickcontrols2
+ alsa-lib
+ fftwSinglePrec
+ libjack2
+ libpulseaudio
+ libvorbis
+ soundtouch
+ qtbase
+ qtdeclarative
+ qtquickcontrols2
];
dontWrapQtApps = true;
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
index 7ad1e319bf..c849b94e48 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "ocenaudio";
- version = "3.10.6";
+ version = "3.11.0";
src = fetchurl {
url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
- sha256 = "0fgvm1xw2kgrqj3w6slpfxbb3pw9k8i0dz16q9d5d8gyyvr2mh8g";
+ sha256 = "1yflpyl0d1mi0zxdyrlbg0px95s2c945ahy0agc8rha01ccf7jwy";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/audio/orca-c/default.nix b/third_party/nixpkgs/pkgs/applications/audio/orca-c/default.nix
index 4bad496033..420055884b 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/orca-c/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/orca-c/default.nix
@@ -1,8 +1,7 @@
{ lib, stdenv, fetchgit, ncurses, portmidi }:
stdenv.mkDerivation {
pname = "orca-c";
-
- version = "git-2021-02-13";
+ version = "unstable-2021-02-13";
src = fetchgit {
url = "https://git.sr.ht/~rabbits/orca";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/paprefs/default.nix b/third_party/nixpkgs/pkgs/applications/audio/paprefs/default.nix
index 64e403001a..31ccb212cd 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/paprefs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/paprefs/default.nix
@@ -1,5 +1,6 @@
{ fetchurl
-, lib, stdenv
+, lib
+, stdenv
, meson
, ninja
, gettext
@@ -11,10 +12,11 @@
}:
stdenv.mkDerivation rec {
- name = "paprefs-1.1";
+ pname = "paprefs";
+ version = "1.1";
src = fetchurl {
- url = "https://freedesktop.org/software/pulseaudio/paprefs/${name}.tar.xz";
+ url = "https://freedesktop.org/software/pulseaudio/paprefs/paprefs-${version}.tar.xz";
sha256 = "189z5p20hk0xv9vwvym293503j4pwl03xqk9hl7cl6dwgv0l7wkf";
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/patchmatrix/default.nix b/third_party/nixpkgs/pkgs/applications/audio/patchmatrix/default.nix
new file mode 100644
index 0000000000..a5d135ce9d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/patchmatrix/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, libjack2
+, lv2
+, meson
+, ninja
+, pkg-config
+, glew
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+ pname = "patchmatrix";
+ version = "0.26.0";
+
+ src = fetchFromGitHub {
+ owner = "OpenMusicKontrollers";
+ repo = pname;
+ rev = version;
+ hash = "sha256-rR3y5rGzmib//caPmhthvMelAdHRvV0lMRfvcj9kcCg=";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ ];
+
+ buildInputs = [
+ glew
+ libjack2
+ lv2
+ xorg.libX11
+ xorg.libXext
+ ];
+
+ meta = with lib; {
+ description = "A JACK patchbay in flow matrix style";
+ homepage = "https://github.com/OpenMusicKontrollers/patchmatrix";
+ license = licenses.artistic2;
+ maintainers = with maintainers; [ pennae ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/plexamp/default.nix b/third_party/nixpkgs/pkgs/applications/audio/plexamp/default.nix
index c542517797..b5cf068d56 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/plexamp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/plexamp/default.nix
@@ -2,26 +2,25 @@
let
pname = "plexamp";
- version = "3.7.1";
- name = "${pname}-${version}";
+ version = "3.8.2";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage";
- sha512 = "jKuuM1vQANGYE2W0OGl+35mB1ve5K/xPcBTk2O1azPRBDlRVU0DHRSQy2T71kwhxES1ASRt91qAV/dATk6oUkw==";
+ sha512 = "JVzfWlrX21KHw4tSrGpCYqqoWFudnyFG4YnHKsnIUtxLDkjyQA8N2/OrDIR+SlK/b0RRs9KZ4lbqQMX8PXUHsg==";
};
appimageContents = appimageTools.extractType2 {
- inherit name src;
+ inherit pname version src;
};
in appimageTools.wrapType2 {
- inherit name src;
+ inherit pname version src;
multiPkgs = null; # no 32bit needed
extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
extraInstallCommands = ''
- ln -s $out/bin/${name} $out/bin/${pname}
+ ln -s $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
install -m 444 -D ${appimageContents}/plexamp.png \
$out/share/icons/hicolor/512x512/apps/plexamp.png
@@ -34,7 +33,7 @@ in appimageTools.wrapType2 {
meta = with lib; {
description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
homepage = "https://plexamp.com/";
- changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/32";
+ changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/35";
license = licenses.unfree;
maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/pocket-casts/default.nix b/third_party/nixpkgs/pkgs/applications/audio/pocket-casts/default.nix
index ab55287f29..46625253d0 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/pocket-casts/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/pocket-casts/default.nix
@@ -1,11 +1,7 @@
-{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron_12,
-alsa-lib, gtk3, libXScrnSaver, libXtst, mesa, nss }:
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, gtk3, libXScrnSaver, libXtst, mesa, nss }:
-let
- # Using Electron 12 to solve errors regarding threading
- electron = electron_12;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "pocket-casts";
version = "0.5.0";
@@ -41,8 +37,9 @@ in stdenv.mkDerivation rec {
'';
postFixup = ''
- substituteInPlace $out/share/applications/pocket-casts.desktop --replace '"/opt/Pocket Casts/pocket-casts"' $out/bin/pocket-casts
- substituteInPlace $out/share/applications/pocket-casts.desktop --replace '/usr/share/icons/hicolor/0x0/apps/pocket-casts.png' "pocket-casts"
+ 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
diff --git a/third_party/nixpkgs/pkgs/applications/audio/praat/default.nix b/third_party/nixpkgs/pkgs/applications/audio/praat/default.nix
index 75a706cff1..ac7f4206db 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/praat/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index 606f80d1e4..e5a97aee86 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "pt2-clone";
- version = "1.36";
+ version = "1.37";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "pt2-clone";
rev = "v${version}";
- sha256 = "sha256-QyhBoWCkj7iYXAFsyVH6+XH2P/MQEXZQfAcUDu4Rtco=";
+ sha256 = "sha256-r9H+qF542j2qjmOEjJLAtnMU7SkJBJB8nH39zhkZu9M=";
};
nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ptcollab/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ptcollab/default.nix
index ffc2d72891..71c574490f 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ptcollab/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch b/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch
new file mode 100644
index 0000000000..2f38386f96
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch
@@ -0,0 +1,25 @@
+From a4bf7df795146c843696daee8c02826ba0034298 Mon Sep 17 00:00:00 2001
+From: Florian Klink
+Date: Sun, 21 Nov 2021 12:04:48 +0100
+Subject: [PATCH] setup.py: remove dbus-python from list
+
+I wasn't able to convince setuptools to find this.
+---
+ setup.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 61d6831..013fff3 100644
+--- a/setup.py
++++ b/setup.py
+@@ -42,7 +42,6 @@ setuptools.setup(
+ install_requires=[
+ 'docopt',
+ 'chardet',
+- 'dbus-python',
+ 'docopt',
+ 'requests',
+ 'setproctitle',
+--
+2.33.1
+
diff --git a/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix b/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 83de192c6b..384718f1db 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -1,43 +1,64 @@
-{ fetchFromGitHub, lib, pythonPackages
-, mp3Support ? true, lame ? null
-, opusSupport ? true, opusTools ? null
-, faacSupport ? false, faac ? null
-, flacSupport ? true, flac ? null
-, soxSupport ? true, sox ? null
-, vorbisSupport ? true, vorbis-tools ? null
+{ fetchFromGitHub
+, lib
+, python3Packages
+, mp3Support ? true
+, lame
+, opusSupport ? true
+, opusTools
+, faacSupport ? false
+, faac
+, flacSupport ? true
+, flac
+, soxSupport ? true
+, sox
+, vorbisSupport ? true
+, vorbis-tools
+, pulseaudio
}:
-assert mp3Support -> lame != null;
-assert opusSupport -> opusTools != null;
-assert faacSupport -> faac != null;
-assert flacSupport -> flac != null;
-assert soxSupport -> sox != null;
-assert vorbisSupport -> vorbis-tools != null;
-
-let
- zeroconf = pythonPackages.callPackage ./zeroconf.nix { };
-in
-pythonPackages.buildPythonApplication {
+python3Packages.buildPythonApplication {
pname = "pulseaudio-dlna";
- version = "unstable-2017-11-01";
+ version = "unstable-2021-11-09";
src = fetchFromGitHub {
- owner = "masmu";
+ owner = "Cygn";
repo = "pulseaudio-dlna";
- rev = "4472928dd23f274193f14289f59daec411023ab0";
- sha256 = "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk";
+ rev = "637a2e7bba2277137c5f12fb58e63100dab7cbe6";
+ sha256 = "sha256-Oda+zQQJE2D3fiNWTzxYvI8cZVHG5JAoV2Wf5Z6IU3M=";
};
- propagatedBuildInputs = with pythonPackages; [
- dbus-python docopt requests setproctitle protobuf psutil futures
- chardet notify2 netifaces pyroute2 pygobject2 lxml setuptools ]
- ++ [ zeroconf ]
- ++ lib.optional mp3Support lame
- ++ lib.optional opusSupport opusTools
- ++ lib.optional faacSupport faac
- ++ lib.optional flacSupport flac
- ++ lib.optional soxSupport sox
- ++ lib.optional vorbisSupport vorbis-tools;
+ patches = [
+ ./0001-setup.py-remove-dbus-python-from-list.patch
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ dbus-python
+ docopt
+ requests
+ setproctitle
+ protobuf
+ psutil
+ chardet
+ netifaces
+ notify2
+ pyroute2
+ pygobject3
+ PyChromecast
+ lxml
+ setuptools
+ zeroconf
+ ]
+ ++ lib.optional mp3Support lame
+ ++ lib.optional opusSupport opusTools
+ ++ lib.optional faacSupport faac
+ ++ lib.optional flacSupport flac
+ ++ lib.optional soxSupport sox
+ ++ lib.optional vorbisSupport vorbis-tools;
+
+ # pulseaudio-dlna shells out to pactl to configure sinks and sources.
+ # As pactl might not be in $PATH, add --suffix it (so pactl configured by the
+ # user get priority)
+ makeWrapperArgs = [ "--suffix PATH : ${lib.makeBinPath [ pulseaudio ]}" ];
# upstream has no tests
checkPhase = ''
@@ -46,7 +67,7 @@ pythonPackages.buildPythonApplication {
meta = with lib; {
description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
- homepage = "https://github.com/masmu/pulseaudio-dlna";
+ homepage = "https://github.com/Cygn/pulseaudio-dlna";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mog ];
platforms = platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/third_party/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
index 7d1ec9f997..1d5edf892c 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/qpwgraph/default.nix b/third_party/nixpkgs/pkgs/applications/audio/qpwgraph/default.nix
new file mode 100644
index 0000000000..492610db27
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/qpwgraph/default.nix
@@ -0,0 +1,34 @@
+{ lib, mkDerivation, fetchFromGitLab
+, cmake, pkg-config
+, alsa-lib, pipewire
+}:
+
+mkDerivation rec {
+ pname = "qpwgraph";
+ version = "0.0.9";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.freedesktop.org";
+ owner = "rncbc";
+ repo = "qpwgraph";
+ rev = "v${version}";
+ sha256 = "WC2SB6gisRSZxG9WZtMVBzwkEJtPEGZRmezElLAG0ns=";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ alsa-lib pipewire ];
+
+ meta = with lib; {
+ description = "Qt graph manager for PipeWire, similar to QjackCtl.";
+ longDescription = ''
+ qpwgraph is a graph manager dedicated for PipeWire,
+ using the Qt C++ framework, based and pretty much like
+ the same of QjackCtl.
+ '';
+ homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kanashimia ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/roomeqwizard/default.nix b/third_party/nixpkgs/pkgs/applications/audio/roomeqwizard/default.nix
new file mode 100644
index 0000000000..9d4118a439
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/roomeqwizard/default.nix
@@ -0,0 +1,118 @@
+{ coreutils
+, fetchurl
+, gawk
+, gnused
+, jdk8
+, lib
+, makeDesktopItem
+, makeWrapper
+, stdenv
+, writeScript
+, writeTextFile
+, recommendedUdevRules ? true
+}:
+
+stdenv.mkDerivation rec {
+ pname = "roomeqwizard";
+ version = "5.20.4";
+
+ src = fetchurl {
+ url = "https://www.roomeqwizard.com/installers/REW_linux_${lib.replaceChars [ "." ] [ "_" ] version}.sh";
+ sha256 = "0m2b5hwazy4vyjk51cmayys250rircs3c0v7bv5mn28h7hyq29s8";
+ };
+
+ dontUnpack = true;
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = pname;
+ desktopName = "REW";
+ genericName = "Software for audio measurements";
+ categories = "AudioVideo;";
+ };
+
+ responseFile = writeTextFile {
+ name = "response.varfile";
+ text = ''
+ createDesktopLinkAction$Boolean=false
+ executeLauncherAction$Boolean=false
+ mem$Integer=1
+ opengl$Boolean=false
+ sys.adminRights$Boolean=false
+ sys.installationDir=INSTALLDIR
+ sys.languageId=en
+ sys.programGroupDisabled$Boolean=true
+ '';
+ };
+
+ udevRules = ''
+ # MiniDSP UMIK-1 calibrated USB microphone
+ SUBSYSTEM=="usb", ATTR{idVendor}=="2752", ATTR{idProduct}=="0007", TAG+="uaccess"
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildPhase = ''
+ runHook preBuild
+
+ # set JDK path in installer
+ sed -E 's|^#\s*(INSTALL4J_JAVA_HOME_OVERRIDE=)|\1${jdk8}|' $src > installer
+ chmod +x installer
+
+ sed -e "s|INSTALLDIR|$out/share/roomeqwizard|" $responseFile > response.varfile
+
+ export HOME=$PWD
+
+ ./installer -q -varfile response.varfile
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/lib/udev/rules.d $out/share/icons/hicolor/256x256/apps
+ makeWrapper $out/share/roomeqwizard/roomeqwizard $out/bin/roomeqwizard \
+ --set INSTALL4J_JAVA_HOME_OVERRIDE ${jdk8} \
+ --prefix PATH : ${lib.makeBinPath [ coreutils gnused gawk ]}
+
+ cp -r "$desktopItem/share/applications" $out/share/
+ cp $out/share/roomeqwizard/.install4j/s_*.png "$out/share/icons/hicolor/256x256/apps/${pname}.png"
+
+ ${lib.optionalString recommendedUdevRules ''echo "$udevRules" > $out/lib/udev/rules.d/90-roomeqwizard.rules''}
+
+ runHook postInstall
+ '';
+
+ passthru.updateScript = writeScript "${pname}-update.sh" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p curl common-updater-scripts nixpkgs-fmt coreutils perl
+
+ set -euo pipefail
+
+ perlexpr='if (/current version.{1,10}v(\d+)\.(\d+)\.(\d+)/i) { print "$1.$2.$3"; break; }'
+
+ oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
+ latestVersion="$(curl -sS https://www.roomeqwizard.com/index.html | perl -ne "$perlexpr")"
+
+ if [ ! "$oldVersion" = "$latestVersion" ]; then
+ update-source-version ${pname} "$latestVersion" --version-key=version --print-changes
+ nixpkgs-fmt "pkgs/applications/audio/roomeqwizard/default.nix"
+ else
+ echo "${pname} is already up-to-date"
+ fi
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.roomeqwizard.com/";
+ license = licenses.unfree;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ zaninime ];
+ description = "Room Acoustics Software";
+ longDescription = ''
+ REW is free software for room acoustic measurement, loudspeaker
+ measurement and audio device measurement.
+ '';
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
index ba193f7019..bf74dd64f9 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "schismtracker";
- version = "20210525";
+ version = "20211116";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "06ybkbqry7f7lmzgwb9s7ipafshl5gdj98lcjsjkcbnywj8r9b3h";
+ sha256 = "1kcw4rwphyqh0hwwjsydzwg484xj17rb5lc8pfsixsg77z50ayzz";
};
configureFlags = [ "--enable-dependency-tracking" ]
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
buildInputs = [ SDL ] ++ lib.optional stdenv.isLinux alsa-lib;
+ enableParallelBuilding = true;
+
meta = with lib; {
description = "Music tracker application, free reimplementation of Impulse Tracker";
homepage = "http://schismtracker.org/";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix
index 0299f66191..d2b6ba07d2 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -1,7 +1,10 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
, alsa-lib, asio, avahi, boost17x, flac, libogg, libvorbis, soxr
+, pulseaudioSupport ? false, libpulseaudio
, nixosTests }:
+assert pulseaudioSupport -> libpulseaudio != null;
+
let
dependency = { name, version, sha256 }:
@@ -50,7 +53,7 @@ stdenv.mkDerivation rec {
boost17x
alsa-lib asio avahi flac libogg libvorbis
aixlog popl soxr
- ];
+ ] ++ lib.optional pulseaudioSupport libpulseaudio;
# Upstream systemd unit files are pretty awful, so we provide our own in a
# NixOS module. It might make sense to get that upstreamed...
diff --git a/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix b/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix
index 56d1dacaf9..9561dc00d7 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/songrec/default.nix b/third_party/nixpkgs/pkgs/applications/audio/songrec/default.nix
index 166784a164..60fbd3a288 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/songrec/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/soundwireserver/default.nix b/third_party/nixpkgs/pkgs/applications/audio/soundwireserver/default.nix
new file mode 100755
index 0000000000..17660599b6
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/soundwireserver/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, qt5
+, autoPatchelfHook
+, unzip
+, fetchzip
+, portaudio
+}:
+
+qt5.mkDerivation {
+ pname = "soundwire";
+ version = "3.0";
+
+ src = fetchzip {
+ url = "https://web.archive.org/web/20211120182526/https://georgielabs.net/SoundWire_Server_linux64.tar.gz";
+ hash = "sha256-TECuQ5WXpeikc9tXEE/wVBnRbdYd0OaIFFhsBRmaukA=";
+ };
+
+ nativeBuildInputs = [
+ unzip
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ portaudio
+ ];
+
+ installPhase = ''
+ install -D SoundWire-Server.desktop $out/share/applications/SoundWireServer.desktop
+ install -D SoundWireServer $out/bin/SoundWireServer
+ install -D sw-icon.xpm $out/share/icons/hicolor/256x256/apps/sw-icon.xpm
+ '';
+
+ meta = with lib; {
+ description = "Turn your Android device into wireless headphones / wireless speaker";
+ homepage = "https://georgielabs.net/";
+ maintainers = with maintainers; [ mkg20001 ];
+ license = licenses.unfree;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix b/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix
index aa7a041f40..e17e850369 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix
@@ -21,19 +21,19 @@
stdenv.mkDerivation rec {
pname = "spot";
- version = "0.2.0";
+ version = "0.2.2";
src = fetchFromGitHub {
owner = "xou816";
repo = "spot";
rev = version;
- sha256 = "16pri0in514xzy21bsijyvyyjwa0f6lg4zyizmdcmcdw4glrs11m";
+ hash = "sha256-g0oVhlfez9i+Vv8lt/aNftCVqdgPMDySBBeLyOv7Zl8=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
- sha256 = "1fvnidxh4rnkzqg3qjk3zlkp2d41qdamm0bfavk8jrazw8sgih84";
+ hash = "sha256-n10aYzkRqEe1h2WPAfARjH79Npvv+3fdX9jCtxv2a34=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/audio/spotify/default.nix b/third_party/nixpkgs/pkgs/applications/audio/spotify/default.nix
index c25276ff6e..f38bd678d9 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/spotify/default.nix
+++ b/third_party/nixpkgs/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.632.g2b11de83";
+ version = "1.1.72.439.gc253025e";
# 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 = "53";
+ rev = "56";
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 = "ed991691c99fe97ed9ff5d0f5cc9a8883c176fa3b3054293c37d545abbb895c6260afdf1c8c0828d62c36ea7ab384e166b6151effb4614c93e4fa712319a08a3";
+ sha512 = "b2bd3d49a18dfebaa4660f9c39d11d57fb80a4ef15ec7b7973e3cc07be74f74aebd2d8c66360d79fe778244c533ed02f9dfca4085f99aae0e5faae7c003ba4ef";
};
nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/third_party/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
index e9de6cb3cf..dacf91e562 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
@@ -20,12 +20,6 @@ rustPackages.rustPlatform.buildRustPackage rec {
cargoSha256 = "07dxfc0csrnfl01p9vdrqvca9f574svlf37dk3dz8p6q08ki0n1z";
- cargoBuildFlags = [
- "--no-default-features"
- "--features"
- "${lib.optionalString withALSA "alsa_backend,"}${lib.optionalString withPulseAudio "pulseaudio_backend,"}${lib.optionalString withPortAudio "portaudio_backend,"}${lib.optionalString withMpris "dbus_mpris,"}${lib.optionalString withKeyring "dbus_keyring,"}"
- ];
-
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ]
@@ -34,6 +28,13 @@ rustPackages.rustPlatform.buildRustPackage rec {
++ lib.optional withPortAudio portaudio
++ lib.optional (withMpris || withKeyring) dbus;
+ buildNoDefaultFeatures = true;
+ buildFeatures = lib.optional withALSA "alsa_backend"
+ ++ lib.optional withPulseAudio "pulseaudio_backend"
+ ++ lib.optional withPortAudio "portaudio_backend"
+ ++ lib.optional withMpris "dbus_mpris"
+ ++ lib.optional withKeyring "dbus_keyring";
+
doCheck = false;
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/third_party/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
index 5c9250b45e..3f7e1e038f 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
@@ -15,14 +15,14 @@
python3Packages.buildPythonApplication rec {
pname = "sublime-music";
- version = "0.11.13";
+ version = "0.11.16";
format = "pyproject";
src = fetchFromGitLab {
owner = "sublime-music";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-NzbQtRcsRVppyuG1UuS3IidSnniUOavf5YoAf/kcZqw=";
+ sha256 = "sha256-n77mTgElwwFaX3WQL8tZzbkPwnsyQ08OW9imSOjpBlg=";
};
nativeBuildInputs = [
@@ -57,19 +57,26 @@ python3Packages.buildPythonApplication rec {
++ lib.optional serverSupport bottle
;
+ postPatch = ''
+ sed -i "/--cov/d" setup.cfg
+ sed -i "/--no-cov-on-fail/d" setup.cfg
+ '';
+
# hook for gobject-introspection doesn't like strictDeps
# https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
- # Use the test suite provided by the upstream project.
checkInputs = with python3Packages; [
pytest
- pytest-cov
];
- checkPhase = "${xvfb-run}/bin/xvfb-run pytest";
- # Also run the python import check for sanity
- pythonImportsCheck = [ "sublime_music" ];
+ checkPhase = ''
+ ${xvfb-run}/bin/xvfb-run pytest
+ '';
+
+ pythonImportsCheck = [
+ "sublime_music"
+ ];
postInstall = ''
install -Dm444 sublime-music.desktop -t $out/share/applications
diff --git a/third_party/nixpkgs/pkgs/applications/audio/surge-XT/default.nix b/third_party/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
new file mode 100644
index 0000000000..6445723d77
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, cairo, libxkbcommon, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor, alsa-lib, libjack2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "surge-XT";
+ version = "unstable-2021-11-07";
+
+ src = fetchFromGitHub {
+ owner = "surge-synthesizer";
+ repo = "surge";
+ rev = "ed93833eb44b177c977e3a7b878ffdd9bf9f24e5";
+ sha256 = "0b164659ksl6h5nn7jja5zccx2mwzibqs6b7hg8l98gpcy9fi5r2";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ cairo libxkbcommon xcbutilcursor xcbutilkeysyms xcbutil libXrandr libXinerama libXcursor alsa-lib libjack2 ];
+
+ installPhase = ''
+ cd ..
+ cmake --build build --config Release --target install
+ '';
+
+ doInstallCheck = false;
+
+ meta = with lib; {
+ description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
+ homepage = "https://surge-synthesizer.github.io";
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ magnetophon orivej ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix b/third_party/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
index f2b71c1ce2..338877d2be 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, fftwSinglePrec, libxslt, lv2, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, fftwSinglePrec, libxslt, lv2, pkg-config }:
stdenv.mkDerivation rec {
pname = "swh-lv2";
version = "1.0.16";
- src = fetchurl {
- url = "https://github.com/swh/lv2/archive/v${version}.tar.gz";
- sha256 = "0j1mih0lp4fds07knp5i32in515sh0df1qi6694pmyz2wqnm295w";
+ src = fetchFromGitHub {
+ owner = "swh";
+ repo = "lv2";
+ rev = "v${version}";
+ sha256 = "sha256-v6aJUWDbBZEmz0v6+cSCi/KhOYNUeK/MJLUSgzi39ng=";
};
patchPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/audio/tagutil/default.nix b/third_party/nixpkgs/pkgs/applications/audio/tagutil/default.nix
index 802cd00087..e507618830 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/tagutil/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/tagutil/default.nix
@@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
zlib
];
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "-o aslr" ""
+ '';
+
meta = with lib; {
description = "Scriptable music files tags tool and editor";
homepage = "https://github.com/kaworu/tagutil";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/tenacity/default.nix b/third_party/nixpkgs/pkgs/applications/audio/tenacity/default.nix
new file mode 100644
index 0000000000..fbf13c1748
--- /dev/null
+++ b/third_party/nixpkgs/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
+, libepoxy
+, 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
+ libepoxy
+ 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/third_party/nixpkgs/pkgs/applications/audio/tonelib-jam/default.nix b/third_party/nixpkgs/pkgs/applications/audio/tonelib-jam/default.nix
index 54ed7a977f..1c0d51ed88 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/tonelib-jam/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/tonelib-jam/default.nix
@@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
homepage = "https://tonelib.net/";
license = licenses.unfree;
maintainers = with maintainers; [ dan4ik605743 ];
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/tonelib-zoom/default.nix b/third_party/nixpkgs/pkgs/applications/audio/tonelib-zoom/default.nix
index 2eef1f7bd6..41539503e0 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/tonelib-zoom/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/tonelib-zoom/default.nix
@@ -1,12 +1,18 @@
-{ stdenv
-, dpkg
-, lib
-, autoPatchelfHook
+{ lib
+, stdenv
, fetchurl
-, webkitgtk
-, libjack2
+, autoPatchelfHook
+, dpkg
, alsa-lib
+, freetype
+, libglvnd
, curl
+, libXcursor
+, libXinerama
+, libXrandr
+, libXrender
+, libjack2
+, webkitgtk
}:
stdenv.mkDerivation rec {
@@ -18,36 +24,40 @@ stdenv.mkDerivation rec {
sha256 = "sha256-4q2vM0/q7o/FracnO2xxnr27opqfVQoN7fsqTD9Tr/c=";
};
- buildInputs = [
- dpkg
- webkitgtk
- libjack2
- alsa-lib
- ];
-
nativeBuildInputs = [
autoPatchelfHook
+ dpkg
];
- unpackPhase = ''
- mkdir -p $TMP/ $out/
- dpkg -x $src $TMP
- '';
+ buildInputs = [
+ stdenv.cc.cc.lib
+ alsa-lib
+ freetype
+ libglvnd
+ webkitgtk
+ ] ++ runtimeDependencies;
+
+ runtimeDependencies = map lib.getLib [
+ curl
+ libXcursor
+ libXinerama
+ libXrandr
+ libXrender
+ libjack2
+ ];
+
+ unpackCmd = "dpkg -x $curSrc source";
installPhase = ''
- cp -R $TMP/usr/* $out/
- mv $out/bin/ToneLib-Zoom $out/bin/tonelib-zoom
+ mv usr $out
+ substituteInPlace $out/share/applications/ToneLib-Zoom.desktop --replace /usr/ $out/
'';
- runtimeDependencies = [
- (lib.getLib curl)
- ];
-
meta = with lib; {
description = "ToneLib Zoom – change and save all the settings in your Zoom(r) guitar pedal";
homepage = "https://tonelib.net/";
license = licenses.unfree;
maintainers = with maintainers; [ dan4ik605743 ];
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/vimpc/default.nix b/third_party/nixpkgs/pkgs/applications/audio/vimpc/default.nix
index a576898128..5cc3c10999 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/vimpc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/vimpc/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchpatch
, autoreconfHook
, libmpdclient
, ncurses
@@ -21,6 +22,16 @@ stdenv.mkDerivation rec {
sha256 = "0lswzkap2nm7v5h7ppb6a64cb35rajysd09nb204rxgrkij4m6nx";
};
+ patches = [
+ # Pull fix pending upstream inclusion for ncurses-6.3:
+ # https://github.com/boysetsfrog/vimpc/pull/100
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/boysetsfrog/vimpc/commit/055ecdce0720fdfc9ec2528c520b6c33da36271b.patch";
+ sha256 = "01p858jjxm0bf8hnk1z8h45j8c1y9i995mafa6ff3vg9vlak61pv";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ libmpdclient ncurses pcre taglib curl ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/vocal/default.nix b/third_party/nixpkgs/pkgs/applications/audio/vocal/default.nix
index a2fea468de..3d6f3aef9e 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/vocal/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/audio/wavegain/default.nix b/third_party/nixpkgs/pkgs/applications/audio/wavegain/default.nix
index f4ef7f6d8a..1820ed2def 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/wavegain/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/wavegain/default.nix
@@ -1,7 +1,9 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
- name = "wavegain-1.3.1";
+ pname = "wavegain";
+ version = "1.3.1";
+
src = fetchFromGitHub {
owner = "MestreLion";
repo = "wavegain";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/whipper/default.nix b/third_party/nixpkgs/pkgs/applications/audio/whipper/default.nix
index d66c161664..a7a8f05417 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/whipper/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/whipper/default.nix
@@ -42,7 +42,7 @@ in python3.pkgs.buildPythonApplication rec {
mutagen
pycdio
pygobject3
- ruamel_yaml
+ ruamel-yaml
discid
pillow
];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix b/third_party/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix
index 31ef68714f..d698ef68da 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "x42-avldrums";
- version = "0.4.1";
+ version = "0.4.2";
src = fetchFromGitHub {
owner = "x42";
repo = "avldrums.lv2";
rev = "v${version}";
- sha256 = "1vwdp3d8qzd493qa99ddya7iql67bbfxmbcl8hk96lxif2lhmyws";
+ sha256 = "sha256-L9rLSHHQIM6PqZ397TIxR6O1N9GKAQtDfWCofV5R85E=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix b/third_party/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
index 557802a8a0..70353e2497 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
@@ -3,12 +3,12 @@
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
stdenv.mkDerivation rec {
- version = "20210714";
+ version = "20211016";
pname = "x42-plugins";
src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
- sha256 = "sha256-X389bA+cf3N5eJpAlpDn/CJQ6xM4qzrBQ47fYPIyIHk=";
+ sha256 = "sha256-Z2lXaJweOPB9hWOuy2cx1P9/CAJ+IMc7JtPDKAg2boU=";
};
nativeBuildInputs = [ pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix b/third_party/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
index 777ac79a22..a07bfa60b0 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zam-plugins";
- version = "3.13";
+ version = "3.14";
src = fetchFromGitHub {
owner = "zamaudio";
repo = pname;
rev = version;
- sha256 = "02blg0iqich4vx5z1ahj6avkh83yqszdiq83p9jd5qwm0i4llqjq";
+ sha256 = "sha256-zlANfFuEXQdXlSu4CuXNyChiuV7wkumaOJqgthl6Y9Q=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zrythm/default.nix b/third_party/nixpkgs/pkgs/applications/audio/zrythm/default.nix
new file mode 100644
index 0000000000..480684525b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/zrythm/default.nix
@@ -0,0 +1,169 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, SDL2
+, alsa-lib
+, libaudec
+, bash
+, bash-completion
+, breeze-icons
+, carla
+, chromaprint
+, cmake
+, curl
+, dconf
+, libepoxy
+, ffmpeg
+, fftw
+, fftwFloat
+, flex
+, glib
+, gtk3
+, gtksourceview3
+, guile
+, graphviz
+, help2man
+, json-glib
+, jq
+, libbacktrace
+, libcyaml
+, libgtop
+, libjack2
+, libpulseaudio
+, libsamplerate
+, libsndfile
+, libsoundio
+, libxml2
+, libyaml
+, lilv
+, lv2
+, meson
+, ninja
+, pandoc
+, pcre
+, pcre2
+, pkg-config
+, python3
+, reproc
+, rtaudio
+, rtmidi
+, rubberband
+, serd
+, sord
+, sratom
+, texi2html
+, wrapGAppsHook
+, xdg-utils
+, xxHash
+, vamp-plugin-sdk
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "zrythm";
+ version = "1.0.0-alpha.26.0.13";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-dkXlkJ+qlfxV9Bv2UvZZa2iRVm8tgpK4JxkWL2Jeq48=";
+ };
+
+ nativeBuildInputs = [
+ help2man
+ jq
+ libaudec
+ libxml2
+ meson
+ ninja
+ pandoc
+ pkg-config
+ python3
+ python3.pkgs.sphinx
+ texi2html
+ wrapGAppsHook
+ cmake
+ ];
+
+ buildInputs = [
+ SDL2
+ alsa-lib
+ bash-completion
+ carla
+ chromaprint
+ curl
+ dconf
+ libepoxy
+ ffmpeg
+ fftw
+ fftwFloat
+ flex
+ breeze-icons
+ glib
+ gtk3
+ gtksourceview3
+ graphviz
+ guile
+ json-glib
+ libbacktrace
+ libcyaml
+ libgtop
+ libjack2
+ libpulseaudio
+ libsamplerate
+ libsndfile
+ libsoundio
+ libyaml
+ lilv
+ lv2
+ pcre
+ pcre2
+ reproc
+ rtaudio
+ rtmidi
+ rubberband
+ serd
+ sord
+ sratom
+ vamp-plugin-sdk
+ xdg-utils
+ xxHash
+ zstd
+ ];
+
+ mesonFlags = [
+ "-Denable_ffmpeg=true"
+ "-Denable_rtmidi=true"
+ "-Denable_rtaudio=true"
+ "-Denable_sdl=true"
+ "-Dmanpage=true"
+ # "-Duser_manual=true" # needs sphinx-intl
+ "-Dlsp_dsp=disabled"
+ "-Db_lto=false"
+ ];
+
+ NIX_LDFLAGS = ''
+ -lfftw3_threads -lfftw3f_threads
+ '';
+
+ postPatch = ''
+ chmod +x scripts/meson-post-install.sh
+ patchShebangs ext/sh-manpage-completions/run.sh scripts/generic_guile_wrap.sh \
+ scripts/meson-post-install.sh tools/check_have_unlimited_memlock.sh
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix GSETTINGS_SCHEMA_DIR : "$out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas/"
+ )
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.zrythm.org";
+ description = "Highly automated and intuitive digital audio workstation";
+ maintainers = with maintainers; [ tshaynik magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.agpl3Plus;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
index 4b3cbb171b..e738a0fbcb 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -89,6 +89,19 @@ in stdenv.mkDerivation rec {
doCheck = true;
checkInputs = [ cxxtest ];
+ # TODO: Update cmake hook to make it simpler to selectively disable cmake tests: #113829
+ checkPhase = let
+ # Tests fail on aarch64
+ disabledTests = lib.optionals stdenv.isAarch64 [
+ "MessageTest"
+ "UnisonTest"
+ ];
+ in ''
+ runHook preCheck
+ ctest --output-on-failure -E '^${lib.concatStringsSep "|" disabledTests}$'
+ runHook postCheck
+ '';
+
# When building with zest GUI, patch plugins
# and standalone executable to properly locate zest
postFixup = lib.optionalString (guiModule == "zest") ''
diff --git a/third_party/nixpkgs/pkgs/applications/backup/areca/default.nix b/third_party/nixpkgs/pkgs/applications/backup/areca/default.nix
index d16fc0f85c..816646ab6f 100644
--- a/third_party/nixpkgs/pkgs/applications/backup/areca/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/backup/areca/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:
-stdenv.mkDerivation {
- name = "areca-7.5";
+stdenv.mkDerivation rec {
+ pname = "areca";
+ version = "7.5";
src = fetchurl {
- url = "mirror://sourceforge/project/areca/areca-stable/areca-7.5/areca-7.5-src.tar.gz";
+ url = "mirror://sourceforge/project/areca/areca-stable/areca-${version}/areca-${version}-src.tar.gz";
sha256 = "1q4ha9s96c1syplxm04bh1v1gvjq16l4pa8w25w95d2ywwvyq1xb";
};
diff --git a/third_party/nixpkgs/pkgs/applications/backup/vorta/default.nix b/third_party/nixpkgs/pkgs/applications/backup/vorta/default.nix
index 675ebf7d34..7434c12cba 100644
--- a/third_party/nixpkgs/pkgs/applications/backup/vorta/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/backup/vorta/default.nix
@@ -8,13 +8,13 @@
python3Packages.buildPythonApplication rec {
pname = "vorta";
- version = "0.7.8";
+ version = "0.8.2";
src = fetchFromGitHub {
owner = "borgbase";
repo = "vorta";
rev = "v${version}";
- sha256 = "sha256-qNBswy1dsCE6TEQLr/r7nnZWegDD8BD9pMkcpcuT7Q0=";
+ sha256 = "sha256-ut4HCfLU/P22y5QbNakTV4d4CnFRxJvn+cnJ0ZGpTlw=";
};
nativeBuildInputs = [ wrapQtAppsHook ];
@@ -24,7 +24,6 @@ python3Packages.buildPythonApplication rec {
peewee
pyqt5
python-dateutil
- APScheduler
psutil
qdarkstyle
secretstorage
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/alfis/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/alfis/default.nix
index 7a808d2c72..ee64b7907a 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/alfis/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/alfis/default.nix
@@ -1,25 +1,29 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config
-, withGui ? true, webkitgtk, Cocoa, WebKit
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, makeWrapper
+, webkitgtk
+, zenity
+, Cocoa
+, Security
+, WebKit
+, withGui ? true
}:
rustPlatform.buildRustPackage rec {
pname = "alfis";
- version = "0.6.5";
+ version = "0.6.9";
src = fetchFromGitHub {
owner = "Revertron";
repo = "Alfis";
rev = "v${version}";
- sha256 = "1g95yvkvlj78bqrk3p2xbhrmg1hrlgbyr1a4s7vg45y60zys2c2j";
+ sha256 = "1nnzy46hp1q9kcxzjx24d60frjhn3x46nksbqvdfcfrfn5pqrabh";
};
- cargoSha256 = "1n7kb1lyghpkgdgd58pw8ldvfps30rnv5niwx35pkdg74h59hqgj";
-
- cargoBuildFlags = [ "--no-default-features" ]
- ++ lib.optional withGui "--features webgui";
-
- cargoTestFlags = [ "--no-default-features" ]
- ++ lib.optional withGui "--features webgui";
+ cargoSha256 = "02liz8sqnqla77bqxfa8hj93qfj2x482q2bijz66rmazfig3b045";
checkFlags = [
# these want internet access, disable them
@@ -27,10 +31,21 @@ rustPlatform.buildRustPackage rec {
"--skip=dns::client::tests::test_udp_client"
];
- nativeBuildInputs = [ pkg-config ];
- buildInputs = lib.optional (withGui && stdenv.isLinux) webkitgtk
+ nativeBuildInputs = [ pkg-config makeWrapper ];
+ buildInputs = lib.optional stdenv.isDarwin Security
+ ++ lib.optional (withGui && stdenv.isLinux) webkitgtk
++ lib.optionals (withGui && stdenv.isDarwin) [ Cocoa WebKit ];
+ buildNoDefaultFeatures = true;
+ buildFeatures = [
+ "doh"
+ ] ++ lib.optional withGui "webgui";
+
+ postInstall = lib.optionalString (withGui && stdenv.isLinux) ''
+ wrapProgram $out/bin/alfis \
+ --prefix PATH : ${lib.makeBinPath [ zenity ]}
+ '';
+
meta = with lib; {
description = "Alternative Free Identity System";
homepage = "https://alfis.name";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix
index 4077442b34..2781e69c56 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin-knots/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin-knots/default.nix
index eea836ac62..803e27969e 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin-knots/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin-knots/default.nix
@@ -1,41 +1,83 @@
-{ lib, stdenv
-, fetchFromGitHub
-, pkg-config
+{ lib
+, stdenv
+, fetchurl
, autoreconfHook
-, db5
-, openssl
-, boost
-, zlib
-, miniupnpc
-, libevent
-, protobuf
+, pkg-config
, util-linux
+, hexdump
+, autoSignDarwinBinariesHook
+, wrapQtAppsHook ? null
+, boost
+, libevent
+, miniupnpc
+, zeromq
+, zlib
+, db48
+, sqlite
+, qrencode
+, qtbase ? null
+, qttools ? null
+, python3
+, nixosTests
+, withGui
+, withWallet ? true
}:
+with lib;
stdenv.mkDerivation rec {
- pname = "bitcoind-knots";
- version = "0.20.0";
- versionDate = "20200614";
+ pname = if withGui then "bitcoin-knots" else "bitcoind-knots";
+ version = "22.0.knots20211108";
- src = fetchFromGitHub {
- owner = "bitcoinknots";
- repo = "bitcoin";
- rev = "v${version}.knots${versionDate}";
- sha256 = "0c8k1154kcwz6q2803wx0zigvqaij1fi5akgfqlj3yl57jjw48jj";
+ src = fetchurl {
+ url = "https://bitcoinknots.org/files/22.x/${version}/guix/bitcoin-${version}.tar.gz";
+ sha256 = "04sqbx4sp3bzwbl8z53nz96n3s0590h327ih0mbgyvfvl3b8pj4i";
};
- nativeBuildInputs = [ pkg-config autoreconfHook ];
- buildInputs = [ openssl db5 openssl util-linux
- protobuf boost zlib miniupnpc libevent ];
+ nativeBuildInputs =
+ [ autoreconfHook pkg-config ]
+ ++ optionals stdenv.isLinux [ util-linux ]
+ ++ optionals stdenv.isDarwin [ hexdump ]
+ ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ]
+ ++ optionals withGui [ wrapQtAppsHook ];
- configureFlags = [ "--with-incompatible-bdb"
- "--with-boost-libdir=${boost.out}/lib" ];
+ buildInputs = [ boost libevent miniupnpc zeromq zlib ]
+ ++ optionals withWallet [ db48 sqlite ]
+ ++ optionals withGui [ qrencode qtbase qttools ];
- meta = with lib; {
- description = "An enhanced Bitcoin node software";
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ "--disable-bench"
+ ] ++ optionals (!doCheck) [
+ "--disable-tests"
+ "--disable-gui-tests"
+ ] ++ optionals (!withWallet) [
+ "--disable-wallet"
+ ] ++ optionals withGui [
+ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ checkInputs = [ python3 ];
+
+ doCheck = true;
+
+ checkFlags =
+ [ "LC_ALL=en_US.UTF-8" ]
+ # QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
+ # See also https://github.com/NixOS/nixpkgs/issues/24256
+ ++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";
+
+ enableParallelBuilding = true;
+
+ passthru.tests = {
+ smoke-test = nixosTests.bitcoind-knots;
+ };
+
+ meta = {
+ description = "A derivative of Bitcoin Core with a collection of improvements";
homepage = "https://bitcoinknots.org/";
+ maintainers = with maintainers; [ prusnak mmahut ];
license = licenses.mit;
- maintainers = [ maintainers.mmahut ];
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin/default.nix
index 7a0237ed2b..e1a0dd207a 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/bitcoin/default.nix
@@ -5,6 +5,7 @@
, pkg-config
, util-linux
, hexdump
+, autoSignDarwinBinariesHook
, wrapQtAppsHook ? null
, boost
, libevent
@@ -47,6 +48,7 @@ stdenv.mkDerivation rec {
[ autoreconfHook pkg-config ]
++ optionals stdenv.isLinux [ util-linux ]
++ optionals stdenv.isDarwin [ hexdump ]
+ ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ]
++ optionals withGui [ wrapQtAppsHook ];
buildInputs = [ boost libevent miniupnpc zeromq zlib ]
@@ -77,7 +79,7 @@ stdenv.mkDerivation rec {
doCheck = true;
checkFlags =
- [ "LC_ALL=C.UTF-8" ]
+ [ "LC_ALL=en_US.UTF-8" ]
# QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
# See also https://github.com/NixOS/nixpkgs/issues/24256
++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
index 5a4c7f4e33..725bc8f2e9 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -3,13 +3,13 @@
buildDotnetModule rec {
pname = "btcpayserver";
- version = "1.2.4";
+ version = "1.3.6";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-vjNJ08twsJ036TTFF6srOGshDpP7ZwWCGN0XjrtFT/g=";
+ sha256 = "sha256-8SWbbdPx/cC7EWTkSbB/YqR13jaL76fFIjHPGL4rFyk=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
index f92b2f7a85..41ca23733c 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -31,38 +31,38 @@
})
(fetchNuGet {
name = "BTCPayServer.Lightning.All";
- version = "1.2.12";
- sha256 = "0sciwh9m7h6ns59bsrzpd6zyxxdkiy33bdsq0phd3r2yxakvw68n";
+ version = "1.2.16";
+ sha256 = "1dq8xzvg51iskvak28ishxm98b5r1qlybh2r36a079764vl5prn1";
})
(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.8";
+ sha256 = "01462fjc0zmgafqk7w0cl880wir9mah90r68xyw607ij28pdc2zf";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.LND";
- version = "1.2.8";
- sha256 = "1g1siy3xwf3rmyl4qrcg42wpww4b2qmfs88x0rxccwxjy5inzkz6";
+ version = "1.2.12";
+ sha256 = "1dqg682lxv61rfwxxqqlc5fal8y5sz7dmf7p70rg7l9csgzgn67r";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Ptarmigan";
- version = "1.2.6";
- sha256 = "10g785jh92z5x7aqh41ma3d1nw0718bk7ibb58ychhdk1v2wwmh4";
+ version = "1.2.7";
+ sha256 = "1mmj8bi32kzgda8v7qdfpm2qlpffv5223c2xnq7351h8ih4bbcvb";
})
(fetchNuGet {
name = "BuildBundlerMinifier";
@@ -169,15 +169,20 @@
version = "1.0.18";
sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn";
})
+ (fetchNuGet {
+ name = "LNURL";
+ version = "0.0.14";
+ sha256 = "0b2v87k3yi2lyka5zy3sbvxsa7yp04nn72l7dk27cm9i1d9914sq";
+ })
(fetchNuGet {
name = "McMaster.NETCore.Plugins.Mvc";
- version = "1.3.1";
- sha256 = "1dh58ijwn6q6id0jpzr4hpfl0y4ak43zq4m8rsi5j2qv8vasq1mi";
+ version = "1.4.0";
+ sha256 = "07i0p6236hyh1c3cb5v6zkayq5807rd6msc341v2jh6yd5radasy";
})
(fetchNuGet {
name = "McMaster.NETCore.Plugins";
- version = "1.3.1";
- sha256 = "0jrp7sshnvg7jcb52gfhwmg1jy31k9dxdf4061yggwcgpfskyg7n";
+ version = "1.4.0";
+ sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy";
})
(fetchNuGet {
name = "Microsoft.AspNet.SignalR.Client";
@@ -191,13 +196,13 @@
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Cryptography.Internal";
- version = "3.1.4";
- sha256 = "0d4djj073bl9kps5jkcpydh92lcp6kpa7njhypjw3myaa987dcsh";
+ version = "3.1.19";
+ sha256 = "1b20hksk2qk2jnkwin4g0n9ap3ma7724pd518fh9qcakf7vfpkl1";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
- version = "3.1.4";
- sha256 = "1rya2775prm8ss0rz6izsqqcz96gcf1rh0bpcvnfy1mwi04rx8bl";
+ version = "3.1.19";
+ sha256 = "1ksi2h3904932igh1g27l91fqdsfxg8zr6y82ym8pqb62m0906a4";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Hosting.Abstractions";
@@ -221,33 +226,33 @@
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
- version = "3.1.4";
- sha256 = "0smcpaqm7d95flr0k7i2psrsfvs48lv28kzqgnllv5229hhb670d";
+ version = "3.1.19";
+ sha256 = "0sm7cpccpygwgplbkp0j1q5ilkkiw0dx76qwy3xharv4himakrfm";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.JsonPatch";
- version = "3.1.1";
- sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+ version = "3.1.19";
+ sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
- version = "3.1.1";
- sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+ version = "3.1.19";
+ sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
- version = "3.1.1";
- sha256 = "1iydcr7rfzg3kqky0x70853g6lbzsl9ja9cv8ph6iwpqxnswgdkh";
+ version = "3.1.19";
+ sha256 = "1n22q10n9xlhcjxsm1apd0b7j3j97dd5jmpw6nvymwbv2bw88af4";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
- version = "3.1.1";
- sha256 = "1q1bblcj9l2dnz46frygsfq7w4v08l96clgryh78wyws83xjm43y";
+ version = "3.1.19";
+ sha256 = "1glmlgrwksv0h8g41wy43wv94ndllq4ihxhdaagig9szvivdh8c1";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Razor.Language";
- version = "3.1.1";
- sha256 = "0arqmy04dd0r4wm2fin66gxxwj2kirbgxyf3w7kq6f73lrnazhq0";
+ version = "3.1.19";
+ sha256 = "059v85f2qbj403wcnp5mspzvhkbf6d8hsjl26xvfd5s8svnaz4ax";
})
(fetchNuGet {
name = "Microsoft.Bcl.AsyncInterfaces";
@@ -256,8 +261,8 @@
})
(fetchNuGet {
name = "Microsoft.Bcl.HashCode";
- version = "1.1.0";
- sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0";
+ version = "1.1.1";
+ sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
@@ -266,8 +271,13 @@
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
- version = "3.0.0";
- sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+ version = "3.3.2";
+ sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Common";
+ version = "3.11.0";
+ sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
@@ -275,29 +285,24 @@
sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
})
(fetchNuGet {
- name = "Microsoft.CodeAnalysis.Common";
- version = "3.6.0";
- sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
+ name = "Microsoft.CodeAnalysis.CSharp";
+ version = "3.11.0";
+ sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
version = "3.3.0";
sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
})
- (fetchNuGet {
- name = "Microsoft.CodeAnalysis.CSharp";
- version = "3.6.0";
- sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
- })
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Razor";
- version = "3.1.1";
- sha256 = "03n5rli6v1kvghha82zar3dvvkbc2vb9g8zp5fjrzhvp4l74ingn";
+ version = "3.1.19";
+ sha256 = "18l0gcpl7i0bfnyzhpm7h72ng2h8bh46fr2azk7d3ns507gi3xmp";
})
(fetchNuGet {
name = "Microsoft.CodeCoverage";
- version = "16.6.1";
- sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+ version = "16.11.0";
+ sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
})
(fetchNuGet {
name = "Microsoft.CSharp";
@@ -321,8 +326,8 @@
})
(fetchNuGet {
name = "Microsoft.Data.Sqlite.Core";
- version = "3.1.4";
- sha256 = "1pahyqjs4l9g1wg9hvxf68kgzzf72ny2i7n7ai97a389p2c86xvh";
+ version = "3.1.19";
+ sha256 = "0ns3rrk011gjw4g1kwr625390yj0mcadb3py49750sji72my7l7s";
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
@@ -331,53 +336,53 @@
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
- version = "3.1.0";
- sha256 = "1fg1zggza45pa8zlcf8llqh6v47fqi44azsia68kmsg2q9r1r4mq";
- })
- (fetchNuGet {
- name = "Microsoft.DotNet.PlatformAbstractions";
- version = "3.1.4";
- sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+ version = "3.1.6";
+ sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Abstractions";
- version = "3.1.4";
- sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
+ version = "3.1.18";
+ sha256 = "0d00d6wx2mm5bav39bjsikjq0sx6qmp183dbwimfda7wav2bwya8";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Abstractions";
+ version = "3.1.19";
+ sha256 = "0na2jgxs5k2gxqh99ha4v0blya3pwh2qha49iz0qkw0r3kq0vdvv";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Analyzers";
- version = "3.1.4";
- sha256 = "1zaqn9z7ns6p6jgnffzkgpziqr2wqs68g2sa0c11kaclhlhgvvbv";
+ version = "3.1.19";
+ sha256 = "02xjz4c6f71mcmdwihi9klrqm28xk84x19vcqi8cgpw50q7d0rly";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Design";
- version = "3.1.4";
- sha256 = "10mxnbiw23ia4sln86sd3gn84yhmrb6r2kipzid4h1g15paal9gi";
+ version = "3.1.19";
+ sha256 = "128md0ijqa1wvpdicf09i7kcb2aq2b07skc6j0vddz2jhcbi0irr";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Relational";
- version = "3.1.0";
- sha256 = "0javqw6c27ppcysigjvcjcw3mk0gg1pv2pmwfpvvryr1pb4a9n55";
+ version = "3.1.18";
+ sha256 = "0mlq9gmxrmix68mdh0lv803cx15lzrhs5d9622vj8wwdlngg3xdx";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Relational";
- version = "3.1.4";
- sha256 = "1344rsavawwg69dx8xsl08hcs43lc6h7z4mn461dcx85rirlwd0v";
+ version = "3.1.19";
+ sha256 = "13rbnd441r4zb52y99zwida0n0phvvw7hmccjy2kpnk1jfrr8xi1";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
- version = "3.1.4";
- sha256 = "080qz0b52i7v5c1sgnqlh9px9881cfr1x06np66hdgmh0ni5c1lw";
+ version = "3.1.19";
+ sha256 = "1w8ja5daglnr3ycfwlyskrnacb66p8yz730k838v6bpmpsdybn71";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Sqlite";
- version = "3.1.4";
- sha256 = "009mcmakw0p7k8xrz920a8qc0rjv361awiz8jia5i5a8p5ihgkbx";
+ version = "3.1.19";
+ sha256 = "0iwwa44dr2lg9mh5hmnpnkzbhi5v3vi6xy3xlnqg4hja37ji0xyw";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore";
- version = "3.1.4";
- sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
+ version = "3.1.19";
+ sha256 = "0gl43zk7ashjx49h35w58cn7dfl1ap3nyq9ws8575jcjhcx3c94h";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
@@ -386,13 +391,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
- version = "3.1.4";
- sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
+ version = "3.1.19";
+ sha256 = "1y1is16yl69ja67i9n98r44cr0z8b8f8k31d5ighi9djj4yhz4k2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Memory";
- version = "3.1.4";
- sha256 = "0b8ijxjd8lgq8mgnvh3wl4y4wbjj3v5b763y6gslm75fn43iyad8";
+ version = "3.1.19";
+ sha256 = "1iysxrmchw5ripyrcfi4nv5a00b9a7agsgvbb7y9fwbfq838v3mp";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
@@ -411,8 +416,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
- version = "3.1.4";
- sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
+ version = "3.1.19";
+ sha256 = "19s5dpswyad55p191280510sb8cr2b6zyx9zlx79p0lq4zaxwaq6";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
@@ -426,8 +431,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
- version = "3.1.4";
- sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
+ version = "3.1.19";
+ sha256 = "0dw1qiyc8j7rk13x6wfm1xnc7drnlvk8xv607hja0af2m0y7a3p2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
@@ -461,8 +466,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
- version = "3.1.4";
- sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
+ version = "3.1.19";
+ sha256 = "04zadl7q5vcak9d77jm5ivfzhhp2zvz5apywvfzrca4h0q38fs45";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
@@ -481,8 +486,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
- version = "3.1.4";
- sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
+ version = "3.1.19";
+ sha256 = "0claq9nna6p30zbvd25bn1ild9f3x50d5fxfbq9fsp464rq70b2y";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
@@ -496,8 +501,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection";
- version = "3.1.4";
- sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
+ version = "3.1.19";
+ sha256 = "0fsvv5jl95kmdxc4c7b15xanlq3fmfls556m8ghbqqikrgkqhz8m";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
@@ -506,18 +511,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.0";
- sha256 = "12nrdw3q9wl5zry8gb3sw003a0iyk2gvps2ij813l7lim38wy1mi";
+ version = "3.1.6";
+ sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.1";
- sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
- })
- (fetchNuGet {
- name = "Microsoft.Extensions.DependencyModel";
- version = "3.1.4";
- sha256 = "0r0wv4k0ig6mrl6fr184zqbf5f010d6i2an2ws23g2bjvk8jh1bk";
+ version = "5.0.0";
+ sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x";
})
(fetchNuGet {
name = "Microsoft.Extensions.FileProviders.Abstractions";
@@ -551,13 +551,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Identity.Core";
- version = "3.1.4";
- sha256 = "0kyi03l9d7pnsvrcylc86fcxwnj59mhvmbz4c1d142f8djdrqfid";
+ version = "3.1.19";
+ sha256 = "14mywrm6mv7hzfappgdrmwwk97a4qpfkir5a55443awy8wl3bylr";
})
(fetchNuGet {
name = "Microsoft.Extensions.Identity.Stores";
- version = "3.1.4";
- sha256 = "0jb3syy0glyn4nnd7lb7aj412xnqyrwhfavh98rbc5adq9v09nbw";
+ version = "3.1.19";
+ sha256 = "0pkrhf1vffll986hh49gyvfdqn1vnjd0qnpfkag2b76d681xlvgg";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
@@ -581,8 +581,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
- version = "3.1.4";
- sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
+ version = "3.1.19";
+ sha256 = "07jnqb6518xrw086rqlc28ms80d57xg0pl5x72032rk2x5x8hhnn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
@@ -601,8 +601,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging";
- version = "3.1.4";
- sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
+ version = "3.1.19";
+ sha256 = "0j2874x847xa1nfbppjn10cnxd486f6lwy53mxmansvlmp96h2sn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options.ConfigurationExtensions";
@@ -621,8 +621,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
- version = "3.1.4";
- sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
+ version = "3.1.19";
+ sha256 = "1jm7rd2sbfscyfysvl8zcaypyzpd6d5w52ha2npa9c7q84cmn4r9";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
@@ -656,8 +656,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
- version = "3.1.4";
- sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
+ version = "3.1.19";
+ sha256 = "0vcwwqqfwm5vj87psmic6mxix3prgkzw8sqbg5m1c2q662kby380";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
@@ -681,13 +681,13 @@
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
- version = "16.6.1";
- sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+ version = "16.11.0";
+ sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
})
(fetchNuGet {
name = "Microsoft.NetCore.Analyzers";
- version = "2.9.8";
- sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx";
+ version = "3.3.2";
+ sha256 = "1h1bjiiw64qncs61p2idwxswv4kzq06bbl2rlghiagv6sbjk4pnq";
})
(fetchNuGet {
name = "Microsoft.NETCore.Platforms";
@@ -726,13 +726,13 @@
})
(fetchNuGet {
name = "Microsoft.TestPlatform.ObjectModel";
- version = "16.6.1";
- sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+ version = "16.11.0";
+ sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
})
(fetchNuGet {
name = "Microsoft.TestPlatform.TestHost";
- version = "16.6.1";
- sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+ version = "16.11.0";
+ sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
})
(fetchNuGet {
name = "Microsoft.Win32.Primitives";
@@ -751,24 +751,39 @@
})
(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.17";
+ sha256 = "1dl3rmmx33041sd0lsj54lk19mzyd8j2nngjmbnn8s4gsdnzd7z1";
+ })
(fetchNuGet {
name = "NBitcoin";
version = "6.0.3";
@@ -786,94 +801,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 +906,8 @@
})
(fetchNuGet {
name = "Newtonsoft.Json.Schema";
- version = "3.0.13";
- sha256 = "04vzjz5fb588rh6ji5a0svfzjsdcfpr1qrz9hxpc64z5zhnh6sf4";
+ version = "3.0.14";
+ sha256 = "1njk1arrf8pbx0i0p3yww459i70p0fcx02vs0jnbb6znvcy4mvh6";
})
(fetchNuGet {
name = "Newtonsoft.Json";
@@ -901,13 +921,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 +961,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 +1001,8 @@
})
(fetchNuGet {
name = "Pomelo.EntityFrameworkCore.MySql";
- version = "3.1.1";
- sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
+ version = "3.2.7";
+ sha256 = "018za1ax17ibxld9rk2nc29716qpn2afh1prfrdjchf5cp56ba2p";
})
(fetchNuGet {
name = "Pomelo.JsonObject";
@@ -1101,8 +1121,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 +1239,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 +1416,8 @@
})
(fetchNuGet {
name = "System.IO.Pipelines";
- version = "4.7.2";
- sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
+ version = "4.7.4";
+ sha256 = "09gv2nz35vmmcjrfj1ppxx32v772i0mb369v7lwqr8mz14zhh86r";
})
(fetchNuGet {
name = "System.IO";
@@ -1554,6 +1579,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 +1659,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 +1880,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 +1924,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/third_party/nixpkgs/pkgs/applications/blockchains/chia-plotter/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/chia-plotter/default.nix
index 39f2e3cb0e..b576cd2373 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/chia-plotter/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/chia-plotter/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "chia-plotter";
- version = "unstable-2021-07-12";
+ version = "1.1.7";
src = fetchFromGitHub {
owner = "madMAx43v3r";
repo = "chia-plotter";
- rev = "974d6e5f1440f68c48492122ca33828a98864dfc";
- sha256 = "0dliswvqmi3wq9w8jp0sb0z74n5k37608sig6r60z206g2bwhjja";
+ rev = "18cad340858f0dbcc8dafd0bda1ce1af0fe58c65";
+ sha256 = "sha256-lXjeqcjn3+LtnVYngdM1T3on7V7wez4oOAZ0RpKJXMM=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/chia/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/chia/default.nix
index 83d9cee9ec..207b42e558 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/chia/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/chia/default.nix
@@ -6,21 +6,21 @@
let chia = python3Packages.buildPythonApplication rec {
pname = "chia";
- version = "1.2.10";
+ version = "1.2.11";
src = fetchFromGitHub {
owner = "Chia-Network";
repo = "chia-blockchain";
rev = version;
fetchSubmodules = true;
- sha256 = "sha256-TzSBGjgaE0IWaqJcCIoO/u+gDh17NtAqhE8ldbbjNIE=";
+ sha256 = "sha256-hRpZce8ydEsyq7htNfzlRSKPwMAOUurC3uiQpX6WiB8=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "==" ">="
- ln -sf ${cacert}/etc/ssl/certs/ca-bundle.crt mozilla-ca/cacert.pem
+ cp ${cacert}/etc/ssl/certs/ca-bundle.crt mozilla-ca/cacert.pem
'';
nativeBuildInputs = [
@@ -46,7 +46,7 @@ let chia = python3Packages.buildPythonApplication rec {
colorlog
concurrent-log-handler
cryptography
- dnspython
+ dnspythonchia
fasteners
keyrings-cryptfile
pyyaml
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/clightning/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/clightning/default.nix
index 0cec96b7a6..df7eace328 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/clightning/default.nix
+++ b/third_party/nixpkgs/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 ];
@@ -39,11 +39,9 @@ stdenv.mkDerivation rec {
devtools/sql-rewrite.py
'';
- configurePhase = ''
- ./configure --prefix=$out --disable-developer --disable-valgrind
- '';
+ configureFlags = [ "--disable-developer" "--disable-valgrind" ];
- makeFlags = [ "prefix=$(out) VERSION=v${version}" ];
+ makeFlags = [ "VERSION=v${version}" ];
enableParallelBuilding = true;
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/dero/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/dero/default.nix
deleted file mode 100644
index 6b15cbd0a1..0000000000
--- a/third_party/nixpkgs/pkgs/applications/blockchains/dero/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, unbound, openssl, boost
-, lmdb, miniupnpc, readline }:
-
-stdenv.mkDerivation rec {
- pname = "dero";
- version = "0.11.7";
-
- src = fetchFromGitHub {
- owner = "deroproject";
- repo = "dero";
- rev = "v${version}";
- sha256 = "1v8b9wbmqbpyf4jpc0v276qzk3hc5fpddcmwvv5k5yfi30nmbh5c";
- };
-
- nativeBuildInputs = [ cmake pkg-config ];
- buildInputs = [ boost miniupnpc openssl lmdb unbound readline ];
-
- meta = with lib; {
- description = "Secure, private blockchain with smart contracts based on Monero";
- homepage = "https://dero.io/";
- license = licenses.bsd3;
- maintainers = with maintainers; [ fpletz ];
- platforms = platforms.linux;
- };
-}
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/electrs/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/electrs/default.nix
index d37ace7107..ace5ec94c6 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/electrs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/electrs/default.nix
@@ -3,22 +3,25 @@
, rustPlatform
, fetchFromGitHub
, llvmPackages
-, rocksdb
+, rocksdb_6_23
, Security
}:
+let
+ rocksdb = rocksdb_6_23;
+in
rustPlatform.buildRustPackage rec {
pname = "electrs";
- version = "0.9.1";
+ version = "0.9.3";
src = fetchFromGitHub {
owner = "romanz";
repo = pname;
rev = "v${version}";
- hash = "sha256-GDO8iGntQncvdJiDMBJk9GrGF9JToasbLRzju3S0TS0=";
+ hash = "sha256-sTQ/dX1uXJkEmrNZ47qjBlrexO50y0NGNhw71rHc9bw=";
};
- cargoHash = "sha256-Ms785+3Z4xEUW8FRRu1FIHk7HSWYLBThKlJDFjW6j0I=";
+ cargoHash = "sha256-1ZQt8LaqgxNxFfgCVCK0GVwbcVfX3v9iz7tHvzgyI0g=";
# needed for librocksdb-sys
nativeBuildInputs = [ llvmPackages.clang ];
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/electrs/update.sh b/third_party/nixpkgs/pkgs/applications/blockchains/electrs/update.sh
index 3e4d90db59..14105d71a4 100755
--- a/third_party/nixpkgs/pkgs/applications/blockchains/electrs/update.sh
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/blockchains/ergo/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
index a0e648218f..422ad8210d 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
index 149b20d0dd..39d13189e8 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index a1ce67abf9..55d928e607 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
let
pname = "ledger-live-desktop";
- version = "2.34.3";
+ version = "2.35.2";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
- sha256 = "07r7gfn44c4bdcq9rgs6v4frrl2g004lh9lcsrj6rbqy6949r9j2";
+ hash = "sha256-VJr1H6YcPtCzm6FeFA+rNANvYUQ3wZQalI9RdSv68cI=";
};
appimageContents = appimageTools.extractType2 {
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/lightwalletd/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/lightwalletd/default.nix
index 0c95dde0f1..be66fee50e 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/lightwalletd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/lightwalletd/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "lightwalletd";
- version = "0.4.7";
+ version = "0.4.8";
src = fetchFromGitHub {
owner = "zcash";
repo = "lightwalletd";
rev = "v${version}";
- sha256 = "0dwam3fhc4caga7kjg6cc06sz47g4ii7n3sa4j2ac4aiy21hsbjk";
+ sha256 = "sha256-3cjXQXJqdmAMc+APybAKbpBhTy8Pk/QyBygSa8pGGAs=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/lnd/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/lnd/default.nix
index 62dcac327f..3cc054cea5 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/lnd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/lnd/default.nix
@@ -1,23 +1,23 @@
{ buildGoModule
, fetchFromGitHub
, lib
-, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" "routerrpc" "monitoring" ]
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" "routerrpc" "monitoring" "kvdb_postgres" "kvdb_etcd" ]
}:
buildGoModule rec {
pname = "lnd";
- version = "0.13.3-beta";
+ version = "0.14.1-beta";
src = fetchFromGitHub {
owner = "lightningnetwork";
repo = "lnd";
rev = "v${version}";
- sha256 = "05ai8nyrc8likq5n7i9klfi9550ki8sqklv8axjvi6ql8v9bzk61";
+ sha256 = "0arm36682y4csdv9abqs0l8rgxkiqkamrps7q8wpyyg4n78yiij3";
};
- vendorSha256 = "0xf8395g6hifbqwbgapllx38y0759xp374sja7j1wk8sdj5ngql5";
+ vendorSha256 = "13zhs0gb7chi0zz5rabmw3sd5fcpxc4s553crfcg7lrnbn5hcwzv";
- subPackages = ["cmd/lncli" "cmd/lnd"];
+ subPackages = [ "cmd/lncli" "cmd/lnd" ];
preBuild = let
buildVars = {
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/lndmanage/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/lndmanage/default.nix
index 450d9b4d44..ebbe653c96 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/lndmanage/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/lndmanage/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "lndmanage";
- version = "0.13.0";
+ version = "0.14.0";
src = fetchFromGitHub {
owner = "bitromortac";
repo = pname;
rev = "v${version}";
- sha256 = "1vnv03k2d11rw6mry6fmspiy3hqsza8y3daxnn4lp038gw1y0f4z";
+ hash = "sha256-wPr/R+WGACyhv2Qh9JeLJwvr2vQfxpqj2XjEkrRoSX4=";
};
propagatedBuildInputs = with python3Packages; [
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
similarity index 98%
rename from third_party/nixpkgs/pkgs/applications/blockchains/monero/default.nix
rename to third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
index ad07c3eba0..975253741b 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/monero/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
@@ -8,7 +8,7 @@
}:
stdenv.mkDerivation rec {
- pname = "monero";
+ pname = "monero-cli";
version = "0.17.2.3";
src = fetchFromGitHub {
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch b/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/use-system-libraries.patch
similarity index 100%
rename from third_party/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch
rename to third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/use-system-libraries.patch
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index 303cc6c54c..af273fe903 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -5,7 +5,7 @@
, qtmultimedia, qtxmlpatterns
, qtquickcontrols, qtquickcontrols2
, qtmacextras
-, monero, miniupnpc, unbound, readline
+, monero-cli, miniupnpc, unbound, readline
, boost, libunwind, libsodium, pcsclite
, randomx, zeromq, libgcrypt, libgpg-error
, hidapi, rapidjson, quirc
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
qtbase qtdeclarative qtgraphicaleffects
qtmultimedia qtquickcontrols qtquickcontrols2
qtxmlpatterns
- monero miniupnpc unbound readline
+ monero-cli miniupnpc unbound readline
randomx libgcrypt libgpg-error
boost libunwind libsodium pcsclite
zeromq hidapi rapidjson quirc
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
postUnpack = ''
# copy monero sources here
# (needs to be writable)
- cp -r ${monero.source}/* source/monero
+ cp -r ${monero-cli.source}/* source/monero
chmod -R +w source/monero
'';
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
# use monerod from the monero package
substituteInPlace src/daemon/DaemonManager.cpp \
- --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
+ --replace 'QApplication::applicationDirPath() + "' '"${monero-cli}/bin'
# 1: only build external deps, *not* the full monero
# 2: use nixpkgs libraries
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
index 2a5f1aec2d..c4add5b67f 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -2,13 +2,13 @@
buildDotnetModule rec {
pname = "nbxplorer";
- version = "2.2.11";
+ version = "2.2.18";
src = fetchFromGitHub {
owner = "dgarage";
repo = "NBXplorer";
rev = "v${version}";
- sha256 = "sha256-ZDqzkANGMdvv3e5gWCYcacUYKLJRquXRHLr8RAzT9hY=";
+ sha256 = "sha256-zjSHgMdK417bm1Z/B2kvloDnPTqzM9jEVkZvoKeBkzM=";
};
projectFile = "NBXplorer/NBXplorer.csproj";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix b/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
index d53e784ea1..7c7db247ad 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/third_party/nixpkgs/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,23 @@
})
(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 = "NBitcoin";
+ version = "6.0.18";
+ sha256 = "1dr669h68cx6yfzr3n97yzzwbgnsv5g2008diyxngdjm55nh3q9s";
})
(fetchNuGet {
name = "NETStandard.Library";
@@ -699,6 +704,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/third_party/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
index 39f35f211f..79ab37c7ad 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
++ lib.optionals stdenv.isLinux [ systemd ]
++ lib.optionals stdenv.isDarwin [ darwin.Security ];
- cargoBuildFlags = [ "--features final" ];
+ buildFeatures = [ "final" ];
# Fix tests by preventing them from writing to /homeless-shelter.
preCheck = ''
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/particl-core/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/particl-core/default.nix
index d5838a4f4f..c9fb1a4586 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/particl-core/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/particl-core/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
, autoreconfHook
, boost
, db48
-, fetchurl
+, fetchFromGitHub
, libevent
, miniupnpc
, openssl
@@ -19,9 +20,11 @@ stdenv.mkDerivation rec {
pname = "particl-core";
version = "0.19.2.14";
- src = fetchurl {
- url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
- sha256 = "sha256-UMU3384r4RGVl0/7OPwdDva09vhQr+9Lqb1oD/PTva8=";
+ src = fetchFromGitHub {
+ owner = "particl";
+ repo = "particl-core";
+ rev = "v${version}";
+ sha256 = "sha256-gJLEMfEvQ35xjKt8iN/FXi2T/GBMSS7eUqOC8XHKPBg=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
@@ -41,7 +44,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Privacy-Focused Marketplace & Decentralized Application Platform";
- longDescription= ''
+ longDescription = ''
An open source, decentralized privacy platform built for global person to person eCommerce.
RPC daemon and CLI client only.
'';
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
index a64ab5249a..9b88861d0e 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "polkadot";
- version = "0.9.12";
+ version = "0.9.12-1";
src = fetchFromGitHub {
owner = "paritytech";
repo = "polkadot";
rev = "v${version}";
- sha256 = "1d1ppj8djqm97k18cbdvbgv9a5vhvxdgjiqair0bmxc44hwapl65";
+ sha256 = "sha256-+HATcxdIDQGDIQBF08yy/eKBcS10Hp7C0nZFVsYFNwQ=";
};
- cargoSha256 = "09kcacz836sm1zsi08mmf4ca5vbqc0lwwaam9p4vi0v4kd45axx9";
+ cargoSha256 = "sha256-1qg4ZnSORRVI7eCVMrR7lY3tzo7KJt+dC2RBXqbKrig=";
nativeBuildInputs = [ clang ];
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
index 10418c418f..440fec3c44 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -8,7 +8,7 @@
let
pname = "trezor-suite";
- version = "21.10.2";
+ version = "21.11.2";
name = "${pname}-${version}";
suffix = {
@@ -19,8 +19,8 @@ let
src = fetchurl {
url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
sha512 = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
- aarch64-linux = "sha512-+qXN9cQk1u18ZzeMecPNfhkTTsw61iM/IJYksPJl9+zx2AKldv9tAFUnnmKZ65LabiaIXI+emN185SRRcaOndw==";
- x86_64-linux = "sha512-WpiG8VOEODqsQ1/jERiEEGwVqR0zbMqERGjOysEVYorA0p3xZyl7OSpWOSWaUjPBZpQtJIBdqhSXeoSRcvfJgg==";
+ aarch64-linux = "sha512-QX5Ak2F1aD846BuGNcP1K/2c77Ut3LK3UiXsUPqiSBGZ9YRgdzROqdGjCVnTBBhxeCfGYQDhWmpuOpNbLr4eYg==";
+ x86_64-linux = "sha512-ckMlZoLEq3aLzyhoWf2rRE3XxNQhqo6rUHF2NKoV08sXz+Zth2Lk+P3te1vwFQl+Efryl84RTwVGWKmloZ8k9A==";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh b/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
index 79bc88ca89..764bf2106e 100755
--- a/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
-#! nix-shell -i bash -p dotnet-sdk_3 jq xmlstarlet curl nixfmt
+#! nix-shell -i bash -p dotnet-sdk_3 jq xmlstarlet curl nixpkgs-fmt
set -euo pipefail
# Run this script to generate deps.nix
@@ -95,4 +95,4 @@ echo $DEPS_FOOTER >&6
exec 6>&-
-nixfmt "$deps_file"
+nixpkgs-fmt "$deps_file"
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix b/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
index 47ee3f9bfe..d558fa8715 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -1,17 +1,14 @@
{ fetchurl }:
let
nugetUrlBase = "https://www.nuget.org/api/v2/package";
- fetchNuGet = { name, version, sha256 }:
- fetchurl {
- inherit sha256;
- url = "${nugetUrlBase}/${name}/${version}";
- };
-in [
+ fetchNuGet = { name, version, sha256 }: fetchurl { inherit sha256; url = "${nugetUrlBase}/${name}/${version}"; };
+in
+[
(fetchNuGet {
name = "microsoft.aspnetcore.app.runtime.linux-x64";
- version = "3.1.19";
- sha256 = "19z4zrchaxcz0a33c33n1qd11z9khj4323nfzsbzah0xxkkj8ka8";
+ version = "3.1.21";
+ sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql";
})
(fetchNuGet {
name = "microsoft.aspnetcore.jsonpatch";
@@ -95,8 +92,8 @@ in [
})
(fetchNuGet {
name = "microsoft.netcore.app.runtime.linux-x64";
- version = "3.1.19";
- sha256 = "10c9bq1z8j173n9jzamgplbxq101yscwdhksshn1ybisn7cr5g0h";
+ version = "3.1.21";
+ sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v";
})
(fetchNuGet {
name = "microsoft.netcore.dotnetapphost";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
index 62c7c3b3da..d36715bd30 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
@@ -96,7 +96,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Desktop GUI for Whirlpool by Samourai-Wallet";
- homepage = https://www.samouraiwallet.com/whirlpool;
+ homepage = "https://www.samouraiwallet.com/whirlpool";
license = licenses.unlicense;
maintainers = [ maintainers.offline ];
platforms = [ "x86_64-linux" ];
diff --git a/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix b/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
index f595e211dc..ea7fc13757 100644
--- a/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchgit, pkg-config, linkFarm, lightdm-enso-os-greeter
-, dbus, pcre, epoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
+, dbus, pcre, libepoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
, gtk3, vala, cmake, libgee, libX11, lightdm, gdk-pixbuf, clutter-gtk, wrapGAppsHook, librsvg }:
stdenv.mkDerivation {
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
dbus
gtk3
pcre
- epoxy
+ libepoxy
libgee
libX11
lightdm
diff --git a/third_party/nixpkgs/pkgs/applications/display-managers/sddm/default.nix b/third_party/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
index 029501c778..c75aba9d26 100644
--- a/third_party/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
@@ -19,12 +19,19 @@ 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 {
url = "https://github.com/sddm/sddm/commit/e1dedeeab6de565e043f26ac16033e613c222ef9.patch";
sha256 = "sha256-OPyrUI3bbH+PGDBfoL4Ohb4wIvmy9TeYZhE0JxR/D58=";
})
+ # Fix build with Qt 5.15.3
+ # See: https://github.com/sddm/sddm/pull/1325
+ (fetchpatch {
+ url = "https://github.com/sddm/sddm/commit/e93bf95c54ad8c2a1604f8d7be05339164b19308.patch";
+ sha256 = "sha256:1rh6sdvzivjcl5b05fczarvxhgpjhi7019hvf2gadnwgwdg104r4";
+ })
];
postPatch =
diff --git a/third_party/nixpkgs/pkgs/applications/display-managers/sddm/sddm-default-session.patch b/third_party/nixpkgs/pkgs/applications/display-managers/sddm/sddm-default-session.patch
new file mode 100644
index 0000000000..455ebbd415
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/aewan/default.nix b/third_party/nixpkgs/pkgs/applications/editors/aewan/default.nix
index b9d350cbd4..8472a91c59 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/aewan/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/third_party/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index 55dc516ce6..e6b9a16807 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/third_party/nixpkgs/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.17"; # "Android Studio Bumblebee (2021.1.1) Beta 4"
+ sha256Hash = "5WLUgCmdrK0PArc4eQQTNbEokq4DReKRwsZOWKb+Td4=";
};
latestVersion = { # canary & dev
- version = "2021.2.1.2"; # "Android Studio Chipmunk (2021.2.1) Canary 2"
- sha256Hash = "0xvn9zgn4cc9lhjynhiavmvx8bdzg4kcllmhg7xv18kp6wz4lh6z";
+ 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/third_party/nixpkgs/pkgs/applications/editors/bluefish/default.nix b/third_party/nixpkgs/pkgs/applications/editors/bluefish/default.nix
index 3a5436d4f3..1919e6b694 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/bluefish/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/bluefish/default.nix
@@ -1,24 +1,41 @@
-{ lib, stdenv, fetchurl, intltool, wrapGAppsHook, pkg-config , gtk, libxml2
-, enchant, gucharmap, python3, gnome
+{ lib
+, stdenv
+, fetchurl
+, intltool
+, wrapGAppsHook
+, pkg-config
+, gtk
+, libxml2
+, enchant
+, gucharmap
+, python3
+, gnome
}:
stdenv.mkDerivation rec {
- name = "bluefish-2.2.12";
+ pname = "bluefish";
+ version = "2.2.12";
src = fetchurl {
- url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
+ url = "mirror://sourceforge/bluefish/bluefish-${version}.tar.bz2";
sha256 = "0slyjx4b4l612505q02crk00pjg9d5wi8gm5gxvcs0f6l9dr1y8d";
};
nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
- buildInputs = [ gnome.adwaita-icon-theme gtk libxml2
- enchant gucharmap python3 ];
+ buildInputs = [
+ gnome.adwaita-icon-theme
+ gtk
+ libxml2
+ enchant
+ gucharmap
+ python3
+ ];
meta = with lib; {
description = "A powerful editor targeted towards programmers and webdevelopers";
homepage = "http://bluefish.openoffice.nl/";
license = licenses.gpl3Plus;
- maintainers = [maintainers.vbgl];
+ maintainers = with maintainers; [ vbgl ];
platforms = platforms.all;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/bviplus/default.nix b/third_party/nixpkgs/pkgs/applications/editors/bviplus/default.nix
index e48a147e6d..22d15d54f1 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/bviplus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/bviplus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ncurses }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses }:
stdenv.mkDerivation rec {
pname = "bviplus";
@@ -9,6 +9,18 @@ stdenv.mkDerivation rec {
sha256 = "08q2fdyiirabbsp5qpn3v8jxp4gd85l776w6gqvrbjwqa29a8arg";
};
+ patches = [
+ # Fix pending upstream inclusion for ncurses-6.3 support:
+ # https://sourceforge.net/p/bviplus/bugs/7/
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://sourceforge.net/p/bviplus/bugs/7/attachment/bviplus-ncurses-6.2.patch";
+ sha256 = "1g3s2fdly3qliy67f3dlb12a03a21zkjbya6gap4mqxhyyjbp46x";
+ # svn patch, rely on prefix added by fetchpatch:
+ extraPrefix = "";
+ })
+ ];
+
buildInputs = [
ncurses
];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/cudatext/default.nix b/third_party/nixpkgs/pkgs/applications/editors/cudatext/default.nix
index f3075d085c..f30138c2fe 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/cudatext/default.nix
+++ b/third_party/nixpkgs/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.148.0";
+ version = "1.150.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
- sha256 = "sha256-/wvtIPF/1HneW0zuT7+VCixemkw91MdU0S66bz2y48U=";
+ sha256 = "sha256-6XG4v2S7InKA6OVrV+q1lT/CzNxmzVQfmAAo2cqbqBY=";
};
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/editors/cudatext/deps.json b/third_party/nixpkgs/pkgs/applications/editors/cudatext/deps.json
index aaa63595ab..8e677458a4 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/cudatext/deps.json
+++ b/third_party/nixpkgs/pkgs/applications/editors/cudatext/deps.json
@@ -11,13 +11,13 @@
},
"ATFlatControls": {
"owner": "Alexey-T",
- "rev": "2021.10.19",
- "sha256": "sha256-NO1q4qDXZ0x0G6AtcRP9xnFDWuBzOvxq8G7I76LgaBw="
+ "rev": "2021.11.11",
+ "sha256": "sha256-lbRRiA8CHWmosJefTHrP2cTgU8nlK1SmNcppG6Bl54I="
},
"ATSynEdit": {
"owner": "Alexey-T",
- "rev": "2021.10.27",
- "sha256": "sha256-7DlnO7IeCFLU1A+HJt4CFXoHWfhAr52tBvfPNHieXMM="
+ "rev": "2021.11.25",
+ "sha256": "sha256-CbH0C+UOJ9X2wKG5IEbgitda06lazujYM8l961k7C7g="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
@@ -31,8 +31,8 @@
},
"ATSynEdit_Ex": {
"owner": "Alexey-T",
- "rev": "2021.09.03",
- "sha256": "sha256-XYFnTfRa0n9XF9l/hL6z5RFZgdpVP9o1If4qln905Yc="
+ "rev": "2021.11.25",
+ "sha256": "sha256-6hk9wNdoz1d3VpuW7yHyIQnnYseEAfgjCNGl6+o0Hjs="
},
"Python-for-Lazarus": {
"owner": "Alexey-T",
diff --git a/third_party/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/third_party/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
index 46a9b6c477..337479b16b 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/elvis/default.nix b/third_party/nixpkgs/pkgs/applications/editors/elvis/default.nix
index f63598a7c5..eb288ff8b2 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/elvis/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/elvis/default.nix
@@ -1,19 +1,22 @@
{ fetchurl, fetchpatch, lib, stdenv, ncurses }:
-stdenv.mkDerivation {
- name = "elvis-2.2_0";
+stdenv.mkDerivation rec {
+ pname = "elvis";
+ version = "2.2_0";
src = fetchurl {
- url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-2.2_0.tar.gz";
+ url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-${version}.tar.gz";
sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
};
buildInputs = [ ncurses ];
- patches = [ (fetchpatch {
- url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch";
- sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc";
- }) ];
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch";
+ sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc";
+ })
+ ];
postPatch = ''
substituteInPlace configure \
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
index 876392c081..f74402f5e6 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
index 18dcef129c..31106654ae 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
@@ -1,10 +1,11 @@
{ lib, fetchurl, stdenv, emacs, python }:
stdenv.mkDerivation rec {
- name = "cedet-1.1";
+ pname = "cedet";
+ version = "1.1";
src = fetchurl {
- url = "mirror://sourceforge/cedet/${name}.tar.gz";
+ url = "mirror://sourceforge/cedet/cedet-${version}.tar.gz";
sha256 = "0p2bwlpwwa019axvgj09xkxbr53j0pq23d46s4la9jfhl47nbh22";
};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 13e82ba3cf..d2b870bb82 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -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";
@@ -1101,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 = {
@@ -1161,10 +1176,10 @@
elpaBuild {
pname = "eev";
ename = "eev";
- version = "20211024";
+ version = "20211101";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/eev-20211024.tar";
- sha256 = "165mscb1kpgd3db92vklglnaph60rvrr8wm3hpkhrbyac100ryji";
+ url = "https://elpa.gnu.org/packages/eev-20211101.tar";
+ sha256 = "0sxbf116msfv6ly1dqga2sz2zpqr78nzp3v44qy7rps2887incmr";
};
packageRequires = [ emacs ];
meta = {
@@ -1275,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
@@ -1284,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 = {
@@ -1424,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 = {
@@ -1499,10 +1549,10 @@
elpaBuild {
pname = "flymake-proselint";
ename = "flymake-proselint";
- version = "0.2.2";
+ version = "0.2.3";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/flymake-proselint-0.2.2.tar";
- sha256 = "0v43d2cszrq8lzshm17x6aiqbkzwz5kj8x5sznc3nip9gaqsrfv1";
+ url = "https://elpa.gnu.org/packages/flymake-proselint-0.2.3.tar";
+ sha256 = "1384m52zkrlkkkyxg1zimp7dwrxhx8wbvw5ga5vg78yl6cqx9kbc";
};
packageRequires = [ emacs ];
meta = {
@@ -2013,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 = {
@@ -3005,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 = {
@@ -3050,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 = {
@@ -3651,10 +3701,10 @@
elpaBuild {
pname = "sketch-mode";
ename = "sketch-mode";
- version = "1.0.3";
+ version = "1.0.4";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/sketch-mode-1.0.3.tar";
- sha256 = "17xa8754zp07izgd3b9hywlwd1jrbzyc5y1rrhin7w6r0pyvqs51";
+ url = "https://elpa.gnu.org/packages/sketch-mode-1.0.4.tar";
+ sha256 = "1gv03ykr40laf52hm8p0glfsy895jghkp5a8q599zwg5wpz3zdc9";
};
packageRequires = [];
meta = {
@@ -4045,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 = {
@@ -4090,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 = {
@@ -4219,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 = {
@@ -4337,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";
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
index b7f861a4cd..60fac91839 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -36,14 +36,16 @@ self: let
inherit (self) emacs;
};
+ # Use custom elpa url fetcher with fallback/uncompress
+ fetchurl = buildPackages.callPackage ./fetchelpa.nix { };
+
generateElpa = lib.makeOverridable ({
generated ? ./elpa-generated.nix
}: let
imported = import generated {
callPackage = pkgs: args: self.callPackage pkgs (args // {
- # Use custom elpa url fetcher with fallback/uncompress
- fetchurl = buildPackages.callPackage ./fetchelpa.nix { };
+ inherit fetchurl;
});
};
@@ -69,12 +71,7 @@ self: let
dontUnpack = false;
srcs = [
super.ada-mode.src
- # ada-mode needs a specific version of wisi, check NEWS or ada-mode's
- # package-requires to find the version to use.
- (pkgs.fetchurl {
- url = "https://elpa.gnu.org/packages/wisi-3.1.3.tar.lz";
- sha256 = "18dwcc0crds7aw466vslqicidlzamf8avn59gqi2g7y2x9k5q0as";
- })
+ self.wisi.src
];
sourceRoot = "ada-mode-${self.ada-mode.version}";
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index 0cf2eae0d6..90f13e870c 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
@@ -282,10 +282,10 @@
elpaBuild {
pname = "flymake-kondor";
ename = "flymake-kondor";
- version = "0.1.2";
+ version = "0.1.3";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/flymake-kondor-0.1.2.tar";
- sha256 = "17mmn9mj4zl5f7byairkgxz6s2mrq73q3219s73c0b2g0g846krn";
+ url = "https://elpa.nongnu.org/nongnu/flymake-kondor-0.1.3.tar";
+ sha256 = "07k8b3wayp1h4hir98zs5srjjsnh6w0h9pzn4vnq9s2jr355509n";
};
packageRequires = [ emacs ];
meta = {
@@ -387,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 = {
@@ -975,10 +975,10 @@
elpaBuild {
pname = "rust-mode";
ename = "rust-mode";
- version = "1.0.0";
+ version = "1.0.1";
src = fetchurl {
- url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.0.tar";
- sha256 = "0ch3hf954iy5hh5zyjjg68szdk5icppmi8nbap27wfwgvhvyfa67";
+ url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.1.tar";
+ sha256 = "1rybjnaycvjgqp8g8lkjzgvnwd4565cbx88qlnxfrlqd5161r1k3";
};
packageRequires = [ emacs ];
meta = {
@@ -1099,10 +1099,10 @@
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 = {
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix
deleted file mode 100644
index 12680336e0..0000000000
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-# Updating
-
-To update the list of packages from Org (ELPA),
-
-1. Run `./update-org`.
-2. Check for evaluation errors:
- env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate ../../../../.. -A emacs.pkgs.orgPackages
-3. Run `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
-
-*/
-
-{ lib }:
-
-self: let
-
- generateOrg = lib.makeOverridable ({
- generated ? ./org-generated.nix
- }: let
-
- imported = import generated {
- inherit (self) callPackage;
- };
-
- super = imported;
-
- overrides = {
- };
-
- in super // overrides);
-
-in generateOrg { }
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index 5b0ef0fa8e..9467f6c7ab 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/third_party/nixpkgs/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": [
@@ -1948,35 +1948,23 @@
}
},
{
- "ename": "agda2-mode",
- "commit": "714e0fe062981d27e3f1d48b2fd759d60bbb4d8c",
- "sha256": "0vbi64fri02ziy68dvpq1y946w4n4mla8gh1cmldqq8x24l8ssdg",
+ "ename": "agda-editor-tactics",
+ "commit": "1806c594f0ae0d7eb8be7e4baf4bf66af32c3d46",
+ "sha256": "11lfpa1hdbrnbrrhpqmi3lzx28wbfnw4j29rywwcjlcb6a0ax50v",
"fetcher": "github",
- "repo": "agda/agda",
+ "repo": "alhassy/next-700-module-systems",
"unstable": {
"version": [
- 20210903,
- 1114
+ 20211024,
+ 2357
],
"deps": [
- "annotation",
- "eri"
+ "dash",
+ "org",
+ "s"
],
- "commit": "bea11a04df5f82b2b8782bcad5bf2af2a6b88b65",
- "sha256": "043pl1cdyy8yfmw50kqwf7xn0alcm98zzms962v7jdgbhbq07882"
- },
- "stable": {
- "version": [
- 2,
- 6,
- 2
- ],
- "deps": [
- "annotation",
- "eri"
- ],
- "commit": "246a229faea2ef2fa53caf491ff8a2d72dd7510c",
- "sha256": "1ccmryw6vs8d87d5zmjl0kr2kvyd1zxl73344fa7yzqgg2kw1da6"
+ "commit": "c401c0c1ec0ad38bb5ee1636504e0e531b9e34b9",
+ "sha256": "0y5dp3i97w96dy5p5yk4gxs4db9n260sn1q2vp1j6afi30mn2mb9"
}
},
{
@@ -2344,8 +2332,8 @@
"deps": [
"flycheck"
],
- "commit": "135be1a851a1110dffe8bb349183b73a49a1f090",
- "sha256": "09j59s5agyvngk5z75dl129gdzlq2kn11qlgc9798fy1gx11cahw"
+ "commit": "1bcc7c68abcd6471604c9b7fe7f85b0878bbd435",
+ "sha256": "10kpdra8m015xsh7w25v18zd62csayji0p5jqgif20bw6g8g20a7"
},
"stable": {
"version": [
@@ -2452,11 +2440,11 @@
"repo": "domtronn/all-the-icons.el",
"unstable": {
"version": [
- 20211021,
- 1244
+ 20211108,
+ 7
],
- "commit": "b7002b5aa152b56a2a852c3aae2f2e1a0e963277",
- "sha256": "0srh30xciwb6dsw5rixz5ikc1z7jx3987zd4gnc1b7aj01826n8k"
+ "commit": "483dba65e897071c156cefec937edcf51aa333db",
+ "sha256": "01v0pyfz49a74d7vqg8nhq9jpbyqbywcpk3ajc59d9fwg7wmzjvq"
},
"stable": {
"version": [
@@ -2968,6 +2956,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": "9f814c5e8bcabb5f65563b057ae9ad8458b90408",
+ "sha256": "0jy2pxcsj06klrc02q9nsm626nj229zg5y9gn7xyixszjjbvmlyj"
+ }
+ },
{
"ename": "android-env",
"commit": "570ad0e94736d9fd16f3909bcfa928a9153ea703",
@@ -3246,8 +3249,8 @@
20200914,
644
],
- "commit": "bea11a04df5f82b2b8782bcad5bf2af2a6b88b65",
- "sha256": "043pl1cdyy8yfmw50kqwf7xn0alcm98zzms962v7jdgbhbq07882"
+ "commit": "6cb77e1a216098d6a4e273f6750dbf4445953272",
+ "sha256": "1rj04f9q7fn88ifznqqi3p7anv0m827mz2w2bwb4s09kdn03nf6p"
},
"stable": {
"version": [
@@ -3294,14 +3297,14 @@
"repo": "rejeep/ansi.el",
"unstable": {
"version": [
- 20211023,
- 529
+ 20211104,
+ 1420
],
"deps": [
"cl-lib"
],
- "commit": "6e5455af7fa5d7b21bdb383e36190cb9d996ec35",
- "sha256": "026bbdqnwcivgkhff6wp71vwi0wk2kn85idad7jmdsabdgzl9hmr"
+ "commit": "2367fba7b3b2340364a30cd6de7f3eb6bb9898a3",
+ "sha256": "1n7h6l4icm6lks3zpvd83j1fzrnspw19rmz7c96vy7pdh1y4v3p3"
},
"stable": {
"version": [
@@ -3380,26 +3383,20 @@
"repo": "zellio/ansible-vault-mode",
"unstable": {
"version": [
- 20211016,
- 2350
+ 20211027,
+ 1528
],
- "deps": [
- "seq"
- ],
- "commit": "71c783384de8f2db05453db0dd3ff0cd256d6ea9",
- "sha256": "0f3k1lzf0cw19vrs85dsl0zw2m7zjd7p7hgxajl8y4n2438ksnvr"
+ "commit": "5deca2fdb640fa70e614e66ee37e1d6739d39ba4",
+ "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
},
"stable": {
"version": [
0,
- 4,
- 2
+ 5,
+ 1
],
- "deps": [
- "seq"
- ],
- "commit": "6bfc1fb7caa10c613561142b748482befde48900",
- "sha256": "0f3k1lzf0cw19vrs85dsl0zw2m7zjd7p7hgxajl8y4n2438ksnvr"
+ "commit": "4fc188a9817cb4c7e0f19b6f1ae720c902f7ebe9",
+ "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
}
},
{
@@ -3568,8 +3565,8 @@
20211023,
1831
],
- "commit": "8b326a38fa1bf3b9675b251c78eb9456245aeef9",
- "sha256": "07qcvn607x3mmrp8mc3wkxczj1mkhd0lb8674qx84j0yl7idv1dm"
+ "commit": "c55c6468526100ba0da00bff05cfb17cdf8839cf",
+ "sha256": "1wmq1fwzfj10c445gyh7silrzi3d911fc8knc967g7hspw4kna3w"
},
"stable": {
"version": [
@@ -3604,11 +3601,11 @@
"repo": "raxod502/apheleia",
"unstable": {
"version": [
- 20211025,
- 128
+ 20211116,
+ 132
],
- "commit": "1bf7db7477db4ca93740a5ebc5ad3c0dc3777273",
- "sha256": "1nc0w5l53kq4z6qy6qwzkwp8cb8n0328i9jakdzhpg2lllmapz66"
+ "commit": "8e0605cc29732ec889b7318dd57921bf3f5ba06c",
+ "sha256": "1ffhnpz2zv4s4wl4a31c9xz9srx6h50q0ya7lacmj15vw9ffwd4z"
},
"stable": {
"version": [
@@ -3765,11 +3762,11 @@
"repo": "waymondo/apropospriate-theme",
"unstable": {
"version": [
- 20210809,
- 1934
+ 20211113,
+ 1913
],
- "commit": "e84255cf485004b6b2cb37ce9e0be62fd6512f8b",
- "sha256": "06rcf08f8qm068ck2mxqbg03vkr0hf5nnsbzpwmn7i6qqw23x6jd"
+ "commit": "b934a5a17cac02137c1bfe81935638ab85dbaec9",
+ "sha256": "1wbvxvv7fydv9p148xxyivsvjh000z4ndfwfpbir4hv0l83xghrw"
},
"stable": {
"version": [
@@ -3911,14 +3908,14 @@
"repo": "stardiviner/arduino-mode",
"unstable": {
"version": [
- 20210907,
- 1455
+ 20211112,
+ 1223
],
"deps": [
"spinner"
],
- "commit": "6d2d1122924370ffa17ce337e3b02ecab79d861b",
- "sha256": "039h4hkl7n9ypdwi8zqs10fcbvwh5c2qmlz86x66xlp0wamg827r"
+ "commit": "3bc47bd7f75a7ccae409236dab43208ce8d41d51",
+ "sha256": "1jsifn9gfpb2rwhz9fr6r4qsmyydfd6rmz87iy7884nrnxkmdsci"
}
},
{
@@ -5017,29 +5014,29 @@
"repo": "mina86/auto-dim-other-buffers.el",
"unstable": {
"version": [
- 20210210,
- 1744
+ 20211101,
+ 1155
],
- "commit": "62c936d502f35d168b9e59a66c994d74a62ad2cf",
- "sha256": "07ilprnidpg8wn28h8ra9ml6pxaixg734ybya0gj1ac6sc3ky52s"
+ "commit": "2a19931b275dc3c70c4bb16a3c60046800ba631a",
+ "sha256": "00f0n6pz0qi2fandcgj8skgj169bwxrda62vkrf0frwpavwpmkml"
}
},
{
"ename": "auto-highlight-symbol",
- "commit": "96293eb591e5f436efe8e9dc131d29ede292d2c3",
- "sha256": "0n8acv58jkbqj00pi7d4g3nryvgvy52z0xg874jfh73d2f17dcdl",
+ "commit": "be4b46eddfa1dd39381913d1d56e9ba1d1a1f9ad",
+ "sha256": "1bkf4n0vg2ramz8n6qr44swdyp93d14qvm1gidpmgpaffdxsf8rl",
"fetcher": "github",
- "repo": "jcs-elpa/auto-highlight-symbol",
+ "repo": "elp-revive/auto-highlight-symbol",
"unstable": {
"version": [
- 20211006,
- 603
+ 20211116,
+ 1242
],
"deps": [
"ht"
],
- "commit": "1a54a61fda6206c5e0fa843d16635133241292ba",
- "sha256": "0b90i17rvdszdbmm4snzx6z5xgj705ahy0b0brfqs0b9m9s1iy13"
+ "commit": "0a16afcb10d8b3cf0e21002a6dff74f3b417c7c5",
+ "sha256": "13z0p702qxnz2xfrdw3himzgkwl3sqhcskqw8awmz67fqglw71zf"
},
"stable": {
"version": [
@@ -5061,11 +5058,11 @@
"repo": "mattfidler/auto-indent-mode.el",
"unstable": {
"version": [
- 20191112,
- 1418
+ 20211029,
+ 11
],
- "commit": "ebb1ee5ca24f3040c34b9455502a0e94f19903d0",
- "sha256": "19p73jws7iddgs14cnfz9lb5ggyicqk08pasf66fkcvyhzydnwkm"
+ "commit": "664006b67329a8e27330541547f8c2187dab947c",
+ "sha256": "07nf07xzc30jnyr9s8vp561vgq64610gdhlwzkbanvnkmj20v9li"
},
"stable": {
"version": [
@@ -5122,14 +5119,14 @@
"repo": "rranelli/auto-package-update.el",
"unstable": {
"version": [
- 20211025,
- 1352
+ 20211108,
+ 2025
],
"deps": [
"dash"
],
- "commit": "610576ed3adb6e732bc9288d1f9ec18e2ddef345",
- "sha256": "0rgdrdsffr4d6lqpxfq8j8r35q1z38ba1985nnnci13lf53ibnvj"
+ "commit": "ad95435fefe2bb501d1d787b08272f9c1b7df488",
+ "sha256": "00456kxd1zb5lcwkm211mhdgkl0b01pp4fbkl1ryvdnhddn83ipv"
},
"stable": {
"version": [
@@ -5601,8 +5598,8 @@
"avy",
"embark"
],
- "commit": "560af655922582f3f20a46fb1969915ee34028a4",
- "sha256": "0nzygmj6j7f3fw2acifb25lcxswx704fgxlsvl6ya1z6kkamfcx4"
+ "commit": "edfd0a842a75ad25115f95f56b0c8a9351d3e248",
+ "sha256": "1mq84aiak2fwxbxacf9wzk223dri6z918vqdgs3vy0amvn1ys2ji"
},
"stable": {
"version": [
@@ -5812,11 +5809,11 @@
"url": "https://bitbucket.org/pdo/axiom-environment",
"unstable": {
"version": [
- 20210714,
- 1912
+ 20211116,
+ 2200
],
- "commit": "7d72e6319b98b334f74b78f3d4151e92fb7dcbad",
- "sha256": "1hwcndb1x3i51l0kvzk4mj6sil8h10mxmazic9zvwjhia9qz9hz3"
+ "commit": "3266c5b2e4865337da86043b53a4e6609dbc8308",
+ "sha256": "11k53vvw5df66f54mh3zkghspmi7zsgls3mlkfvl19hz2z1pyhwq"
}
},
{
@@ -6381,11 +6378,11 @@
"repo": "bazelbuild/emacs-bazel-mode",
"unstable": {
"version": [
- 20211006,
- 855
+ 20211031,
+ 1941
],
- "commit": "41745212f75b4deafb27fc790df1a74ae344df84",
- "sha256": "12h7sndahwpyqc1sr2dgf3wz5g6hizb908iw3rfyhxjgss2yai3b"
+ "commit": "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18",
+ "sha256": "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"
}
},
{
@@ -6813,11 +6810,11 @@
"repo": "gilbertw1/better-jumper",
"unstable": {
"version": [
- 20210713,
- 1426
+ 20211108,
+ 2015
],
- "commit": "7f328a886ba4dd01993d269eee01c8ee3d0ddf52",
- "sha256": "1xfap2db1ncfdnv8d3vdn8gxgkzamz8vz9jsyn0jiminhy0hb2na"
+ "commit": "3148a17b5920bba8ec4f81b717b99acde5fd5b74",
+ "sha256": "097xgcmp6a22hqyyfxqyxiq8p4kwq0gql4gcbmjhm9dd8qpf3s8b"
}
},
{
@@ -7067,36 +7064,6 @@
"sha256": "0vcdi0q6rbs3qqlpccy9hdv82zrx61gdj3fn444qashk84s085vf"
}
},
- {
- "ename": "bibtex-actions",
- "commit": "a6050cc5f04343c5a0e3992d223eca3b50acec7c",
- "sha256": "1yfrs54gb38877322rmg6p7lqy91km33vil867qgbyj016ss4x7s",
- "fetcher": "github",
- "repo": "bdarcus/bibtex-actions",
- "unstable": {
- "version": [
- 20211025,
- 1224
- ],
- "deps": [
- "bibtex-completion",
- "parsebib"
- ],
- "commit": "c170aa4381b093892efe14ffc8da6d726d305088",
- "sha256": "1qn6h5qfia6wxzy7qnrcxxadjp4wsvbnlmca0sv6f2sxxbphf835"
- },
- "stable": {
- "version": [
- 0,
- 4
- ],
- "deps": [
- "bibtex-completion"
- ],
- "commit": "c18b1ad05168597a3cbaee67775d15d2ebb737f4",
- "sha256": "0x45wq2nw753dz6694li3f0zmjm0rljmrr5rvj2qrhgqldlwn6zn"
- }
- },
{
"ename": "bibtex-completion",
"commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
@@ -7316,14 +7283,14 @@
"repo": "rnkn/binder",
"unstable": {
"version": [
- 20210131,
- 1227
+ 20211030,
+ 511
],
"deps": [
"seq"
],
- "commit": "52f1c11b01a5f7e7a470a73dec4c3335dea4124b",
- "sha256": "00kjjr28bvimbdhg016n0g6ws1lix87c1bic1xb3nk0bvnbkpwfp"
+ "commit": "8cefdf0959f0da33250044cf4890b69cfdcf0c5b",
+ "sha256": "0q4cz07s8qzkvnym7ab2l111dk88nfigpf0r3x0jcxx2qivs52s4"
},
"stable": {
"version": [
@@ -7542,6 +7509,36 @@
"sha256": "0n0889vsm3lzswkcdgdykgv3vz4pb9s88wwkinc5bn70vc187byp"
}
},
+ {
+ "ename": "blamer",
+ "commit": "412fea9e0564929310918096bae95636ba885a7c",
+ "sha256": "1p7g9c0621nsj2vn6janywghhllv5j8i4lpqv06vxmqy6pydl0xw",
+ "fetcher": "github",
+ "repo": "Artawower/blamer.el",
+ "unstable": {
+ "version": [
+ 20211114,
+ 2013
+ ],
+ "deps": [
+ "a"
+ ],
+ "commit": "8855eeb6ef6aa323361498714d06365e0db83488",
+ "sha256": "04wy05pa9xzvrk33xnfvfk8hy127q7nlgn9kbcd4mm7ql4ywf8gp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "a"
+ ],
+ "commit": "8855eeb6ef6aa323361498714d06365e0db83488",
+ "sha256": "04wy05pa9xzvrk33xnfvfk8hy127q7nlgn9kbcd4mm7ql4ywf8gp"
+ }
+ },
{
"ename": "blgrep",
"commit": "e78ed9dc4a7ff57524e79213973157ab364ae14d",
@@ -8025,15 +8022,15 @@
"repo": "emacscollective/borg",
"unstable": {
"version": [
- 20211001,
- 2148
+ 20211111,
+ 2352
],
"deps": [
"epkg",
"magit"
],
- "commit": "069859e8857d70ca0cc755466ffdd35c18780607",
- "sha256": "0ca5gmj437zxmzcvxfnbwpsdxblss9fv3689v9q6dqpy0p9vz0wq"
+ "commit": "2ffcfd4481710e5b6d45a07a99da2561fe1c9d3e",
+ "sha256": "1nfrvln6s09krabzgsw1hqxs5rp95137dcaqk0pfj9y320awa1gb"
},
"stable": {
"version": [
@@ -8250,8 +8247,8 @@
20200321,
2126
],
- "commit": "3b34032bdde6a37b4566c45ce93cb38da21d4965",
- "sha256": "16p4404mxqgl1zqdalnq3bvbhwv11wgfl42871lxv3nndcsd30gr"
+ "commit": "71c555c2e254629c365e6fc44c2fc4d5b6d0ae8b",
+ "sha256": "03f0ipzmmpv64kk9dim8nihai3mz2ys7v2qvhywpd3a52nnmlqv4"
},
"stable": {
"version": [
@@ -8374,11 +8371,11 @@
"repo": "topikettunen/brutal-emacs",
"unstable": {
"version": [
- 20211018,
- 2212
+ 20211112,
+ 1713
],
- "commit": "5ec10f0614978c376df95ed9da05f2227cd7cd62",
- "sha256": "1gz69g9kz90yriwlyarfd632k19q65sb0r4as25ykq8m67cr5cm9"
+ "commit": "f9bba56199e861bc405703286ac3378bda496898",
+ "sha256": "12j7ad1fs93a9d5s9ki99321lbky1kpsz0b84xj0yld08zvhwixb"
}
},
{
@@ -8640,8 +8637,8 @@
"ht",
"s"
],
- "commit": "7336ae668c0b26e3a53bcd36577ea84a8090ec21",
- "sha256": "1gzgp7w4j8dlig4psqc9g4ns69dd70hj83347al0jqcnrhw0ysy3"
+ "commit": "a2bc0252eae7a787219627512d5d54984b97e1a2",
+ "sha256": "0scqddzijg02dggyj7v59f30irp9hw68sc075wa0i039f4ab8kh4"
},
"stable": {
"version": [
@@ -9820,8 +9817,8 @@
20210707,
2310
],
- "commit": "a47240bf428b1de2e16eba28cb1eb355f1e00a80",
- "sha256": "1mz6jf8l8i6m7my0kxpfmsna0wzh5brwiwslb4rbmbp8q1lisbk0"
+ "commit": "5ecc98425417732e7124460c7d938c0994958c1f",
+ "sha256": "10g0jap8rq0bbxqq61vvn2zklmhz94d883mr18gq1f926l3ni9z2"
},
"stable": {
"version": [
@@ -9980,8 +9977,8 @@
"repo": "cask/cask",
"unstable": {
"version": [
- 20211001,
- 1042
+ 20211103,
+ 1654
],
"deps": [
"ansi",
@@ -9992,8 +9989,8 @@
"s",
"shut-up"
],
- "commit": "fe66b65944be8e03359ffe6f06618ecab8232f6b",
- "sha256": "0mw6adyvjf4x5d83iy1gf5v36nr4dm09806ybgfkfvivsd348k97"
+ "commit": "467979414c85bb2ce83f5c6ab9f95721164e9efa",
+ "sha256": "0jccv6aprs4fq2m7b2hdxp0dgkjkwjfmlh5ywbl5pacms3c3l82l"
},
"stable": {
"version": [
@@ -10190,16 +10187,16 @@
20210501,
820
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
"ename": "ccls",
- "commit": "be27a4022d58860917a659fce2b7d7791fbea4e2",
- "sha256": "0kiv0n6pdpa75wjcimpwccwbjbhga4gjnphjrkpj4qz5qv42rbnm",
+ "commit": "5bd4c12f9c8ea96e29d684c4121ea4e10ba5e775",
+ "sha256": "1h0l6y4iky4ry36mfw6k8fddn0nyibcnhh6hhprjn7zmhyd32f5l",
"fetcher": "github",
- "repo": "MaskRay/emacs-ccls",
+ "repo": "emacs-lsp/emacs-ccls",
"unstable": {
"version": [
20200820,
@@ -10239,8 +10236,8 @@
20200904,
1431
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -10509,8 +10506,8 @@
20171115,
2108
],
- "commit": "da01eaa8153cd9b5a3da151f23a30c351e9cf7b9",
- "sha256": "09nkkx9xc2ygn6s8lsa46d2cmh32wybf1b8y62nxc62m4scyz05n"
+ "commit": "be17316bf94dcfd0e725383041f5f059d85d8846",
+ "sha256": "0jf9ss3nj1v5qn02g9vhcsxp4rdrhx9s5ajd9md641av9p8c6rkm"
},
"stable": {
"version": [
@@ -11300,8 +11297,8 @@
"repo": "clojure-emacs/cider",
"unstable": {
"version": [
- 20211021,
- 545
+ 20211108,
+ 621
],
"deps": [
"clojure-mode",
@@ -11312,8 +11309,8 @@
"sesman",
"spinner"
],
- "commit": "6a17686799b7ef97bc15fa041016421e5c875bfb",
- "sha256": "1ifq42bdikz9p8038yyrm9k07bg6h7ddsiw8zlrsawbk5vc3xy72"
+ "commit": "a30d2e5ee2052dbc06e24c2494747ebd60f0cd03",
+ "sha256": "1dsx3f752hkj18b2bwyjnl37xfb4cqhh8mxl5gjp5dc9nk6i2ccv"
},
"stable": {
"version": [
@@ -11574,6 +11571,38 @@
"sha256": "0j184sgqxh3f34ni6bfb69mfir94glcyl0wpqmpsn9siq54s82ag"
}
},
+ {
+ "ename": "citar",
+ "commit": "b2aa35ca3930920d61e50dd75394f70ccd1c737b",
+ "sha256": "0x66iwimvrihyxs5h816f2k2f2wgdn1kmiahvh5nfff6kx1xdplj",
+ "fetcher": "github",
+ "repo": "bdarcus/citar",
+ "unstable": {
+ "version": [
+ 20211117,
+ 312
+ ],
+ "deps": [
+ "org",
+ "parsebib",
+ "s"
+ ],
+ "commit": "26c83fb42e0daece49cc98bebca0e81ea7c0232b",
+ "sha256": "0ch6wja4s6mdcfhxkdjfx82k519wq41v4rirsggczpkrzx7j5ql3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "bibtex-completion",
+ "parsebib"
+ ],
+ "commit": "2dcf0c450a80609294edcb89d55f352e763d0570",
+ "sha256": "1jrfcfr976c9nb2vpfrh6yhck5gm34wcjzbk0m6gq2xg3qfv2g6p"
+ }
+ },
{
"ename": "citeproc",
"commit": "20aa56e9a4809cee1082224b1b4e65921a48bda1",
@@ -11582,8 +11611,8 @@
"repo": "andras-simonyi/citeproc-el",
"unstable": {
"version": [
- 20211014,
- 1115
+ 20211111,
+ 1008
],
"deps": [
"dash",
@@ -11594,8 +11623,8 @@
"s",
"string-inflection"
],
- "commit": "c8ff95862823cdff067e8cc9bb7f5ef537e8f1d9",
- "sha256": "1dqs5slpd9i8dj6fgryg46zabd6c134qrdq8dkj1i5n0k17ni0h1"
+ "commit": "2857f9bb819d0d0a6e6ed91cc38b165e506bfc2e",
+ "sha256": "11qm0mg0spwmqrl8d4pwjp0byn5b2askjcbs1yl1rpmlki97hb6m"
},
"stable": {
"version": [
@@ -12014,8 +12043,8 @@
"repo": "clojure-emacs/clj-refactor.el",
"unstable": {
"version": [
- 20211025,
- 1151
+ 20211117,
+ 1008
],
"deps": [
"cider",
@@ -12028,14 +12057,14 @@
"seq",
"yasnippet"
],
- "commit": "4b7312be8e8e629f9de6e64b0fb809e78a39f832",
- "sha256": "1jxch7apckzajpnpfk5k79pmyxw0drj87s0f18ajmd4syimnaxra"
+ "commit": "af1bde5cb0ca5679927f70eb21e7a95a33791e51",
+ "sha256": "1a962xav2pzbdx2zfaf53hqj8a5nz1im1773b7b1d9s7vp4lc991"
},
"stable": {
"version": [
3,
- 0,
- 0
+ 2,
+ 2
],
"deps": [
"cider",
@@ -12048,8 +12077,8 @@
"seq",
"yasnippet"
],
- "commit": "b1503962c90f1c88a4f32b8d32cf87c48437c158",
- "sha256": "0i759k6qm752lmdsxrgp0bh3akl01as8k8q6x1a7cpdh6yddwajs"
+ "commit": "e0d83c845014a24c2604a08f9c9931c63ea809c4",
+ "sha256": "1iyivn7x5bcnp4g7k0k2b0jdcph84pbldlk83qqfzix6h4sp1k1f"
}
},
{
@@ -12276,11 +12305,11 @@
"repo": "clojure-emacs/clojure-mode",
"unstable": {
"version": [
- 20210821,
- 2010
+ 20211114,
+ 757
],
- "commit": "e1dc7caee76d117a366f8b8b1c2da7e6400636a8",
- "sha256": "101fallqv90dgjdiq24hc63yw2a3df12y5cclcg9p4hk8rinc80x"
+ "commit": "08986ac32972830bb191496ea680fba1d6cd5fe2",
+ "sha256": "1y6zr7ijpyl1kf15108b5mkicf76ha2v8wq8lsk02xglgmjb7f5l"
},
"stable": {
"version": [
@@ -12300,14 +12329,14 @@
"repo": "clojure-emacs/clojure-mode",
"unstable": {
"version": [
- 20210322,
- 704
+ 20211110,
+ 1015
],
"deps": [
"clojure-mode"
],
- "commit": "e1dc7caee76d117a366f8b8b1c2da7e6400636a8",
- "sha256": "101fallqv90dgjdiq24hc63yw2a3df12y5cclcg9p4hk8rinc80x"
+ "commit": "08986ac32972830bb191496ea680fba1d6cd5fe2",
+ "sha256": "1y6zr7ijpyl1kf15108b5mkicf76ha2v8wq8lsk02xglgmjb7f5l"
},
"stable": {
"version": [
@@ -12609,8 +12638,8 @@
20210104,
1831
],
- "commit": "0ce50dd78f68b697e1ab29d52d733b87c5bfb67d",
- "sha256": "0rifl9lqnkylcv2nqf6qwahicyv34wss9fqmw3xlgkkghk56c5w0"
+ "commit": "d2e10c4d8dd7dc32ae775a6382c5277308639271",
+ "sha256": "1jcw34vbfhs6mv4a9sl9gnqyf3g4fsnrcpdzkyx872c6awdg36dl"
},
"stable": {
"version": [
@@ -12618,10 +12647,10 @@
22,
0,
-1,
- 1
+ 3
],
- "commit": "167060303b6d9ffb56b2785cec0f7e363f0876c6",
- "sha256": "0zaw4zjxsrjfm4rajqlh4wff158crbxyjpajbmh4yckd3gnz1swr"
+ "commit": "fed67fa40d7b6e34ee7c8565694bd54af61aed73",
+ "sha256": "0ddnqjbkmj40119w071vhchprcljdm1k9n3aps5vsa6srdpxa0dh"
}
},
{
@@ -12689,11 +12718,11 @@
"repo": "tumashu/cnfonts",
"unstable": {
"version": [
- 20200824,
- 240
+ 20211112,
+ 808
],
- "commit": "b967605d571d827c1cb041c174fb363985758729",
- "sha256": "1h4c6czj7zr1p8b0233rxmczkaf7hh72869lijsvkvx9xmq9pk8w"
+ "commit": "4dad44ed3619c40ba406bcf45d37fdec3ce0db8e",
+ "sha256": "037k5d4ikb3bqa1gqipzkx92ml8fajgalz0r375y7hlvasr2zvzx"
},
"stable": {
"version": [
@@ -13290,11 +13319,11 @@
"repo": "matthewbauer/comint-hyperlink",
"unstable": {
"version": [
- 20191104,
- 2224
+ 20211026,
+ 100
],
- "commit": "a7878825788ff6b9d6b8a5adf0214a028bad895e",
- "sha256": "19fww5aciqx4h67hpmzf564n0ygzg69v1sk1qjyhbs27pq5zrjmq"
+ "commit": "905f2db1f95950899301b9f71faed9e9362cf5dc",
+ "sha256": "1d5a0c33zdziz1yw2nv65qyi122zz7b5y9vgsx6kfz7xj32sc8s5"
},
"stable": {
"version": [
@@ -13562,11 +13591,11 @@
"repo": "company-mode/company-mode",
"unstable": {
"version": [
- 20211024,
- 2305
+ 20211112,
+ 2354
],
- "commit": "811beeade86669e20da35efed5b00de6a5e305ab",
- "sha256": "0v5y92c328x3fn2z4hxiwv0qgjp85r4g28wp6b5cph8azfvzgnk9"
+ "commit": "eb9be0bff7c323c720198dcd539ee05fa2485cd3",
+ "sha256": "09xzxyk81rwpgc05g8w0nl36lax6x6z94hrnjivn72c7zdwq58i2"
},
"stable": {
"version": [
@@ -13704,8 +13733,8 @@
"axiom-environment",
"company"
],
- "commit": "7d72e6319b98b334f74b78f3d4151e92fb7dcbad",
- "sha256": "1hwcndb1x3i51l0kvzk4mj6sil8h10mxmazic9zvwjhia9qz9hz3"
+ "commit": "3266c5b2e4865337da86043b53a4e6609dbc8308",
+ "sha256": "11k53vvw5df66f54mh3zkghspmi7zsgls3mlkfvl19hz2z1pyhwq"
}
},
{
@@ -14116,30 +14145,30 @@
"repo": "jcs-elpa/company-fuzzy",
"unstable": {
"version": [
- 20211017,
- 1548
+ 20211104,
+ 1200
],
"deps": [
"company",
"ht",
"s"
],
- "commit": "80c84e3071e1aca9c058c4b5061b72fb9536a697",
- "sha256": "0bgaikvn0z1j2xh4g3q7rh655kjgfwnbv5v2kmk38kvwn4mgahz7"
+ "commit": "44ef04f5f21285d68bd419f4f153e192777d9991",
+ "sha256": "1gca3i7ylk28wx7wa722ismy6irya96k8qf1zjh851sn2m7bkfin"
},
"stable": {
"version": [
1,
- 2,
- 2
+ 3,
+ 0
],
"deps": [
"company",
"ht",
"s"
],
- "commit": "ea577f13d0a47b6efbe2974a5a347a87d27c0c42",
- "sha256": "1g6p5868qb2001ippdcnsscsm15d1fwl0iyilq7jk3ys68j30pr3"
+ "commit": "7067175ebf56c5110edf1475b03e2e242a00e66b",
+ "sha256": "1sfzj5qbpc1j1blg6rq5lmimgy1yfwyg7ixgp7psf53nq0cbq9jd"
}
},
{
@@ -14798,15 +14827,15 @@
"repo": "tumashu/company-posframe",
"unstable": {
"version": [
- 20210419,
- 607
+ 20211103,
+ 232
],
"deps": [
"company",
"posframe"
],
- "commit": "c7a820a35ff132aaec53c81e05afc829de39eb68",
- "sha256": "0fyc7c4r4jfa5y0x9lfcqlx0qazg1d4il5p0bdw4hdcpjd2h26ys"
+ "commit": "e104c0d0ee8db4a5fc852b3fc951e52989ee8755",
+ "sha256": "05q2v2faa7ydx242208wxir8fkkrr34n773fllkkp9m228hc5mv7"
},
"stable": {
"version": [
@@ -14837,8 +14866,8 @@
"company",
"prescient"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -14880,15 +14909,15 @@
"repo": "company-mode/company-quickhelp",
"unstable": {
"version": [
- 20210515,
- 2212
+ 20211115,
+ 1335
],
"deps": [
"company",
"pos-tip"
],
- "commit": "530b29380f0f95ae338cbe089693d786e6f53d86",
- "sha256": "0w2xj9k50j96x81l767ah1m17pcjsbfk91mndm4w25p30kd1g8j4"
+ "commit": "3ca2708b4e5190205aca01d65fe1b391963a53f9",
+ "sha256": "120kvdrzbxs7idrqwz8rz59ic3ymq1b586l0qi27y7bdy2pg6njw"
},
"stable": {
"version": [
@@ -15026,8 +15055,8 @@
"company",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -15092,8 +15121,8 @@
"company",
"solidity-mode"
],
- "commit": "9c77b390eab999e5e54dc5c1068f57201e6628bf",
- "sha256": "0i6kjvd82bq3djh4makf4czdbmg3sb5q74wbdfhdyikx6kkzfj0m"
+ "commit": "bac439dbd2097664df45e9fac0ce57e23462c14c",
+ "sha256": "1vs64gwm6zn47fl4nvaizkwh8zwnqh764yqcmggyz4awsxsxg6ym"
},
"stable": {
"version": [
@@ -15791,19 +15820,19 @@
"repo": "minad/consult",
"unstable": {
"version": [
- 20211024,
- 1830
+ 20211117,
+ 855
],
- "commit": "ae2761ead41a2e8bae011cee0f57830d6bf423b5",
- "sha256": "1ff582cpl3w61n3mv5s7cz4mjlzkza5cn83lllp232zd7bnw68h6"
+ "commit": "69bc425c59414ece0a49dfa8e3f2d9759a13748c",
+ "sha256": "066a3gf1hgzc4n7r06m1x3kyp98sabs8kf25dhlg9wgl2l6gccf0"
},
"stable": {
"version": [
0,
- 12
+ 13
],
- "commit": "ebb62563127a4b9442148372f897efb7baef61d2",
- "sha256": "1bzlqn7k5akhyl763q29853yh5s8rmk6y1ncmy3am940wfypxjic"
+ "commit": "c2fed383c9c555ed017200a22efad0a9734725b0",
+ "sha256": "0ik5j4i4vb9hz629cjwnzhimskpv0fc8wca37z4ak0q1d898ayph"
}
},
{
@@ -15947,16 +15976,16 @@
"repo": "gagbo/consult-lsp",
"unstable": {
"version": [
- 20210930,
- 1225
+ 20211104,
+ 1506
],
"deps": [
"consult",
"f",
"lsp-mode"
],
- "commit": "b9aa9617f174a304040ae75d35483fa8d4ade5d7",
- "sha256": "0px09bvi8x5b7h4w3mdffj1fnl7nk51xybpxz7n8v8i7v1w3547z"
+ "commit": "aaa9a31bc82259d743186c53d8b01f043c6fec13",
+ "sha256": "1d4l930gwfp2syxkm129lxbvrwcqv3rz2qzb3m18v6aklk0si2db"
},
"stable": {
"version": [
@@ -15980,15 +16009,15 @@
"url": "https://codeberg.org/jao/consult-notmuch.git",
"unstable": {
"version": [
- 20210909,
- 101
+ 20211114,
+ 557
],
"deps": [
"consult",
"notmuch"
],
- "commit": "015642e88a48b1e3b4791a5badd8dbdfe6a6037e",
- "sha256": "1nbyd21n3dfdikr2dv7bcb2rg2sar22dmirrlkd5bz0qniaqim4n"
+ "commit": "5e62b4da80c5361a656f459fc2fd3ec65d5d9bf1",
+ "sha256": "1krap35x6r3gfh0hk9vq7z471m21j2dyljaf5ppx85yhfanhpxp2"
},
"stable": {
"version": [
@@ -16030,14 +16059,25 @@
"url": "https://codeberg.org/jao/consult-recoll.git",
"unstable": {
"version": [
- 20210807,
- 1613
+ 20211113,
+ 1958
],
"deps": [
"consult"
],
- "commit": "fe7a09b99d1497a30e11a2f86b6415adde00788a",
- "sha256": "1bqmr686ncn46fbbq000mpbqrhf76sc9npbyg85053rhnwjdkk84"
+ "commit": "42dea1d40fedf7894e2515b4566a783b7b85486a",
+ "sha256": "0nzch4x58vgvmcjr6p622lkzms2gvjfdgpvi6bbj5qdzkln5q23a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "consult"
+ ],
+ "commit": "1b21fa157ba40fcfeecd0a10c5c82ecfb87aee53",
+ "sha256": "0bfvxzvyppkqfdj4cm5haqgkd72wrh5l7x8ldnpycapqyjpv9pip"
}
},
{
@@ -16048,15 +16088,15 @@
"url": "https://codeberg.org/jao/espotify",
"unstable": {
"version": [
- 20210620,
- 1953
+ 20211114,
+ 2258
],
"deps": [
"consult",
"espotify"
],
- "commit": "5bf63dacc5df8a74860e80dabd16afce68a24a36",
- "sha256": "1vxg86wv6f96bva0d1xxhisk525chwhdl4nq77xhriflq65mcmi3"
+ "commit": "5c1dcf0182135cda4191d4ba206fe2f265100293",
+ "sha256": "06wj2pixhjgqddl9g2wkv7cq9gz9yjb46cb1jrlbya3rdjyfb6h5"
}
},
{
@@ -16175,14 +16215,14 @@
"repo": "liuyinz/emacs-conventional-changelog",
"unstable": {
"version": [
- 20211019,
- 1205
+ 20211103,
+ 1242
],
"deps": [
"transient"
],
- "commit": "7087ef60c3301e23b284f5e578a9717b9bb8b740",
- "sha256": "0p1jlw550fvh0xhvr5b2z39vnbk6q6nbn6sgh1k97ar62pgwcgc3"
+ "commit": "9db9dcfdff2ff8cf6a88e938646cb26ce0f61774",
+ "sha256": "1qm6v88mz6bxz0yg2yw5xfiz5jjnz3i9vwaa3irnywzs6prw7pa4"
},
"stable": {
"version": [
@@ -16508,8 +16548,8 @@
"deps": [
"counsel"
],
- "commit": "3321bf78231e443cb98520dbb30a6c49e004c6a7",
- "sha256": "08xqga2qnn6y5zq7r2xd1mcg6zjzaiiaw2damp4djcjd2fsm4zl1"
+ "commit": "72b31889581f20f4037c0361f5259ff3633bc128",
+ "sha256": "0crnrp5gd055gpxj4qiiwlik8llqhs5dyixfa8r8mzaxanv6bdg9"
}
},
{
@@ -16540,15 +16580,15 @@
"repo": "hlissner/emacs-counsel-css",
"unstable": {
"version": [
- 20210310,
- 452
+ 20211115,
+ 1755
],
"deps": [
"cl-lib",
"counsel"
],
- "commit": "f7647b4195b9b4e97f1ee1acede6054ae38df630",
- "sha256": "06xvyf9cnyq9zlp7rkq0a0h85yk967icifhg1pfhsz17za97yg94"
+ "commit": "8e9c0515fc952452eee786d8ebb43d48ea86c9f8",
+ "sha256": "18wncb713slsynm3amqs8ibpzfab819nn6r6yzl6yxsliahi2xil"
},
"stable": {
"version": [
@@ -17035,16 +17075,16 @@
"repo": "AdamNiederer/cov",
"unstable": {
"version": [
- 20210330,
- 44
+ 20211026,
+ 308
],
"deps": [
"elquery",
"f",
"s"
],
- "commit": "62a4650f97eddebf6cd04b662a69b15ba72472c1",
- "sha256": "01l38yfgzh4apvj9ipl50b5shf6vnyqdciklpbajciynz118p19q"
+ "commit": "58cf3d5fd2d71084083a293b0fc7ce947aadaf26",
+ "sha256": "0lbsc5dz810gcvpapqa0x9b0wpd9fb1sb4qj32ypfbc3ywklzd38"
}
},
{
@@ -17616,20 +17656,20 @@
"repo": "emacs-csharp/csharp-mode",
"unstable": {
"version": [
- 20210826,
- 421
+ 20211115,
+ 2134
],
- "commit": "c0c7602368f7b3933584e7790394a4d509bd1c50",
- "sha256": "1nkaaggdh9bzisq4dx6mi2lbajymq9l6dp83gsphf94xcn3q5g2s"
+ "commit": "515b866704252fc862144d9ff677fba75488e445",
+ "sha256": "0xadchhbfikw2vac6kqkmdjjixhybxqqf99cpl089cga9sjc7i5p"
},
"stable": {
"version": [
1,
- 0,
- 2
+ 1,
+ 0
],
- "commit": "723a4ab2581b11f84d23f421faa06103864d2bc8",
- "sha256": "1gdr1y8q93xr5vlx6jj95js6rmmsspq2bn870igbaijwwsn0sf7g"
+ "commit": "515b866704252fc862144d9ff677fba75488e445",
+ "sha256": "0xadchhbfikw2vac6kqkmdjjixhybxqqf99cpl089cga9sjc7i5p"
}
},
{
@@ -18309,11 +18349,11 @@
"repo": "cython/cython",
"unstable": {
"version": [
- 20190111,
- 2150
+ 20211111,
+ 1407
],
- "commit": "1461e514c00056eef58c7c18262012b1510ba692",
- "sha256": "0835zi21kp4xlf21lyzwy64lns0p4pka49z30fpzfwdgbdcmmhmd"
+ "commit": "2b1e743b9c736ec41e92b197eb709db0427558b4",
+ "sha256": "0x6nbir7pk8w4265qywqxjdvrrkyvkp8z066z29zljwcry1wk1ml"
},
"stable": {
"version": [
@@ -18520,8 +18560,8 @@
"repo": "emacs-lsp/dap-mode",
"unstable": {
"version": [
- 20211020,
- 1757
+ 20211110,
+ 1129
],
"deps": [
"bui",
@@ -18533,8 +18573,8 @@
"posframe",
"s"
],
- "commit": "a18f29e3d1a3a945ec5dfc7dea98927ecb022c34",
- "sha256": "037xly2c3jd33a3gnkrfp7lammrgarl5kknp5zvqs35278xpsdng"
+ "commit": "c19da4d347114d19fd9cd77af3650bcec7d81b15",
+ "sha256": "1pmzrb9c8z3jhwfjygdlkarc9ssaldvqx4vi48j6yg8av99p5z03"
},
"stable": {
"version": [
@@ -18887,8 +18927,8 @@
20210928,
656
],
- "commit": "77eff49a054e08a474608237f0faae13acb4489b",
- "sha256": "00xqgjwihd1r625mba788l0270bd9is8g211rsln91wmfv7gnifk"
+ "commit": "a19868f2fb8f7fc4132b4e9bfac5cdd65f245181",
+ "sha256": "1gmcnj3ldhqy417wv2lqfh53pg8glfz28bgd26sx5nbw7w5lhd9r"
},
"stable": {
"version": [
@@ -19228,8 +19268,8 @@
"ccc",
"cdb"
],
- "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
- "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
+ "commit": "251df5b02c91311140d2375b019c1de836655fd0",
+ "sha256": "14cxh58rfc2dprb9grshfhwg0fggw469yk8l9dwhc4sy8bf9cd4v"
}
},
{
@@ -19271,16 +19311,16 @@
"repo": "Wilfred/deadgrep",
"unstable": {
"version": [
- 20210830,
- 656
+ 20211107,
+ 445
],
"deps": [
"dash",
"s",
"spinner"
],
- "commit": "4ec21e644ef482a913c64f068ec8d602eedac1c6",
- "sha256": "1ipjdwnf6c9qdwg4klkf6g06jj4lgap75ms5yq6a0gg2075d84jk"
+ "commit": "97663c41624526c4ceaf82fb6a0137ab2081affe",
+ "sha256": "1rkskf8byl5fnnlahvppawfjj7zc41sag4gwxdb2r3j77g5d5ahq"
},
"stable": {
"version": [
@@ -19477,11 +19517,11 @@
"repo": "ideasman42/emacs-default-font-presets",
"unstable": {
"version": [
- 20211007,
- 309
+ 20211104,
+ 52
],
- "commit": "1985fc92c62c0a1e660639f78518a42d055045fa",
- "sha256": "12ink0pj2mpyf0g6q0smypirw9rvjlg0rr7zj7xw8k6jfhlhlf0l"
+ "commit": "dbb6c6c5350ba76b12bd69a584b0634a8262a76f",
+ "sha256": "1yjc4g50r0jghf5a0qipfzys6krgz5vqizm3hlq4lh29hvkazc6i"
}
},
{
@@ -19916,8 +19956,8 @@
20211002,
1657
],
- "commit": "206d06512cd9934644fa9ea3e17b5e78d01b7e64",
- "sha256": "1d51lnwvy53zhq99m6bdm4sp2ykhnwcijc8gpxjqy3c8vnzdbjyk"
+ "commit": "e1b4b0258289d442e349f67f175f05be6f4347d4",
+ "sha256": "0yqmaa12sdci6wy95fany03rcqsm9avrjldzrypa9xv5a2ayi48f"
}
},
{
@@ -20145,14 +20185,14 @@
"repo": "dgutov/diff-hl",
"unstable": {
"version": [
- 20210928,
- 139
+ 20211106,
+ 2353
],
"deps": [
"cl-lib"
],
- "commit": "6b7ca8c310ec1c1a83990c8d1c013c68f61d9d51",
- "sha256": "1iigna8p76v57hahw3qcsnkd86gqspfb738c74vj5chb1wgb48dw"
+ "commit": "6fa3af0843093f44e028584a93eef091ec7e79d2",
+ "sha256": "0fg7mdcjjnibqi8f7zj2pig35kcq4gqfi4jvg4hvw9fcncdv0yln"
},
"stable": {
"version": [
@@ -20347,6 +20387,37 @@
"sha256": "072v1800gjv566fqjxp8dvzkilwhbvl7lc5fqc0mr4xw8lpldkx9"
}
},
+ {
+ "ename": "dilbert",
+ "commit": "7fb785715c05adaa7551b27f4eaca2b704bf1a86",
+ "sha256": "1bsz4qmjy9hvpgrxpbz94v2yv0xvh1v8fik1pldv72bl4jkvifvl",
+ "fetcher": "github",
+ "repo": "DaniruKun/dilbert-el",
+ "unstable": {
+ "version": [
+ 20211114,
+ 1009
+ ],
+ "deps": [
+ "dash",
+ "enlive"
+ ],
+ "commit": "bd8c11ccc512ca60906a8b0e4bca2081ba4aab7b",
+ "sha256": "110ynzqsnkv6sdnbk475h6qyrvj4w1dk577hpr1p7pk7bif4waxd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "enlive"
+ ],
+ "commit": "e660def51721f80b7d21eeab60e9a719be5106f7",
+ "sha256": "0gim8imb9cw16sr76hydjp1rjw2cczslnh4h2gvq3jsmpk2hdvma"
+ }
+ },
{
"ename": "dim",
"commit": "3a740ab40cab3a1890f56df808f41a2d541aa77c",
@@ -21186,20 +21257,20 @@
"repo": "crocket/dired-single",
"unstable": {
"version": [
- 20211017,
- 1240
+ 20211101,
+ 2319
],
- "commit": "f760aa94ea3f87845dd2325287d05447322a60bc",
- "sha256": "1l7gh1pi24f6dllzpw72r5hd0iafgrhp4hzn29s35054xhhkkvqp"
+ "commit": "b254f9b7bfc96a5eab5760a56811f2872d2c590a",
+ "sha256": "1w243yq5m6zd6yvcsnvxf8162fd6i0l5izqj11mji7jzyqxl1ih3"
},
"stable": {
"version": [
0,
- 2,
+ 3,
0
],
- "commit": "27120d6a079541e994105e3f969032d3ae7edaa4",
- "sha256": "14q8lp1x1b78ra9mk90n6dyrm1j9ny5pr7valgpkg8agqyqn7xmn"
+ "commit": "b254f9b7bfc96a5eab5760a56811f2872d2c590a",
+ "sha256": "1w243yq5m6zd6yvcsnvxf8162fd6i0l5izqj11mji7jzyqxl1ih3"
}
},
{
@@ -21791,14 +21862,14 @@
"repo": "unhammer/dix",
"unstable": {
"version": [
- 20210312,
- 1850
+ 20211117,
+ 954
],
"deps": [
"cl-lib"
],
- "commit": "17f33f9a8bb50156261e10c045d54eb866ea84fa",
- "sha256": "1aajxj4xvi8jpskfhh52n6388w1skj1y9aq2xdvwj7cizy57lqn2"
+ "commit": "9ad8b231812af17c2f7655057a8e0dece96a7d7f",
+ "sha256": "1l3js4rqwqjlk5b13fsr3nk6n3yzlnscya4jsc1j8dr19i5nbxcf"
},
"stable": {
"version": [
@@ -21828,8 +21899,8 @@
"dix",
"evil"
],
- "commit": "17f33f9a8bb50156261e10c045d54eb866ea84fa",
- "sha256": "1aajxj4xvi8jpskfhh52n6388w1skj1y9aq2xdvwj7cizy57lqn2"
+ "commit": "9ad8b231812af17c2f7655057a8e0dece96a7d7f",
+ "sha256": "1l3js4rqwqjlk5b13fsr3nk6n3yzlnscya4jsc1j8dr19i5nbxcf"
},
"stable": {
"version": [
@@ -22154,8 +22225,8 @@
"repo": "Silex/docker.el",
"unstable": {
"version": [
- 20211017,
- 1058
+ 20211105,
+ 138
],
"deps": [
"dash",
@@ -22165,8 +22236,8 @@
"tablist",
"transient"
],
- "commit": "3382dbb8bd8f4f80291faeae6abbb48e673fcc04",
- "sha256": "0iggpym4p5x600d3afqza125s9sifjjy9n6cc6kjw8kdr7h4m827"
+ "commit": "8d64cf4f84d7da5f839a8248fdddfb635a63f803",
+ "sha256": "1ivyvgh24nadhiv9ffqxckwln8vc9c2l0bvrvrd53yf0w8i345yz"
},
"stable": {
"version": [
@@ -22527,30 +22598,30 @@
"repo": "seagle0128/doom-modeline",
"unstable": {
"version": [
- 20211024,
- 1720
+ 20211111,
+ 834
],
"deps": [
"all-the-icons",
"dash",
"shrink-path"
],
- "commit": "25e81e77cd7481de4c666d4070ae038e4970c767",
- "sha256": "1xrhfrnpzj3c3vrqzw8wsrbpgnvl849ad4fzpqid1vvzl6xzq2ww"
+ "commit": "36fed6d1a1614f72d425073d7c9e1529f622fe7a",
+ "sha256": "0g56jvpsz8mdjpg7rifn89p7k2iw4rl1rvj8xv5323x9hl6772dx"
},
"stable": {
"version": [
3,
2,
- 0
+ 1
],
"deps": [
"all-the-icons",
"dash",
"shrink-path"
],
- "commit": "d514f43679513819b37333a64a44523f239150b6",
- "sha256": "1gfkaxga919a1a19dhpbby95l8dixb1278g5d7iadjf2i3j0p3l0"
+ "commit": "b59802efba1215bb861621deba0030cfda2796ed",
+ "sha256": "1ji15n2rdp7bjg5iq9im6c4m12k24kqp85i3n1m9npihrb4arh54"
}
},
{
@@ -22580,14 +22651,14 @@
"repo": "hlissner/emacs-doom-themes",
"unstable": {
"version": [
- 20211011,
- 1314
+ 20211114,
+ 1641
],
"deps": [
"cl-lib"
],
- "commit": "3e6f5d9ce129ac6fc0f466eb6f5518593625578f",
- "sha256": "1ar9nb67hppqhbdl6l6mv1y6zl48mcdl91bmsc49bjpzp9a38y5b"
+ "commit": "96edc0ceb864b7d72218e58c8e9272cd96e5712c",
+ "sha256": "0qkpwlg5h3ysmf6aywz49a9gkl4xszxzdkcfpqc3n0i2bvcmf6vk"
},
"stable": {
"version": [
@@ -22831,11 +22902,11 @@
"repo": "dracula/emacs",
"unstable": {
"version": [
- 20210922,
- 1038
+ 20211108,
+ 749
],
- "commit": "943faeda66931dd275fe83d858945bd07abacc5a",
- "sha256": "01k8i4g0vv7m2jgjmj3y2n1821965r4m1j3fra5v30pnljjl7zjb"
+ "commit": "8c38b293af039041e8914894d86122403eec5bcf",
+ "sha256": "15h2zkrhlhhc7qkyydpbm2xdgbx3vwy1jj78rq3vycwb37v52kci"
},
"stable": {
"version": [
@@ -23243,8 +23314,8 @@
20210909,
1010
],
- "commit": "530621843764e7a5a4630144102374e8d16b2ff6",
- "sha256": "1d9g6g682f4hgybsq29qmxihg8ynkzchvgvfl8ss0rqxs8r7j4bj"
+ "commit": "05653b996b18032a4e80ab71827e7a15601a69d6",
+ "sha256": "1l2803hd9gr5mjzpfz21fgwcyy55zj0rdafwdmy1hcdy9g1d3cg8"
},
"stable": {
"version": [
@@ -23480,8 +23551,8 @@
20210924,
2026
],
- "commit": "76142cf100d9e611024638a761e62bd82af156cd",
- "sha256": "1fsydk7pld2xpmmp1jnm8b3y7zdynibwicgmsfxpk11915y4fh6r"
+ "commit": "dc9013117bdcdc1b12feebcc58eaf129a6ad3a73",
+ "sha256": "0z5r0wybpm74hlcbisavn90i31vh3jsalhk0frihfclfgbqd24d9"
},
"stable": {
"version": [
@@ -24009,26 +24080,25 @@
"repo": "joostkremers/ebib",
"unstable": {
"version": [
- 20211021,
- 2257
+ 20211112,
+ 2206
],
"deps": [
"parsebib"
],
- "commit": "c11ffdff2377620a4c0567ac6272dbc2b29672d9",
- "sha256": "080r21khhxk9823vpbmig5q2n2ch3pn2bc54470bc2pzlp7fbbpd"
+ "commit": "b2f9c0a354044449a49501cc405cdb090e19dda0",
+ "sha256": "0f56rmpwj71lgqyb5gx9mnb2gz9s7bnmf7fyiwc0f541jrrgcfcl"
},
"stable": {
"version": [
2,
- 32,
- 2
+ 33
],
"deps": [
"parsebib"
],
- "commit": "831ffcca35601e169c0778035688c5d17d138b58",
- "sha256": "04kw0akp35r2ibrcav4kaf34d1xs8pckjiygv7h1nqpv6dmrgfq7"
+ "commit": "84c7234c4901207fa0520af96922c2b8e407ff4c",
+ "sha256": "18gvmymkpzws8s4zjcm1kijyr55dgfcq201z3w1jzhkhcs01bfsc"
}
},
{
@@ -24141,7 +24211,7 @@
"version": [
0,
6,
- 17
+ 18
],
"deps": [
"ansi",
@@ -24151,8 +24221,8 @@
"f",
"s"
],
- "commit": "3a77ba9f1064c2bca47b401974c009e65727c46e",
- "sha256": "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"
+ "commit": "d173cdf487bc2c62305e2232db96290bc021950f",
+ "sha256": "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"
}
},
{
@@ -24788,14 +24858,11 @@
"repo": "ROCKTAKEY/egalgo",
"unstable": {
"version": [
- 20190706,
- 1611
+ 20211105,
+ 1657
],
- "deps": [
- "dash"
- ],
- "commit": "e683b16ed4265ddb46efcc8cbf9503301cc39e22",
- "sha256": "12nsbqrk7clr642kmbaa9xqgx7j2r6as6grx5qmghnp7kjfy1d7l"
+ "commit": "a56a86591351d53ca2add7c651757bfb0064fb22",
+ "sha256": "1xcd1kwrdclncln1fgg3ikdja8j96jfp0a9r9r7x2h05npb3881q"
},
"stable": {
"version": [
@@ -24881,8 +24948,8 @@
"repo": "joaotavora/eglot",
"unstable": {
"version": [
- 20211009,
- 1931
+ 20211116,
+ 823
],
"deps": [
"eldoc",
@@ -24891,8 +24958,8 @@
"project",
"xref"
],
- "commit": "9665359bb6bfb6a96b0c3b307d4abea9fcbff7a5",
- "sha256": "154wf1ps7s00vpmdxgj2pw36gcda1w82f5yw0zhl9c7gi05g3xn3"
+ "commit": "55c13a91378cdd7822c99bbbf340ea76b1f0bf38",
+ "sha256": "01861nbwkgx88ndhqcb2dcy9mzsk7za61ngbw02mxlg3ninl15ic"
},
"stable": {
"version": [
@@ -24926,8 +24993,8 @@
"fsharp-mode",
"jsonrpc"
],
- "commit": "3d3b977b0fc36dbde0e2a66adf6f93b829e4fce4",
- "sha256": "07nn95a2mv2f8llhq9xaxiy5lr2b6j5mjy5bgq2c7idkhrkdqdnp"
+ "commit": "0ba09a8124cee35cf81f55b4db9144efeb00a92f",
+ "sha256": "1y11q6zbmdfwswgy205f0iqsd5c4075zsf135vsnc7bpmmkpgcvw"
},
"stable": {
"version": [
@@ -25003,11 +25070,11 @@
"url": "https://forge.chapril.org/hjuvi/eide.git",
"unstable": {
"version": [
- 20211023,
- 2001
+ 20211027,
+ 617
],
- "commit": "83ed534e78f5b9f4b32c0c8b3d636174afbdd5dd",
- "sha256": "1i0prbvzz2m0596gxws6fj8wf7nrwqpnhcxqg0542ij0mk9j81xm"
+ "commit": "5bb04501a7f5bb3f5be33b8b96742f1ac9839a8d",
+ "sha256": "0w3xc2yhdrhcb5fjy1h877y14k1iidcqc548qnxjyzal8l0z5nw1"
},
"stable": {
"version": [
@@ -25042,8 +25109,8 @@
"repo": "millejoh/emacs-ipython-notebook",
"unstable": {
"version": [
- 20211012,
- 347
+ 20211107,
+ 1724
],
"deps": [
"anaphora",
@@ -25054,8 +25121,8 @@
"websocket",
"with-editor"
],
- "commit": "e354ea77c29e8c20b6b1a9ee00d86e6a9512bc0d",
- "sha256": "1ny4gjawwsq7gx1ih7f37p24pyyjv9jbp702v1sl6wfnk6r7ll9c"
+ "commit": "1e42a2b26c2b113884170a94229c2743978e2dec",
+ "sha256": "0fvsbhv65z6vjw41s4yrk2j71cm7rw9yljlizrv55gazrpd5g6i8"
},
"stable": {
"version": [
@@ -25203,8 +25270,8 @@
20210613,
1418
],
- "commit": "b5a5a405d04f61ec9c5fcb19357a50a4b9e36a25",
- "sha256": "1w6ps78saxdvx64a2y1vvzn11mvb6bw9657zfin0yibh2s91hqrk"
+ "commit": "960f3fb962c35d3196bab20b2a3f6d6228119277",
+ "sha256": "1d1lkcnjjdca73frn611gz9rck73mn2kxq207lh2ykww3wkaa0pa"
},
"stable": {
"version": [
@@ -25553,20 +25620,19 @@
"repo": "doublep/eldev",
"unstable": {
"version": [
- 20211024,
- 1829
+ 20211113,
+ 1804
],
- "commit": "f42b01907ff9f40bcc2cfe04808ad9477314f83c",
- "sha256": "1rsld1hi19vx7r60i8rr2ih1bvsq5bck0fk5jr8yfxa4afgn0xlv"
+ "commit": "70aa39c6c6ed696b7f1505c1c9bf4b2556179a27",
+ "sha256": "01y3jyjisxngaj0wyib5s37839m7q4azkchaa381mwx0l5nv5k5d"
},
"stable": {
"version": [
0,
- 9,
- 3
+ 10
],
- "commit": "95fedcc075afba7306341e55122b8aa6108d412e",
- "sha256": "0qmyx74hikkirv31x65gybr9n7ignxlyx61xkz5qmjk8pgdmkn3r"
+ "commit": "012f5ae33166987b4a541b0df2d39e3770ade228",
+ "sha256": "1y1gc37vn8k1yhp6b069sg8hdh1bn22icdqn4b28c2k5iiw9g7gi"
}
},
{
@@ -25688,11 +25754,11 @@
"repo": "it-is-wednesday/eldoc-toml",
"unstable": {
"version": [
- 20211024,
- 2247
+ 20211026,
+ 1122
],
- "commit": "60f1de70942e163034ef093c61f50f29820c3c04",
- "sha256": "1qkcin1b6b41m69gmhj5q4g2lnzfh2w237f87s5zfpkid0mzw7k9"
+ "commit": "61106be3c3f3a5b293c3f285eec8c6f400142b6d",
+ "sha256": "079vxv575v4qhdc05jn0ba17f8451nqmdpvh6x4wbg5vdchrqvyp"
}
},
{
@@ -25733,14 +25799,14 @@
"repo": "davidshepherd7/electric-operator",
"unstable": {
"version": [
- 20210906,
- 1235
+ 20211114,
+ 1153
],
"deps": [
"dash"
],
- "commit": "14def81d88bf4344a335e68007324e3f3ef5c435",
- "sha256": "1p4kpxq8fvdcs5za79c4pzw1g8108kyfl9rcybs0g75fjxk1f2jb"
+ "commit": "1c51e88d5719e7b0dd022a4704c46b24e0c91348",
+ "sha256": "1zzy3y5vkdlb7wb3b4fgvm61zn3dj9n0ldi3153qvrgwn6w8m648"
},
"stable": {
"version": [
@@ -25998,8 +26064,8 @@
"cl-lib",
"elfeed"
],
- "commit": "5e17d4280f5f8019c3f8962a710c9b3e633f41ff",
- "sha256": "0kv6svwg1h0wcj7z89xs20a9wns7v67af9m9rir3m8f47iyy70gr"
+ "commit": "c88bb246a40c2f8ec2cb36bc16690d1ed43f8b14",
+ "sha256": "0aq1rp46dr2hdkzm8aapb1xlcbdpa0nbrgb8b5avkihmyx7nkwkb"
},
"stable": {
"version": [
@@ -26376,8 +26442,8 @@
20211013,
1408
],
- "commit": "907ef434a0ce0f94dbd0c77f09bdfcdc779bca73",
- "sha256": "0sri7m0n0wafc9dyffi5myvv2vawkfwx6lgmfrj7kikbds0l5s4c"
+ "commit": "7373e91e859c3ddc66457723d531cfab821160a3",
+ "sha256": "0g1krxgm3x8mj959yin1k8khqhgdr70cymvn78kb0w286079xkmn"
},
"stable": {
"version": [
@@ -26880,8 +26946,8 @@
"repo": "emacs-elsa/Elsa",
"unstable": {
"version": [
- 20201011,
- 1950
+ 20211101,
+ 1023
],
"deps": [
"cl-lib",
@@ -26889,8 +26955,8 @@
"f",
"trinary"
],
- "commit": "ac0ab88abca1215cac60f8a986dadf3011b444bb",
- "sha256": "0g712vmiabia8aqvdw15i4416dgvy73flsijb6x8mq6bbxw6mmrc"
+ "commit": "22bb5bd15e3f4fc2a9f10b998626fec18fd3a1a0",
+ "sha256": "1cccxhni2xk5zc0rf807himgdh8aj0m247q0y1xngc9amjms9hqj"
}
},
{
@@ -27148,8 +27214,8 @@
"deps": [
"cl-lib"
],
- "commit": "da88fa2d04e37397c519e8b1181163f06a350e2f",
- "sha256": "02g42xccwbhgq0wf4v2sd3khyvvsvigixxjb2rdqw70h4j1k8mya"
+ "commit": "ed03b9396da9ef16e498a2d33a51ec5596021b0e",
+ "sha256": "003pfp9mksl6w446c5njwi6kmlvm2m7pncilj075r9zdpra4a30z"
}
},
{
@@ -27473,11 +27539,11 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20211022,
- 4
+ 20211116,
+ 2111
],
- "commit": "560af655922582f3f20a46fb1969915ee34028a4",
- "sha256": "0nzygmj6j7f3fw2acifb25lcxswx704fgxlsvl6ya1z6kkamfcx4"
+ "commit": "edfd0a842a75ad25115f95f56b0c8a9351d3e248",
+ "sha256": "1mq84aiak2fwxbxacf9wzk223dri6z918vqdgs3vy0amvn1ys2ji"
},
"stable": {
"version": [
@@ -27496,15 +27562,15 @@
"repo": "oantolin/embark",
"unstable": {
"version": [
- 20211012,
- 1921
+ 20211116,
+ 2111
],
"deps": [
"consult",
"embark"
],
- "commit": "560af655922582f3f20a46fb1969915ee34028a4",
- "sha256": "0nzygmj6j7f3fw2acifb25lcxswx704fgxlsvl6ya1z6kkamfcx4"
+ "commit": "edfd0a842a75ad25115f95f56b0c8a9351d3e248",
+ "sha256": "1mq84aiak2fwxbxacf9wzk223dri6z918vqdgs3vy0amvn1ys2ji"
},
"stable": {
"version": [
@@ -27671,29 +27737,29 @@
"url": "https://git.savannah.gnu.org/git/emms.git",
"unstable": {
"version": [
- 20211019,
- 2004
+ 20211101,
+ 1746
],
"deps": [
"cl-lib",
"nadvice",
"seq"
],
- "commit": "0657a1facdf39464a0049e2abaec850da5057854",
- "sha256": "0cfacz95430xq3zsk7dz1463yc7xk2gqj5byj3537jp4vyhr947g"
+ "commit": "777c904c9d6c8dfff3ed21c5e4a24a6432f8ee52",
+ "sha256": "0kg312x6ka4nxpbwsfyhg8n4a2yqi0wcfxgbj17sfcs9d3ssijs8"
},
"stable": {
"version": [
7,
- 7
+ 8
],
"deps": [
"cl-lib",
"nadvice",
"seq"
],
- "commit": "bc0d2ec1ba99409421d3f75aae315e10b5014b31",
- "sha256": "13jwf5dxhj1ch2l4klxjy1h1by70lhx99bsjdx23pvr6di0srnj9"
+ "commit": "4529ea69dd86c5e88d7fb7d568a5258b20988042",
+ "sha256": "1hyxcpv020dhm15fvdq2jgdqzsn2ara8156dpz4c93g8kj614crx"
}
},
{
@@ -28428,8 +28494,8 @@
"deps": [
"closql"
],
- "commit": "d8a26b55c2e2dc3edb0e8da7ea6ea4f9024564d5",
- "sha256": "1fz2k04iaz6r6jp4jw81gszqxz11x7v3nvm690scbgyim5big66s"
+ "commit": "8fa633c278241df577200c6c94102a0fa07bf8a5",
+ "sha256": "0h3f3xa5chm3vcahk97fx87l468d33myvpyd9blq26a7js568y7q"
},
"stable": {
"version": [
@@ -29022,14 +29088,14 @@
"repo": "ergoemacs/ergoemacs-mode",
"unstable": {
"version": [
- 20211022,
- 2302
+ 20211105,
+ 1531
],
"deps": [
"cl-lib"
],
- "commit": "5692fc1f1e8d7f81706bf9d9df9ce371deb9486b",
- "sha256": "0ac3i547r8kg9hb2xb0khmgnsvnz79lag4mk5ia608zhiyfzpqs6"
+ "commit": "df8d4253c44aee607308826093222188c4732099",
+ "sha256": "1rss0k7yvgbi326x2zjhbx9a5m80a58w1vj86c9ykrd0n4wj2nk0"
},
"stable": {
"version": [
@@ -29076,8 +29142,8 @@
20200914,
644
],
- "commit": "bea11a04df5f82b2b8782bcad5bf2af2a6b88b65",
- "sha256": "043pl1cdyy8yfmw50kqwf7xn0alcm98zzms962v7jdgbhbq07882"
+ "commit": "6cb77e1a216098d6a4e273f6750dbf4445953272",
+ "sha256": "1rj04f9q7fn88ifznqqi3p7anv0m827mz2w2bwb4s09kdn03nf6p"
},
"stable": {
"version": [
@@ -29097,20 +29163,20 @@
"repo": "erlang/otp",
"unstable": {
"version": [
- 20210315,
- 1640
+ 20211112,
+ 1232
],
- "commit": "1d768922b984287892afb1d950ec83a3031c5f7d",
- "sha256": "039v8iqx3pyvrc66lmvvdpf8w2s975hm4s1w6j0bm6h5ca9aqr0q"
+ "commit": "abe8285f0b4c594d610f72df6890f6851b89f248",
+ "sha256": "1fw0chd6qmv1m06762l3lhbmd23l34g0dyvri7ql3bam0z9jjakq"
},
"stable": {
"version": [
24,
1,
- 2
+ 5
],
- "commit": "0706178dea1c62d8d63c33c86bbf473dcaef89d5",
- "sha256": "0kkrng9822vkgw8l7vqglrrmhpq9pqrm7x8786s1bjl31bxd8i9z"
+ "commit": "9e23eca89170fcdf22441ed65f05ef891096f318",
+ "sha256": "1gd5nac4d56wp5qqkaicdcjf3n63wbbqg4m08s26gxfbjqkfh8ri"
}
},
{
@@ -29538,25 +29604,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"
}
},
{
@@ -29624,6 +29690,25 @@
"sha256": "02i00an9wa8ns66xq900la68m7pd4hwv95g83cvf22bypivx7p2y"
}
},
+ {
+ "ename": "eshell-info-banner",
+ "commit": "d602d153819e37a155ca9c4edf0271f478bd4200",
+ "sha256": "11xvlqxnxc0z5968mnmgqmpg3jn9l7x24w1qmwg9pkvr72ynh7vd",
+ "fetcher": "github",
+ "repo": "Phundrak/eshell-info-banner.el",
+ "unstable": {
+ "version": [
+ 20211115,
+ 914
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "312f1e3da3f42a82b99228491427a429ee379648",
+ "sha256": "07xwph4mnmyd80apn6r1m8alxh2vy1d0y1jacb0ghqjbs01qg47q"
+ }
+ },
{
"ename": "eshell-outline",
"commit": "950b9323c19b145bbf07a9a8f780880a2593831c",
@@ -29750,8 +29835,8 @@
"deps": [
"vterm"
],
- "commit": "a33073e9e8a56632c76cdd227574107185ae2cf7",
- "sha256": "18m04xzrqlhrbpb3w3jqwrihvq1i9vx9301sn9h9qrxby7m3pxcp"
+ "commit": "f2212dbfa51aa4b67efda55304b2b3811e8e0625",
+ "sha256": "02q1iyh77m7vg9cip7c9wzpiggnsbhhicfs5rqzpc5d7n70gbk2p"
}
},
{
@@ -29864,11 +29949,11 @@
"url": "https://codeberg.org/jao/espotify",
"unstable": {
"version": [
- 20210405,
- 1808
+ 20211114,
+ 2251
],
- "commit": "5bf63dacc5df8a74860e80dabd16afce68a24a36",
- "sha256": "1vxg86wv6f96bva0d1xxhisk525chwhdl4nq77xhriflq65mcmi3"
+ "commit": "5c1dcf0182135cda4191d4ba206fe2f265100293",
+ "sha256": "06wj2pixhjgqddl9g2wkv7cq9gz9yjb46cb1jrlbya3rdjyfb6h5"
}
},
{
@@ -29980,11 +30065,11 @@
"repo": "emacs-ess/ESS",
"unstable": {
"version": [
- 20211011,
- 2049
+ 20211113,
+ 1429
],
- "commit": "569dca1f4ff939a93c7be97c34577666d9af8b3a",
- "sha256": "086nl0486l28n1zmw9jxqh63d7bqanzlqwh9nm4a4aw1fyjy7pda"
+ "commit": "aaa82f24c9f44fd7e39b7d918a7819eefbbb40a7",
+ "sha256": "0hxa8mm2i8xr98yw9b93m8fv3xmfb3kmydgkzai0svpi6wwn9kw2"
},
"stable": {
"version": [
@@ -30148,27 +30233,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"
}
},
{
@@ -30575,15 +30660,15 @@
"repo": "emacs-evil/evil",
"unstable": {
"version": [
- 20211021,
- 2104
+ 20211116,
+ 2102
],
"deps": [
"cl-lib",
"goto-chg"
],
- "commit": "17c635f6e1f538bf4b2c3c276ddd9d4d165a52fb",
- "sha256": "1yd7kmhk0v235h4nlynfs29ljx7ca6i7s7h8wj5krk5b8sv51x27"
+ "commit": "c28e42126c4ae349e2d77c80b38feb68bc1b5b78",
+ "sha256": "00z3gmcn12nb32nczplxb68kfmmdrv0fg6f376ip6iwygjgn4cqc"
},
"stable": {
"version": [
@@ -30777,15 +30862,15 @@
"repo": "emacs-evil/evil-collection",
"unstable": {
"version": [
- 20211024,
- 1417
+ 20211114,
+ 702
],
"deps": [
"annalist",
"evil"
],
- "commit": "1d296af2ec45e98b93048148d5468b05385b1ff6",
- "sha256": "1c2xv3486dcrlv2vnl901f9vs3d3krzxpmfnw2h3598fdkv1z60f"
+ "commit": "652d74acfb5789eacef36660c4ffc68905c8d741",
+ "sha256": "0pqm6pp6h8v5jy36cgm70kkjjgj38xdyq0irhnyqmaf5hdvrbvkh"
},
"stable": {
"version": [
@@ -31444,16 +31529,16 @@
"repo": "hlissner/evil-multiedit",
"unstable": {
"version": [
- 20211023,
- 1906
+ 20211114,
+ 1644
],
"deps": [
"cl-lib",
"evil",
"iedit"
],
- "commit": "50179bfb269b35d248a77105f7feb7bbc87fd302",
- "sha256": "113q1j90rdnqiwca1d2jkmksh8bm1cf8klj6pm2gimida8s9vfmb"
+ "commit": "e17078ff801c3cfc125bbe432a5fa24bd2958b67",
+ "sha256": "0x4fdjfvpx2nbca7jr1y0gjipg4rwf6cjmzf91j46vzslcvhqv4n"
},
"stable": {
"version": [
@@ -31575,14 +31660,14 @@
"repo": "Somelauw/evil-org-mode",
"unstable": {
"version": [
- 20201222,
- 2023
+ 20211112,
+ 108
],
"deps": [
"evil"
],
- "commit": "80ef38fb378541937f6ddfe836809e76eda1e355",
- "sha256": "19028laqnsl0h5nii7ykfh39srg94zhydhj1rcv52fs9nlg6c6dq"
+ "commit": "c3ec94bc2fb79127826ea85509247f082bc394aa",
+ "sha256": "15fvw5zq97q18nr5vshkf4qp9di0sb8fklyhgwmhyh254zfdlghf"
},
"stable": {
"version": [
@@ -31912,15 +31997,15 @@
"repo": "hlissner/evil-snipe",
"unstable": {
"version": [
- 20210713,
- 1456
+ 20211114,
+ 1647
],
"deps": [
"cl-lib",
"evil"
],
- "commit": "1a28d718c835a21591a170af78a03a366cd60c0d",
- "sha256": "1dm73xmlhznh9yc22ifb238yyad09011nryc91n6glla347896p0"
+ "commit": "a79177df406a79b4ffa25743c752f21363bba1cc",
+ "sha256": "0pz2s0g0859zhyryvn1glngw1aq7a04x9rydl1l89h50hf5avmvj"
},
"stable": {
"version": [
@@ -32012,8 +32097,8 @@
"deps": [
"evil"
],
- "commit": "3bd73794ee5a760118042584ef74e2b6fb2a1e06",
- "sha256": "125yxpd2cmhwvcb0p9z5dc6ydk4w2a9vblkn9hayh6myj9jwjy9f"
+ "commit": "282a975bda83310d20a2c536ac3cf95d2bf188a5",
+ "sha256": "0f9y5dwjkjv768s63bypp6nb51kklhkq58ixgzfs59r423y8l1nl"
},
"stable": {
"version": [
@@ -32103,8 +32188,8 @@
"deps": [
"evil"
],
- "commit": "17c635f6e1f538bf4b2c3c276ddd9d4d165a52fb",
- "sha256": "1yd7kmhk0v235h4nlynfs29ljx7ca6i7s7h8wj5krk5b8sv51x27"
+ "commit": "c28e42126c4ae349e2d77c80b38feb68bc1b5b78",
+ "sha256": "00z3gmcn12nb32nczplxb68kfmmdrv0fg6f376ip6iwygjgn4cqc"
},
"stable": {
"version": [
@@ -32258,14 +32343,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"
}
},
{
@@ -32295,15 +32391,15 @@
"repo": "meain/evil-textobj-tree-sitter",
"unstable": {
"version": [
- 20211022,
- 1336
+ 20211105,
+ 1632
],
"deps": [
"evil",
"tree-sitter"
],
- "commit": "a573121b2a053b8a3682a2e1ab86bee0337da2e7",
- "sha256": "000dkma3cj38als7pyv4c4338bs1l6m4rfdmh6afi09r9m78vnan"
+ "commit": "b35565ab6c8e380227048256885bb7aa7e7fd72c",
+ "sha256": "17rbxqvrq9c8j34mycbjkzrd6cjpamldj6h8k1hyzm2ld97w6gqm"
}
},
{
@@ -32324,6 +32420,28 @@
"sha256": "0dr4dc9gbavbfmij399ac09mb109fwpf1xkfk8g4xzmphh4chcnz"
}
},
+ {
+ "ename": "evil-tree-edit",
+ "commit": "43726f8e4c4f7f673ca892ec17329471dba77b3e",
+ "sha256": "126jkiy9jganamn9xv2d357mxipgbz9skpvygwb7lkhnvkz263dg",
+ "fetcher": "github",
+ "repo": "ethan-leba/tree-edit",
+ "unstable": {
+ "version": [
+ 20211114,
+ 2308
+ ],
+ "deps": [
+ "avy",
+ "evil",
+ "s",
+ "tree-edit",
+ "tree-sitter"
+ ],
+ "commit": "6fd445dbeb158d05d785965077cc594aeeb73a61",
+ "sha256": "0h1zjdqxynxxlqdc9yxhmkjwarx4vn9anasv9i68fcmmnq7c0aw9"
+ }
+ },
{
"ename": "evil-tutor",
"commit": "4b7bfffdc34e181893b8cf4d1cc091f6c3f91126",
@@ -32724,8 +32842,8 @@
"deps": [
"cl-lib"
],
- "commit": "0a07f5489c66f76249e6207362614b595b80c230",
- "sha256": "081p104ma9b7nzhs42y6zn8r8vz5dp7kz6vp79xdyl42w9dqinww"
+ "commit": "3a8d97c096c2c5714b667130fd8a80d5622ee067",
+ "sha256": "1fdfg9zblk82546fhmha84lz45g4nrgmqqq39jsr601axalfkl7q"
},
"stable": {
"version": [
@@ -32791,10 +32909,10 @@
},
{
"ename": "exotica-theme",
- "commit": "744e4cf9105c9eaafe2b49ca1f8d7d6b9c5be4a6",
- "sha256": "0gkidf8jcv3j3cqhjkjcxg6hv0m8kspycffn9dvjxqn912n6ljks",
+ "commit": "c3543d83fa2e0ed2b8b313f3c9e7a2c6f42b5085",
+ "sha256": "0jf18siqbwilx9v0mlm6v5k03c1v9jm4xdlk183bnrad09rdw6qh",
"fetcher": "github",
- "repo": "zenobharat/exotica-theme",
+ "repo": "zenobht/exotica-theme",
"unstable": {
"version": [
20180212,
@@ -33545,14 +33663,14 @@
"repo": "condy0919/fanyi.el",
"unstable": {
"version": [
- 20211020,
- 653
+ 20211030,
+ 1408
],
"deps": [
"s"
],
- "commit": "b76b60564929137d3cb0bf61ae5818381a36f467",
- "sha256": "151mih9zp0ndh8jzzz43vqh7zqwdc8c6gn3ni3hb77rgqj11gvg9"
+ "commit": "2e37cc1d19f0f6f710932610639e4fd206884770",
+ "sha256": "0j0mqlx5xv1m1ik61q82lj6y030226k7isswd5plbq2v5z1d8b76"
}
},
{
@@ -33723,6 +33841,28 @@
"sha256": "16p7qmljjki4svci3mxzydmvpxaprbnfq6794b3adyyixkmgr6k7"
}
},
+ {
+ "ename": "fb2-reader",
+ "commit": "5142d1146d359070e56eeaa5a20dabfc46803ec6",
+ "sha256": "1gznaxn1p7gzg0s161agx0x4p1v6kqql907k2vj6bxv3j4dqi94z",
+ "fetcher": "github",
+ "repo": "jumper047/fb2-reader",
+ "unstable": {
+ "version": [
+ 20211116,
+ 2053
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "f",
+ "s",
+ "visual-fill-column"
+ ],
+ "commit": "b93dfcacbe3ea1147642ee4e1dab2e2c36c4f6a3",
+ "sha256": "1c5i2w59kgs1pbhyxa0m0bny50kra2xlziydzpvryyddix94k4ld"
+ }
+ },
{
"ename": "fcitx",
"commit": "e8c40f09d9397b3ca32a7ed37203f490497dc984",
@@ -33892,20 +34032,20 @@
"repo": "technomancy/fennel-mode",
"unstable": {
"version": [
- 20211021,
- 1908
+ 20211110,
+ 1728
],
- "commit": "8c0b2904a9d1bb93552eb4dbc83539bd1f0300ae",
- "sha256": "1bhypfb21in3zmc8vpiami4lp381lw591dbmaisgml2glvcbsa62"
+ "commit": "2900e3c2d5554b115a0a3b181e74a27c76489f4d",
+ "sha256": "14in4r89aqx6gq8qlia2bgprr73ldj7nlyvz61np2zqn7kfw1nfq"
},
"stable": {
"version": [
0,
- 3,
+ 4,
0
],
- "commit": "ea8564a2cc4f7e10b3fc13faf26a4f098b159f00",
- "sha256": "03z3f60qsn6k9wg1km49ad4xlwp82114r5pzibnxly2n0vmmdsyb"
+ "commit": "815f4c9433fa389bf10ddcf1da6f280e512912ff",
+ "sha256": "0v9a6psnlbh9cyibp95k2frix29ma6b69cgivmh8z4nrp0ycywc7"
}
},
{
@@ -34042,15 +34182,15 @@
"repo": "knpatel401/filetree",
"unstable": {
"version": [
- 20211008,
- 2353
+ 20211115,
+ 506
],
"deps": [
"dash",
"helm"
],
- "commit": "1f0bcf009bf124c213d64dd2726061db6af981b5",
- "sha256": "1wsqddl48shi2815zmx609g39bpc9kn28hv26vpjljap8qxpxpzw"
+ "commit": "4f97329cdc628d2b9424114a981d046daab50d61",
+ "sha256": "06hdllrg2xca7qq6m6f4xnjlb06ljn6lk7zypviy20qv7vmxa87s"
}
},
{
@@ -34355,8 +34495,8 @@
"repo": "LaurenceWarne/finito.el",
"unstable": {
"version": [
- 20211015,
- 937
+ 20211107,
+ 1925
],
"deps": [
"async",
@@ -34367,8 +34507,8 @@
"s",
"transient"
],
- "commit": "21a492d3e67e5e3ab59b75107d345142a4c3ac02",
- "sha256": "02n3h2zvdf24jxmcpp0cjcfba54cs0isymcd4k4j68zywszwzp36"
+ "commit": "f1b280cfbcbbb0729a83d763f08e25ccdb4c399d",
+ "sha256": "0x8aysl2s0ixl72qbz924b59advxp3f6ifmwf41rn11rnqjdmlr0"
},
"stable": {
"version": [
@@ -35157,14 +35297,14 @@
"repo": "lewang/flx",
"unstable": {
"version": [
- 20191115,
- 659
+ 20211101,
+ 146
],
"deps": [
"cl-lib"
],
- "commit": "647cb2f92f9936c62e277d7a74ad54a80502d255",
- "sha256": "1mslib2zrj1ckl8hiyidc4hi4r83pcv3i1hincvqd2f7qj957lxv"
+ "commit": "e3b3f0533e44c5250ce73d728b59a7e96c692b5d",
+ "sha256": "0sgs83gn6ms90yk68ygvcib8k5k94ql6s23qzllas07qzmx0cn48"
},
"stable": {
"version": [
@@ -35194,8 +35334,8 @@
"cl-lib",
"flx"
],
- "commit": "647cb2f92f9936c62e277d7a74ad54a80502d255",
- "sha256": "1mslib2zrj1ckl8hiyidc4hi4r83pcv3i1hincvqd2f7qj957lxv"
+ "commit": "e3b3f0533e44c5250ce73d728b59a7e96c692b5d",
+ "sha256": "0sgs83gn6ms90yk68ygvcib8k5k94ql6s23qzllas07qzmx0cn48"
},
"stable": {
"version": [
@@ -36235,16 +36375,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": [
@@ -36622,8 +36762,8 @@
"flycheck",
"keg"
],
- "commit": "41a5432e58a74eb830801b21047e5e2f77dcf757",
- "sha256": "0jn57vfabyw1b67b5l8ziay65df9jllngwhv8a64ybpmqpryg4k4"
+ "commit": "f0a719892aed5b1b4b644f1339d1ace99c656100",
+ "sha256": "0vk4fdkai0ssq31ycckkz4iwp35ip5d8lnyisv4m3b98jv3pb6k0"
}
},
{
@@ -36663,14 +36803,14 @@
"repo": "emacs-languagetool/flycheck-languagetool",
"unstable": {
"version": [
- 20210715,
- 946
+ 20211107,
+ 1001
],
"deps": [
"flycheck"
],
- "commit": "4fcf88d131fd0e149a7f1c787c07f4e03ea24fe8",
- "sha256": "0p1fmxgbpfh3bihpdaqd2dfsgi3s9x17nhb8439livfrjhqdhfhd"
+ "commit": "b6d0b1515418e5821241ac04143a12997c3bb240",
+ "sha256": "1klwi2ssjnjc5cirq201wl643w8cb32r42nmjhvxv4dgad14i659"
},
"stable": {
"version": [
@@ -37427,8 +37567,8 @@
"flycheck",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -38388,11 +38528,11 @@
"repo": "turbo-cafe/flymake-kondor",
"unstable": {
"version": [
- 20211023,
- 739
+ 20211026,
+ 501
],
- "commit": "470228acfaed703198bbb04198461ef9a44821b0",
- "sha256": "0jdff6wmkw3v19nidyiiw87wl90kxg7r7j85bq1cg9l5pppxnhfy"
+ "commit": "784e57f36812a37e323409b90b935ef3c6920a22",
+ "sha256": "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"
},
"stable": {
"version": [
@@ -38964,8 +39104,8 @@
20210724,
1042
],
- "commit": "0bb9ea9969669acce7e9eb1e2c2da6c1dd91a23c",
- "sha256": "0jyn2vwkpc1jh7p5z6nbhd4pz80g3ycgi54r9zd7g6r27jlsrbd6"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -38992,8 +39132,8 @@
"avy-menu",
"flyspell-correct"
],
- "commit": "0bb9ea9969669acce7e9eb1e2c2da6c1dd91a23c",
- "sha256": "0jyn2vwkpc1jh7p5z6nbhd4pz80g3ycgi54r9zd7g6r27jlsrbd6"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -39024,8 +39164,8 @@
"flyspell-correct",
"helm"
],
- "commit": "0bb9ea9969669acce7e9eb1e2c2da6c1dd91a23c",
- "sha256": "0jyn2vwkpc1jh7p5z6nbhd4pz80g3ycgi54r9zd7g6r27jlsrbd6"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -39056,8 +39196,8 @@
"flyspell-correct",
"ivy"
],
- "commit": "0bb9ea9969669acce7e9eb1e2c2da6c1dd91a23c",
- "sha256": "0jyn2vwkpc1jh7p5z6nbhd4pz80g3ycgi54r9zd7g6r27jlsrbd6"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -39088,8 +39228,8 @@
"flyspell-correct",
"popup"
],
- "commit": "0bb9ea9969669acce7e9eb1e2c2da6c1dd91a23c",
- "sha256": "0jyn2vwkpc1jh7p5z6nbhd4pz80g3ycgi54r9zd7g6r27jlsrbd6"
+ "commit": "2e098db03cba74149257e31213097d043780e80a",
+ "sha256": "0rqp06bk260ms63sidl4x2gsnfc7hb77isjb3lm8qih98376mps7"
},
"stable": {
"version": [
@@ -39472,6 +39612,40 @@
"sha256": "1zfld9a17xhisfwhmfxvx1x63ksl6jg5g99kbivj4nq70sf26dpw"
}
},
+ {
+ "ename": "fontsloth",
+ "commit": "f9c704d7509531a89ace039565152b5336a3f25a",
+ "sha256": "1kkcx9rycpcknyw1423d6k4dnbcpvkj3adzvgxl6a8h60q3i17v6",
+ "fetcher": "github",
+ "repo": "jollm/fontsloth",
+ "unstable": {
+ "version": [
+ 20211102,
+ 511
+ ],
+ "deps": [
+ "f",
+ "logito",
+ "pcache"
+ ],
+ "commit": "e43c7ed8302841aefe45f2e6bf35f84d854868f5",
+ "sha256": "1r3rn65gmnj964wisjagknz46kqhnpma5byw7gyzl69s8gfaifg0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 15,
+ 3
+ ],
+ "deps": [
+ "f",
+ "logito",
+ "pcache"
+ ],
+ "commit": "8ce1802b356962296a492d90cc9ae62e06c7ae43",
+ "sha256": "106ry9gqp10fpf24zsh9aar3qr3q6lg1l7wj38sfc73saq71mi17"
+ }
+ },
{
"ename": "forecast",
"commit": "a7ea18a56370348715dec91f75adc162c800dd10",
@@ -39561,8 +39735,8 @@
"repo": "magit/forge",
"unstable": {
"version": [
- 20211020,
- 1748
+ 20211111,
+ 2038
],
"deps": [
"closql",
@@ -39575,8 +39749,8 @@
"transient",
"yaml"
],
- "commit": "72b29bd7bc4172705b55bdd2a5070202ec154069",
- "sha256": "054flhapx770f9fg9l0ipbgmdwzxwprkz74v571cn67prrp7j35j"
+ "commit": "41efa674cff0b447efbc103494fd61ec9b9156ae",
+ "sha256": "0baaq8bf07aq80ll1q86q9dzzgkpn6j5jl1c1dssc04awg69kjsb"
},
"stable": {
"version": [
@@ -39776,14 +39950,14 @@
"repo": "rnkn/fountain-mode",
"unstable": {
"version": [
- 20211017,
- 1118
+ 20211105,
+ 1510
],
"deps": [
"seq"
],
- "commit": "984475e2b9432bbba505c567a705804d69936b31",
- "sha256": "0q4pgdw8l4iwfakdmmx122gidhgp7q5nfjwcdpjyd3rm3bqmyra7"
+ "commit": "e3e4509e95019b5a56fb6596cafad0a78ebf2c79",
+ "sha256": "199carn2y5kxqsmxwrjcgvq4ih5xk74k09akb7milnxhys0zhnlk"
},
"stable": {
"version": [
@@ -40017,14 +40191,14 @@
"repo": "Fuco1/free-keys",
"unstable": {
"version": [
- 20160726,
- 2050
+ 20211116,
+ 1501
],
"deps": [
"cl-lib"
],
- "commit": "edfd69dc369b2647447b7c28c7c1163b1ddf45b4",
- "sha256": "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc"
+ "commit": "7348ce68192871b8a69b687ec124d9f816d493ca",
+ "sha256": "0f99vykxvvcsdqs03ig5kyd3vdrclk8mcryn7b310ysg840ksrw8"
},
"stable": {
"version": [
@@ -40326,14 +40500,14 @@
"repo": "fsharp/emacs-fsharp-mode",
"unstable": {
"version": [
- 20211020,
- 1758
+ 20211115,
+ 1418
],
"deps": [
"s"
],
- "commit": "3d3b977b0fc36dbde0e2a66adf6f93b829e4fce4",
- "sha256": "07nn95a2mv2f8llhq9xaxiy5lr2b6j5mjy5bgq2c7idkhrkdqdnp"
+ "commit": "0ba09a8124cee35cf81f55b4db9144efeb00a92f",
+ "sha256": "1y11q6zbmdfwswgy205f0iqsd5c4075zsf135vsnc7bpmmkpgcvw"
},
"stable": {
"version": [
@@ -40399,8 +40573,8 @@
"deps": [
"cl-lib"
],
- "commit": "cefe1975e5e278533e891f846b9e7773965093cc",
- "sha256": "0cwchcvbdq4h6z1yll920439a3ii3kn6dz71xd7fk3k991zpncy5"
+ "commit": "8515fe960b5b0bfce158ad91e9141f07a2c5fcc4",
+ "sha256": "19ch4ndc0pcw6ggv49wpdkq42pw7m86g973g7qrv4mgf95aprbi0"
},
"stable": {
"version": [
@@ -41164,25 +41338,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"
}
},
{
@@ -41333,15 +41507,15 @@
"url": "https://alexschroeder.ch/cgit/gemini-write",
"unstable": {
"version": [
- 20211009,
- 2110
+ 20211114,
+ 1032
],
"deps": [
"elpher",
"gemini-mode"
],
- "commit": "7e1fe7d4f2c65c0854eb571edc78e5a45d7078de",
- "sha256": "0p1ch44w7sn73p87a7k47drgdj4sam961arfr4k0ii4fny54cyip"
+ "commit": "2a7d07d0ce4c5b8750f3ff1182ad94ee616734c8",
+ "sha256": "0jp16la1v4l8mdnxsia9w11a33s5jxs9rdgwp2snxq3h40wyv0is"
}
},
{
@@ -41477,11 +41651,11 @@
"repo": "matsuyoshi30/germanium-el",
"unstable": {
"version": [
- 20210912,
- 1407
+ 20211101,
+ 1453
],
- "commit": "22e7aac319f45b45c884d504f060f27b2dae159f",
- "sha256": "010sn05dpscj8nikr8hgvyybqdya6597kvh9a0ck1a4papqncbvm"
+ "commit": "1f28da73dd767b1cf5afe2230a0fd81bfbb1bb6f",
+ "sha256": "1v1ig4pf5ydb4b1fnjv9awdr2kfwzv1vbgqgkqhbswasxzzz4vgm"
}
},
{
@@ -41501,8 +41675,8 @@
"magit",
"s"
],
- "commit": "ba1e4423ed08abc2f427afd60216dc586a931075",
- "sha256": "09bfjahnxhbablrjrwkc4mm1sfxxk1nkl4ws2dy8dz55dqhjyiic"
+ "commit": "3de210e2bcf9a7ce9a2a448cd910ffe477de8432",
+ "sha256": "1aaaff18crz86f1mpjkwc6vfjdayjnv4imqrl8qnqfccbmkb5z4w"
}
},
{
@@ -41760,15 +41934,15 @@
"repo": "magit/ghub",
"unstable": {
"version": [
- 20211001,
- 2224
+ 20211106,
+ 2042
],
"deps": [
"let-alist",
"treepy"
],
- "commit": "192eff9da2c0f61813f3bc9c00913985c1804180",
- "sha256": "1bc5z63ylb0ir5v9qngyl50svmlfd6hx9lv1ladwywncdpsslls8"
+ "commit": "4d6a4b2bc1d88b993c09c1cb47b575a08eb264ea",
+ "sha256": "1sdwpn917p92bh8cljl70zzxrwdy368p0w1ynsfp4x9xdkgc068f"
},
"stable": {
"version": [
@@ -42134,8 +42308,8 @@
"transient",
"with-editor"
],
- "commit": "aba0a596115b42fbd60347d893bcc319020ce5a2",
- "sha256": "128jni29ka15wnkmwp5s3pnlwxvfq3g961f7zg1c72k1yh3crq3f"
+ "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
+ "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
},
"stable": {
"version": [
@@ -42763,11 +42937,14 @@
"repo": "TxGVNN/github-explorer",
"unstable": {
"version": [
- 20210825,
- 1440
+ 20211031,
+ 120
],
- "commit": "cd1186fb6ca7728c1cf2478ad3878a6401c65246",
- "sha256": "0zfnqsw3918rfcfapzgfalrd5w6rhy01ym6ykdswrlv38zd9kjk6"
+ "deps": [
+ "graphql"
+ ],
+ "commit": "a40c122e6768578254641fc0f24a8437ee70fac9",
+ "sha256": "1n7h5sw6b6907w2ry9d1knmda86s8iy9bim75ggyy6qcy06w0jdh"
},
"stable": {
"version": [
@@ -42845,8 +43022,8 @@
"repo": "charignon/github-review",
"unstable": {
"version": [
- 20211011,
- 1933
+ 20211029,
+ 243
],
"deps": [
"a",
@@ -42855,8 +43032,8 @@
"ghub",
"s"
],
- "commit": "2a24e75dfc2d9f37789ff60b4c10deb7c96f3f88",
- "sha256": "1mahd3kg5rr6jf1x3ixjvhgkv9c8fq8mxvikrmpjciari05sd58y"
+ "commit": "725fbc7b385228f53a7ddc46a92c1276bab4aea8",
+ "sha256": "1261p65wlpl9s5xqq1jfnkj7hrn27a4bn85rxc3allqdl5hc63hd"
}
},
{
@@ -44031,8 +44208,8 @@
"cl-lib",
"go-mode"
],
- "commit": "34974346d1f74fa835d745514c9fe9afccce8dae",
- "sha256": "1h0vyp3xbz6xx6warxi23w8kjjgkr0x1lr6r9a2qiz2rywn8jlxf"
+ "commit": "5bd8efab64352dccf31dbc99c4fc96d3b985ef27",
+ "sha256": "0j430sd72pkh00773yqrg1jllli9yccdf645yxrxsf3n3k95s603"
},
"stable": {
"version": [
@@ -44124,11 +44301,11 @@
"repo": "dominikh/go-mode.el",
"unstable": {
"version": [
- 20210509,
- 2353
+ 20211113,
+ 705
],
- "commit": "34974346d1f74fa835d745514c9fe9afccce8dae",
- "sha256": "1h0vyp3xbz6xx6warxi23w8kjjgkr0x1lr6r9a2qiz2rywn8jlxf"
+ "commit": "5bd8efab64352dccf31dbc99c4fc96d3b985ef27",
+ "sha256": "0j430sd72pkh00773yqrg1jllli9yccdf645yxrxsf3n3k95s603"
},
"stable": {
"version": [
@@ -44247,8 +44424,8 @@
"deps": [
"go-mode"
],
- "commit": "34974346d1f74fa835d745514c9fe9afccce8dae",
- "sha256": "1h0vyp3xbz6xx6warxi23w8kjjgkr0x1lr6r9a2qiz2rywn8jlxf"
+ "commit": "5bd8efab64352dccf31dbc99c4fc96d3b985ef27",
+ "sha256": "0j430sd72pkh00773yqrg1jllli9yccdf645yxrxsf3n3k95s603"
},
"stable": {
"version": [
@@ -44367,16 +44544,16 @@
20211025,
443
],
- "commit": "5bc52d326a7168e22a61542f9b48a053d14aca87",
- "sha256": "1bvfd07daiqw7sf11bvrx0g19869hd4sgjnifrhvq17xrpwv4cdf"
+ "commit": "8de1c3b660602b6739444ceed3e48214c417fe38",
+ "sha256": "0b8jbcs848ck0zbl6rmyyac3mbhx58zq04l7wvi7paficg9lphj9"
},
"stable": {
"version": [
0,
- 2
+ 3
],
- "commit": "b3174e09a03954b1423c4ea2f2936f9fcd94f381",
- "sha256": "054l7m9slhznpfkixrnk6n5h8rc9x7gjsahizxvkd73q0jvgqxgn"
+ "commit": "8de1c3b660602b6739444ceed3e48214c417fe38",
+ "sha256": "0b8jbcs848ck0zbl6rmyyac3mbhx58zq04l7wvi7paficg9lphj9"
}
},
{
@@ -44450,11 +44627,11 @@
"repo": "minad/goggles",
"unstable": {
"version": [
- 20211017,
- 1732
+ 20211031,
+ 1513
],
- "commit": "6023ca87b28fa05ebad320c8b9c5887c6dd0f51b",
- "sha256": "15bqjmwfdqp2np6fln6xjyw59c5iddvzsyga0lvb8raa753cdh2k"
+ "commit": "36139cb1898c763be08167c74b5c5d05efada9e5",
+ "sha256": "06r5zpp4k4flv9slkpgxfy9m9c7b5kyix2si30bdka3fq4c1jwl5"
},
"stable": {
"version": [
@@ -44595,11 +44772,11 @@
"repo": "io12/good-scroll.el",
"unstable": {
"version": [
- 20210820,
- 633
+ 20211101,
+ 942
],
- "commit": "bd369750d3aeb7e210c1c033569a53d0fda898c9",
- "sha256": "0dkqipsbl7sl6j6asqv7y0md2kxx91n1k4hms7d4jbj4shka7hnz"
+ "commit": "a7ffd5c0e5935cebd545a0570f64949077f71ee3",
+ "sha256": "0f1zs3fjz5yc25qjka5g60018554ssdbp4j7xj275pmzrc78915w"
},
"stable": {
"version": [
@@ -44746,24 +44923,6 @@
"sha256": "1mmdvjsgnwgs6akhyj96fgj30mz53djdq85dl5q4cmiznlbma7hy"
}
},
- {
- "ename": "gopher",
- "commit": "8c01e1c5009e8a4fefe5169c8e97ead53f8f6621",
- "sha256": "01b1mr8nn5yrq65y067slc7mvxigansbim0nha41ckyrkh8mw4fs",
- "fetcher": "github",
- "repo": "msnyder-info/gopher.el",
- "unstable": {
- "version": [
- 20190512,
- 1351
- ],
- "deps": [
- "w3m"
- ],
- "commit": "6f4accac226698b22e8388e41ad5723b12553dde",
- "sha256": "02093q9dwbqjyq47j05cmxmw12690f4qqpwsj7qnqz15m9n4b6xc"
- }
- },
{
"ename": "gore-mode",
"commit": "de09fcf14f778efe4247a93fb887b77050258f39",
@@ -44997,8 +45156,8 @@
"magit-popup",
"s"
],
- "commit": "d99e99542ffe1e054b2da68fac48ee5ce2bd4987",
- "sha256": "0p4y8j6x086wr6w13l7z1vbzq5aza2hw2hlazsjs6n4c60p9bnbp"
+ "commit": "7f4153164fcd6588e2245ca3f5b4aee7737f4367",
+ "sha256": "1wrmw1y6qp3s36s30v4dncn68mf5biykpwpf5sk3h7sh0ifgk8yv"
},
"stable": {
"version": [
@@ -45224,16 +45383,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": [
@@ -45414,8 +45573,8 @@
20210912,
1544
],
- "commit": "1912bd08f558e4609f4dd30ba91181b6ce7f69d9",
- "sha256": "0938cb40i5gs8sqksn2k1zpjm1g9a989dm7fb80dzm71r32y596n"
+ "commit": "80e9ac8020f7a4a8a963136698eb97a9fca28f7d",
+ "sha256": "1m4glbijclbhhzq8apvfyslfv1lgn3hy3wcfiynrpkxnxszygnyx"
}
},
{
@@ -45779,20 +45938,20 @@
"repo": "ROCKTAKEY/grugru",
"unstable": {
"version": [
- 20210617,
- 1028
+ 20211116,
+ 850
],
- "commit": "7efb041b826f15b10aa9cfb67b971fdc41064980",
- "sha256": "175gfhi1621pclwvhbz2a8rramfb47v353x5hxjys1b0p848yk1l"
+ "commit": "7b63aa731bf7df528bb7d680ca3efe42ab4ead38",
+ "sha256": "0l60w8r5586af740vkcr11xj8ganws0hgbv4n7rn11mksr5idzwz"
},
"stable": {
"version": [
1,
- 20,
+ 21,
0
],
- "commit": "e7f0fca4bfd4815e5ed794f13f89b1e28ce57d26",
- "sha256": "15h1h5gg369h2dm9yp97ac6l5qajm7f9c0s2cgpymv21gyx2ikr5"
+ "commit": "1225a06dcb10c600ab9c44fd3d7df25bcd74d704",
+ "sha256": "0b5dgy3la3jzfxvj4fsdjphqvymvs6zx8dsibvld5ydkj3cx4pfw"
}
},
{
@@ -46144,11 +46303,11 @@
"repo": "Overdr0ne/gumshoe",
"unstable": {
"version": [
- 20211023,
- 1734
+ 20211029,
+ 2148
],
- "commit": "567539b97d1e8fe4b59e5383d24d48b32de1f927",
- "sha256": "0a51mkfavx0cm9v4sdkl53rvxiz3sv00p2v3byinym3ijsccmhj1"
+ "commit": "397379a3e032f31e98a57f5eb2187a0607c6bd7a",
+ "sha256": "0qmknrb4h20cp4ldzkiwnvgggr3pg1qjbkql0wz9vg4h90bf3gfh"
}
},
{
@@ -46823,68 +46982,6 @@
"sha256": "12a5hgaf2z6prqx45n6y0xyknz2sivpzwxjnzbsdx9sw6rniqm57"
}
},
- {
- "ename": "hasky-extensions",
- "commit": "e3f73e3df8476fa231d04211866671dd74911603",
- "sha256": "0ymigba1d0qkrk3ccd3cx754safzmx1v5d13976571rszgmkvr15",
- "fetcher": "github",
- "repo": "hasky-mode/hasky-extensions",
- "unstable": {
- "version": [
- 20190204,
- 2016
- ],
- "deps": [
- "avy-menu"
- ],
- "commit": "4a0d1d9beb3be8ff4a1857eb920c916734dcc8e1",
- "sha256": "1sp07lqvxxcl625qr9ka7idvci3j0p77ll90pwzykr5cs7r3lzl2"
- },
- "stable": {
- "version": [
- 0,
- 2,
- 0
- ],
- "deps": [
- "avy-menu"
- ],
- "commit": "65bf7bc3967cbda23789d6c505daf73eed9a43aa",
- "sha256": "0r91hcm265xa8amdfi44pn0cqf4m9zigzqx1ldgg8qd6l9r2hbh7"
- }
- },
- {
- "ename": "hasky-stack",
- "commit": "c3faf544872478c3bccf2fe7dc51d406031e4d80",
- "sha256": "08ds0v5p829s47lbhibswnbn1aqfnwf6xx7p5bc5062wxdvqahw8",
- "fetcher": "github",
- "repo": "hasky-mode/hasky-stack",
- "unstable": {
- "version": [
- 20190304,
- 2248
- ],
- "deps": [
- "f",
- "magit-popup"
- ],
- "commit": "9ef133ed831a95a2b9990a46a3c57f1918d0274f",
- "sha256": "08h795hplyy7d0yqxvdfx3ylb7gkjplyriyq0w9dsv6ggvmc5hhl"
- },
- "stable": {
- "version": [
- 0,
- 9,
- 0
- ],
- "deps": [
- "f",
- "magit-popup"
- ],
- "commit": "a3176aece9a9ab0a36ae795965f83f4c1fa243bf",
- "sha256": "1j9cvy95wnmssg68y7hcjr0fh117ix1ypa0k7rxqn84na7hyhdpl"
- }
- },
{
"ename": "hass",
"commit": "d9f55bfa87d6fbaeafe713f8862369ea013a0c67",
@@ -47103,30 +47200,30 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20211023,
- 428
+ 20211116,
+ 1616
],
"deps": [
"async",
"helm-core",
"popup"
],
- "commit": "a030335d3f5d108ef2c79e9bf0a4d2437c9cd026",
- "sha256": "02ikh0mrrym5yzg6y76mjik00makprh9n09bhcs27xhsb8izmk2y"
+ "commit": "ab2592262f4f62498f3261993eb249bb4c60c8ba",
+ "sha256": "0d5accmbidapgxj9fbrn5cdcfy3i0993sxrafnj2x8cb8px1lrg4"
},
"stable": {
"version": [
3,
8,
- 0
+ 1
],
"deps": [
"async",
"helm-core",
"popup"
],
- "commit": "0714e27fe703a42fa52caf6daa0921d544a55402",
- "sha256": "1xrpv0sqmlwn94bc31k2iav284i1hl95937541ihlkhqg6v2vwrv"
+ "commit": "52dcf9e27c1a10be058efa0cf790510bbfeb89e7",
+ "sha256": "1yfr2vz1kd21rvnxi8xzv67gs5r599fhjmw8qphsmpv5afscfl7k"
}
},
{
@@ -48011,26 +48108,26 @@
"repo": "emacs-helm/helm",
"unstable": {
"version": [
- 20211017,
- 530
+ 20211114,
+ 1507
],
"deps": [
"async"
],
- "commit": "a030335d3f5d108ef2c79e9bf0a4d2437c9cd026",
- "sha256": "02ikh0mrrym5yzg6y76mjik00makprh9n09bhcs27xhsb8izmk2y"
+ "commit": "ab2592262f4f62498f3261993eb249bb4c60c8ba",
+ "sha256": "0d5accmbidapgxj9fbrn5cdcfy3i0993sxrafnj2x8cb8px1lrg4"
},
"stable": {
"version": [
3,
8,
- 0
+ 1
],
"deps": [
"async"
],
- "commit": "0714e27fe703a42fa52caf6daa0921d544a55402",
- "sha256": "1xrpv0sqmlwn94bc31k2iav284i1hl95937541ihlkhqg6v2vwrv"
+ "commit": "52dcf9e27c1a10be058efa0cf790510bbfeb89e7",
+ "sha256": "1yfr2vz1kd21rvnxi8xzv67gs5r599fhjmw8qphsmpv5afscfl7k"
}
},
{
@@ -50398,15 +50495,15 @@
"repo": "tumashu/helm-posframe",
"unstable": {
"version": [
- 20210412,
- 1147
+ 20211103,
+ 236
],
"deps": [
"helm",
"posframe"
],
- "commit": "2412e5b3c584c7683982a7e9cfa10a67427f2567",
- "sha256": "0k4lmgvrxm4lswafc3fb8aab3ax0gnkkq64vg3vmiry85kih2cqb"
+ "commit": "87461b52b6f3f378c63642a33f584d4a4ba28351",
+ "sha256": "1hmf1l6hmir0kvpl5h0wk4l17nmk0lfi659lvg89jc1sm18v2xv9"
}
},
{
@@ -50877,8 +50974,8 @@
"helm",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -52104,11 +52201,11 @@
"repo": "hlissner/emacs-hide-mode-line",
"unstable": {
"version": [
- 20190922,
- 115
+ 20211112,
+ 1400
],
- "commit": "88888825b5b27b300683e662fa3be88d954b1cea",
- "sha256": "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"
+ "commit": "bc5d293576c5e08c29e694078b96a5ed85631942",
+ "sha256": "12mfhg0r3gvy59ijy44vsircn251nmisp04k9vvgd2yhykpsr1j6"
},
"stable": {
"version": [
@@ -52775,11 +52872,11 @@
"repo": "ideasman42/emacs-hl-block-mode",
"unstable": {
"version": [
- 20211007,
- 309
+ 20211029,
+ 602
],
- "commit": "2c6a47cc37b0dfcd8489e4fe36c379f0a47d451d",
- "sha256": "15jxlzbxkpyfd6mr7jhs6vfxizdwsr5bi2g6xplndndmwdqq8x49"
+ "commit": "0593a1a77db28503025d5c1850e6a99551c3bcbd",
+ "sha256": "1rkxm6ak1zaqzp6q6mqpng0k4qjnsshkwydfxfm63xfsgr4vwhwv"
}
},
{
@@ -52826,11 +52923,11 @@
"repo": "ideasman42/emacs-hl-prog-extra",
"unstable": {
"version": [
- 20211006,
- 1402
+ 20211025,
+ 2138
],
- "commit": "e8be12a44ee659d73cf934530adc58ab9a48e9dd",
- "sha256": "10bs34jjnza2lf8q32dki54wpyyy815k5a35n2r76xnimayrcy5p"
+ "commit": "121f24c12c6711f65157259d90cbe88a53c10336",
+ "sha256": "0mwhqhf84kf76wrqz6l9rp4majfl7dnxs1dg49qls32lv44ihs2x"
}
},
{
@@ -53944,14 +54041,14 @@
"repo": "zzkt/i-ching",
"unstable": {
"version": [
- 20210222,
- 1519
+ 20211112,
+ 1528
],
"deps": [
"request"
],
- "commit": "51a3180ed07ae9f8b7ff3f2b822d998495864a07",
- "sha256": "1rrykszzcyvrmks2clrpdq5kdldcqp38wc908bhq2b4qw7w3d7sw"
+ "commit": "39fd7daf1efd761336616c870cc5b8871422d95e",
+ "sha256": "18b9n5w36zdsaxc63nhsry2i1s28a4y21sc6cj7rawvd8zyxargv"
}
},
{
@@ -54788,15 +54885,15 @@
"repo": "idris-hackers/idris-mode",
"unstable": {
"version": [
- 20210728,
- 846
+ 20211103,
+ 1521
],
"deps": [
"cl-lib",
"prop-menu"
],
- "commit": "3cc9361b4c0ca88fd3ba218633ea1edeae18d6fe",
- "sha256": "04zj69lwjcwz0dmmwz84lfr3w0cdca94pv69ldvik4qh685cd0n9"
+ "commit": "2e4b5c6a979b04d9383c44423388f6cb0988f14f",
+ "sha256": "0bl6wz05m325h2y4in7fv280p73a2iv2k52jg7qp26aggmpfrjxa"
},
"stable": {
"version": [
@@ -54834,11 +54931,11 @@
"repo": "victorhge/iedit",
"unstable": {
"version": [
- 20210812,
- 735
+ 20211116,
+ 11
],
- "commit": "2f504c966e7f640dcd6ecbf40a6a1a05ea286de0",
- "sha256": "08lgv18584ksgkz0r39vc6xfjid93v0z3wbds38iynaayimr3p68"
+ "commit": "012de2e8d8519e850a790f8a2c71a5b08358c29c",
+ "sha256": "00b1hmr8p6fwydppql75cqkcqbnc89271b7h1kydgnwm7pcg177w"
},
"stable": {
"version": [
@@ -55655,14 +55752,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": [
@@ -56106,11 +56203,11 @@
"repo": "ideasman42/emacs-inkpot-theme",
"unstable": {
"version": [
- 20211007,
- 357
+ 20211101,
+ 558
],
- "commit": "d82680ab7a7531a1c9369e65f2714285e43c6688",
- "sha256": "0n1vh8rpn9zkwpnwm03rmz6xmcqicj9wzc0q6jbfg1ndc6yz29rw"
+ "commit": "1ca71416869e7515a9c2587b35f21a11921686f3",
+ "sha256": "0pl2hpcy9165np17gwa9qhqxb43kwm0z746pxcga7rfg6apy6krc"
}
},
{
@@ -57386,8 +57483,8 @@
"migemo",
"nadvice"
],
- "commit": "a2ce15abe6a30fae63ed457ab25a80455704f28e",
- "sha256": "18j3h2ndrw92gpbd9q5ji6q8qrwqmzw2xw8yds8f0fd8aybkw8zz"
+ "commit": "b91f341d1b70175baf989f0c6eee6573bf781a27",
+ "sha256": "0svvh14zhym9ssc0dc7wyr1pw0rhiirn2s7a0xk43wl2r0c36cgj"
},
"stable": {
"version": [
@@ -57503,15 +57600,15 @@
"repo": "tumashu/ivy-posframe",
"unstable": {
"version": [
- 20210922,
- 24
+ 20211103,
+ 233
],
"deps": [
"ivy",
"posframe"
],
- "commit": "b4a522b7f81d49e7664f90a4f9ff1c2def08a3a9",
- "sha256": "05rd1kylq0114mnw0rfj2k15pir9shgy19n1ih86i85h718z2z80"
+ "commit": "5d9420252ca855d6d206f1f8ef5993a6be3c618f",
+ "sha256": "1yan9h12208dalzgpffqxnzv8b0hwzhzna01gnzb9wmkcfi3fpmh"
},
"stable": {
"version": [
@@ -57542,8 +57639,8 @@
"ivy",
"prescient"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -57634,8 +57731,8 @@
"ivy",
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -57701,8 +57798,8 @@
"espotify",
"ivy"
],
- "commit": "5bf63dacc5df8a74860e80dabd16afce68a24a36",
- "sha256": "1vxg86wv6f96bva0d1xxhisk525chwhdl4nq77xhriflq65mcmi3"
+ "commit": "5c1dcf0182135cda4191d4ba206fe2f265100293",
+ "sha256": "06wj2pixhjgqddl9g2wkv7cq9gz9yjb46cb1jrlbya3rdjyfb6h5"
}
},
{
@@ -58683,11 +58780,11 @@
"repo": "Michael-Allan/Java_Mode_Tamed",
"unstable": {
"version": [
- 20210512,
- 2301
+ 20211027,
+ 1852
],
- "commit": "c5cc024a06684b91da9bb05fecf681426596af5e",
- "sha256": "1qkkqqq4r5j10s4q17r2r4ryim0gpknr5h512jj9yk52a77q1g7d"
+ "commit": "647cae28087529d18367f895d7ef689c7f64c6bd",
+ "sha256": "086h53mmdjx30093zazwylx3fg7jvbcjy63q4ph63ybizsbiy5lg"
}
},
{
@@ -59053,14 +59150,14 @@
"repo": "mooz/js2-mode",
"unstable": {
"version": [
- 20210906,
- 2337
+ 20211105,
+ 1214
],
"deps": [
"cl-lib"
],
- "commit": "e6a9059fc823a17496e1a5114652d92a9071a78f",
- "sha256": "16i0i0dz6yk24ny66irlfh9xjllp7a78ccx95mrlpqcxsjkcqv62"
+ "commit": "d2636f95ebe4d423dc9b4311aff248c7688271c5",
+ "sha256": "1p293jhzsqzn4kljz1nl87jg1aq35jzqzs31ryfi8dn8iicwyd85"
},
"stable": {
"version": [
@@ -59267,6 +59364,36 @@
"sha256": "0xrjbx6rkm8a6pmzhdph0r6l468hj827dvvq2hxhcm8v5gk6m690"
}
},
+ {
+ "ename": "json-par",
+ "commit": "db033df8bb4e12f8ba39accc42f285d8037268c5",
+ "sha256": "1d4jl6pllvsa5b132c9ygr5x5c7n49gz15w70fgdbkzm1gh17n7r",
+ "fetcher": "github",
+ "repo": "taku0/json-par",
+ "unstable": {
+ "version": [
+ 20211106,
+ 535
+ ],
+ "deps": [
+ "json-mode"
+ ],
+ "commit": "45902f2f36d4a90662caaaca6612b762ccb5b34e",
+ "sha256": "1p46pylidl035bhxv73867iw206ddriziplcv347rqj39drknlix"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "deps": [
+ "json-mode"
+ ],
+ "commit": "85a5288bea5c579b2bfdd7be16bdfc18a58b3a26",
+ "sha256": "0fbrgxd2n45smq7im6qas6nnzrxv3397rxp1snx7pk58vz4v980h"
+ }
+ },
{
"ename": "json-process-client",
"commit": "a681f977631344190e2a35d9ac2cbb9a42402272",
@@ -59572,8 +59699,8 @@
"repo": "gcv/julia-snail",
"unstable": {
"version": [
- 20210818,
- 310
+ 20211110,
+ 1407
],
"deps": [
"dash",
@@ -59582,8 +59709,8 @@
"spinner",
"vterm"
],
- "commit": "5b95b278772de8339ac198fe6eaadb0427d680fb",
- "sha256": "11spibld7dyggr38hzkrd05lmdf847d57cc9qyk01mb3bli21vxd"
+ "commit": "55458e9c8fbeebb33ffeb291d40c529f2b006c8d",
+ "sha256": "0b9khsza4zfxdi03i5gx6s1g0f27qg71vmj4f4gcqkgdhfxxy4yb"
},
"stable": {
"version": [
@@ -59763,8 +59890,8 @@
"repo": "nnicandro/emacs-jupyter",
"unstable": {
"version": [
- 20210422,
- 1451
+ 20211116,
+ 150
],
"deps": [
"cl-lib",
@@ -59772,8 +59899,8 @@
"websocket",
"zmq"
],
- "commit": "1f0612eb936d36abab0f27b09cca691e81fc6e74",
- "sha256": "1mpch20iahijlgwg8bjpjg7bm9hd2wyskqbknafw8jkwyj7dvng2"
+ "commit": "f178c1c7b8d9a0c0b77e38dc03524db3d2c8288a",
+ "sha256": "1vmg6bq8w9aw5r9plnvslvhq1ykj5m5srz67qn9jbn54lx7qq08p"
},
"stable": {
"version": [
@@ -60305,20 +60432,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"
}
},
{
@@ -60329,11 +60456,11 @@
"repo": "conao3/keg.el",
"unstable": {
"version": [
- 20211023,
- 1823
+ 20211105,
+ 316
],
- "commit": "41a5432e58a74eb830801b21047e5e2f77dcf757",
- "sha256": "0jn57vfabyw1b67b5l8ziay65df9jllngwhv8a64ybpmqpryg4k4"
+ "commit": "f0a719892aed5b1b4b644f1339d1ace99c656100",
+ "sha256": "0vk4fdkai0ssq31ycckkz4iwp35ip5d8lnyisv4m3b98jv3pb6k0"
}
},
{
@@ -60347,8 +60474,8 @@
20200601,
333
],
- "commit": "41a5432e58a74eb830801b21047e5e2f77dcf757",
- "sha256": "0jn57vfabyw1b67b5l8ziay65df9jllngwhv8a64ybpmqpryg4k4"
+ "commit": "f0a719892aed5b1b4b644f1339d1ace99c656100",
+ "sha256": "0vk4fdkai0ssq31ycckkz4iwp35ip5d8lnyisv4m3b98jv3pb6k0"
}
},
{
@@ -60615,14 +60742,14 @@
"repo": "tarsius/keymap-utils",
"unstable": {
"version": [
- 20210125,
- 823
+ 20211027,
+ 1933
],
"deps": [
"cl-lib"
],
- "commit": "0b282e19ac3d23b9a74f656b137b9eebeb2aaa39",
- "sha256": "0ni03xnakai9ncq07gwzqy4walgijd04bnxslk3b4xnnk60i8m2h"
+ "commit": "20e5ab2a8bfdf9b44c813c6abd96b478f822ddef",
+ "sha256": "1acflsq0yh3sj607g2yasdbwacyzdh27hmgplybxc3zg464gldj1"
},
"stable": {
"version": [
@@ -60807,20 +60934,20 @@
"repo": "hperrey/khalel",
"unstable": {
"version": [
- 20211003,
- 1150
+ 20211114,
+ 1233
],
- "commit": "c6f2adfd7211c747d443bf85618833820078ca4b",
- "sha256": "0f76a9zr76azhb8rkzs24afscnx0sdypmha1z03cidn4mcz00sdb"
+ "commit": "313f74b17580c2a55f5c068e1bda17821b50c31e",
+ "sha256": "0m4448qvlh06n26l8l8hax4ir08mbai17mdi6inzvch7b09p0gpl"
},
"stable": {
"version": [
0,
1,
- 5
+ 6
],
- "commit": "c6f2adfd7211c747d443bf85618833820078ca4b",
- "sha256": "0f76a9zr76azhb8rkzs24afscnx0sdypmha1z03cidn4mcz00sdb"
+ "commit": "313f74b17580c2a55f5c068e1bda17821b50c31e",
+ "sha256": "0m4448qvlh06n26l8l8hax4ir08mbai17mdi6inzvch7b09p0gpl"
}
},
{
@@ -61009,8 +61136,8 @@
20210318,
2106
],
- "commit": "6430e1356248313f5cdd3a96c8861b17b12c0be7",
- "sha256": "01rzf8v9psihzpg0s5ar2svkxccmb32ypwsms3863c67ag9d9818"
+ "commit": "74057b9fcf7cbe3ec2f17c86e7a3da93b40e372b",
+ "sha256": "18n1xpcs8z7pmc2k35c343qsjai0rgyc1jgsc35j9z2xqzq6mpji"
},
"stable": {
"version": [
@@ -61375,8 +61502,8 @@
"repo": "kubernetes-el/kubernetes-el",
"unstable": {
"version": [
- 20210914,
- 1158
+ 20211114,
+ 420
],
"deps": [
"dash",
@@ -61385,8 +61512,8 @@
"transient",
"with-editor"
],
- "commit": "7cb6e4f2d571d45c49dba2427f7e65a9e0a994f2",
- "sha256": "1h9daqmskb9cv0s1w3rbv4p5sg5pmym0pkwz922hy72kvm593fyg"
+ "commit": "4b740d88c6dcb091d701f74ddcf53e3732999ac9",
+ "sha256": "1l5rbgagdi6gfp8prj01pcgh4k3k90aijrrq5b8nkqppxiq85kh7"
},
"stable": {
"version": [
@@ -61420,8 +61547,8 @@
"evil",
"kubernetes"
],
- "commit": "7cb6e4f2d571d45c49dba2427f7e65a9e0a994f2",
- "sha256": "1h9daqmskb9cv0s1w3rbv4p5sg5pmym0pkwz922hy72kvm593fyg"
+ "commit": "4b740d88c6dcb091d701f74ddcf53e3732999ac9",
+ "sha256": "1l5rbgagdi6gfp8prj01pcgh4k3k90aijrrq5b8nkqppxiq85kh7"
},
"stable": {
"version": [
@@ -61571,16 +61698,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": [
@@ -61696,16 +61823,16 @@
"repo": "Deducteam/lambdapi",
"unstable": {
"version": [
- 20211008,
- 1231
+ 20211116,
+ 1414
],
"deps": [
"eglot",
"highlight",
"math-symbol-lists"
],
- "commit": "933a1b37b86685bb1f2df2a2185741b0d21aaa78",
- "sha256": "0mxsqf78y4chm4yyxbfz69p56m3n35c5sv4agdwg6griaf0s5f59"
+ "commit": "dcb95cd0605cad14fe491903b40a13fad61e382d",
+ "sha256": "0lw9rydgfr6rf5579ac1jvz0449m52swhp0ad16wlxlrfi0k4iiw"
}
},
{
@@ -62212,11 +62339,11 @@
"repo": "conao3/leaf.el",
"unstable": {
"version": [
- 20210611,
- 1550
+ 20211115,
+ 1551
],
- "commit": "0ccc52bb85592d09499a09768a61ecfeccbfdf1e",
- "sha256": "0nwma6cvvlfyjxkrzi724brkx5s6k64n994nbwp7zaz6rqs1xmfd"
+ "commit": "7d8f768db5077bdb9f595cbf841018fc600ecf77",
+ "sha256": "15f0q4dlybqb3k17sgaj9vp42mgvrh72mqzs5sh49lxi000bdhkh"
},
"stable": {
"version": [
@@ -62336,14 +62463,14 @@
"repo": "conao3/leaf-tree.el",
"unstable": {
"version": [
- 20210503,
- 531
+ 20211105,
+ 19
],
"deps": [
"imenu-list"
],
- "commit": "8126baf45c881fd4a692c2d74f9cc2eb15170401",
- "sha256": "1vb5id0y9002yabkxijfi0l8vbibbd863kq4qk3gqax9dgbld481"
+ "commit": "89c3b8842df067bba67663d309f43aa311acdccd",
+ "sha256": "0him39wsl65nmml9as8gfrix707xjxwvjkwmrgxc9qfjwcxvbvsj"
},
"stable": {
"version": [
@@ -62766,8 +62893,8 @@
20210729,
1808
],
- "commit": "25c8d839cf78332c15b5762024ccb5f7c90b7a11",
- "sha256": "14x4a6dw9ywzl16f4blg7bmb0rvvik5jjldilshjdxf4zpvy80fd"
+ "commit": "a49235c918d626f5053344604cb1c464960762af",
+ "sha256": "1b4k80bm2p7sqh33dx72qag7056nlxqv9s8czql2qfvi8vlnwzz0"
}
},
{
@@ -62800,8 +62927,8 @@
20210603,
1241
],
- "commit": "f39ec6a9b93f09e1a49ee84405d1e03e04adc7cf",
- "sha256": "0ri06q30z699amw7a94a14ccf83zx547przviqw0wla3l2xaw26j"
+ "commit": "3d2483d6a46552eaa832f8e6df5dc1162e58fc79",
+ "sha256": "1vpif0g45xh16sqqsjh9hin61kzc2la79pmrxl3rmw2jvpg6pzym"
},
"stable": {
"version": [
@@ -63063,20 +63190,20 @@
"repo": "ligolang/ligo",
"unstable": {
"version": [
- 20211011,
- 954
+ 20211116,
+ 1344
],
- "commit": "1f5f7e81f37d14c18b303d6d2b5cc489761298e7",
- "sha256": "0db5ssmwx9rni11hmm4bv2ykvfk6vc25lkd0wbhl6ixxf51iijzq"
+ "commit": "f5d298df9bb9acf9a1fc734c75a8f033f3eae3e5",
+ "sha256": "1lg6r78f7c4d4dzkpv3260p9j32f7rc51v4c5bajkblq379yn98r"
},
"stable": {
"version": [
0,
- 27,
+ 29,
0
],
- "commit": "d5d3a30e724a4ba2d5a96b51180e1fd907e57d32",
- "sha256": "180z2clv90zwg9dkzbzs2wmiydz5z4hwmry93qp9ywn9qg1iaqfk"
+ "commit": "e1bcb971b9f964bc927c9d12fcf377a1878c459f",
+ "sha256": "1lg6r78f7c4d4dzkpv3260p9j32f7rc51v4c5bajkblq379yn98r"
}
},
{
@@ -63087,16 +63214,16 @@
"repo": "emacs-vs/line-reminder",
"unstable": {
"version": [
- 20211021,
- 1653
+ 20211116,
+ 614
],
"deps": [
"fringe-helper",
"ht",
"indicators"
],
- "commit": "efc88f21cd206b7ded3d10a0159a5a4196db86ae",
- "sha256": "1nbp91vwh5pd3dk35h6j2mhknnpkz899lczab5zxqkzl52rcg7qz"
+ "commit": "41783a2ecd76c2d02ad87295bb8719eda1ee4ed3",
+ "sha256": "1v8x2kf0w5vwl4myiwraq5b1nyfx0b0fgwpzvb9bnjjdj2nsk36p"
},
"stable": {
"version": [
@@ -63613,20 +63740,20 @@
"repo": "publicimageltd/lister",
"unstable": {
"version": [
- 20211023,
- 1842
+ 20211106,
+ 2151
],
- "commit": "cdc4ee6df5033824582648974d20ac442f2d61da",
- "sha256": "0ip3fbd2byjhhwlyapqm96w6q2275k6vpfxl0nlms9v2f4mfnvg2"
+ "commit": "5ae4f8bcfad02eee81a18c15c921637bb4269c13",
+ "sha256": "04lxz74v8axkn0ahgaan0bxkxyxcfp7ny2kxx9sxm0yg77c26gzl"
},
"stable": {
"version": [
0,
9,
- 1
+ 3
],
- "commit": "4c442c18ed5e4865393e72ffff16de9919b54456",
- "sha256": "07h55vsfmpf4r1dggjn4a0xxpxahbj1amyfywbf21wx59p17aja8"
+ "commit": "f9271f641f82cca9cdf8dd5737dc6dcf77aa5a1d",
+ "sha256": "1mmph8q1ff3bvsfggff74k7zadn020imyj63p1g1swp5a3bs6yyq"
}
},
{
@@ -63757,14 +63884,14 @@
"repo": "sulami/literate-calc-mode.el",
"unstable": {
"version": [
- 20210528,
- 815
+ 20211101,
+ 948
],
"deps": [
"s"
],
- "commit": "18d523d5b6a8cecc3e93c550d2ceab2d1035de02",
- "sha256": "1d8dlb2xsqk88lac7f9n0y8ridkn6gfl5pb6sr2n66v9mq75j6rq"
+ "commit": "ba7d22140a165b0fdd900a8d04916115ca6ab8ff",
+ "sha256": "1bdybw44pmhfpikdv1kg2sx88546xyncks5a4b2s0ak4p66r82k3"
}
},
{
@@ -63901,20 +64028,20 @@
"repo": "donkirkby/live-py-plugin",
"unstable": {
"version": [
- 20211023,
- 2036
+ 20211112,
+ 1745
],
- "commit": "3191fbb9954815bdef0af5a3d469b4f820d5a233",
- "sha256": "01mg0ahqxgj1igxv2x4z8ind4k7jv0b4yg2i90nsgzgrkg2kd2f8"
+ "commit": "61e043c705dc8804ee7c6f78ed3f374b325d5917",
+ "sha256": "0hj36x4aall7phvd9mi58scmzr42xc0zzs8jh16nq3i2xd8p0rqd"
},
"stable": {
"version": [
4,
- 4,
+ 5,
0
],
- "commit": "26d51013e75ddedd5eb8600a0a3dd035319f9d3f",
- "sha256": "10p4ijx4l56ikb10416bmdwfxbcyqfa29kk1nf48gibxyvdlwdby"
+ "commit": "660dd193cdb51979145a548f495ab02917bc4613",
+ "sha256": "10qcggakqv4fm96mjz72x7rrvgphizdnd4n03gm3hhvc2yw3qma9"
}
},
{
@@ -64535,15 +64662,15 @@
"repo": "okamsn/loopy",
"unstable": {
"version": [
- 20211021,
- 57
+ 20211101,
+ 2351
],
"deps": [
"map",
"seq"
],
- "commit": "49efa7e59deaa2a0385e420b18df905a2328f9c4",
- "sha256": "02qd7cg1g3812vflrxsrg9hd7yh60cyknn16l6cffn0iax2v2mdn"
+ "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
+ "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
},
"stable": {
"version": [
@@ -64574,8 +64701,8 @@
"dash",
"loopy"
],
- "commit": "49efa7e59deaa2a0385e420b18df905a2328f9c4",
- "sha256": "02qd7cg1g3812vflrxsrg9hd7yh60cyknn16l6cffn0iax2v2mdn"
+ "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
+ "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
},
"stable": {
"version": [
@@ -64655,8 +64782,8 @@
"repo": "emacs-lsp/lsp-dart",
"unstable": {
"version": [
- 20211009,
- 2036
+ 20211113,
+ 1440
],
"deps": [
"dap-mode",
@@ -64666,8 +64793,8 @@
"lsp-mode",
"lsp-treemacs"
],
- "commit": "e2f4ee0d3a88956afdd8515a055678b06f947bf0",
- "sha256": "0ma0q36q7i0bxbxx525h8s0y0p63pc1hnc5bidbdykrp3hlxw50c"
+ "commit": "9c3ba0a27e8ad3b7fa16c553d8a1815db82b8638",
+ "sha256": "13f6a9fkhasdzh4y5rix8j151csj1x6y2qlld6lvbxgpln19zwz2"
},
"stable": {
"version": [
@@ -64854,8 +64981,8 @@
"repo": "emacs-lsp/lsp-java",
"unstable": {
"version": [
- 20211017,
- 1826
+ 20211114,
+ 1305
],
"deps": [
"dap-mode",
@@ -64867,8 +64994,8 @@
"request",
"treemacs"
],
- "commit": "2b789750b272c85e838b9fc4e3d4f1d2eff34b5b",
- "sha256": "1sqv15mbv9f6pw995jrmw3wqr16pkrkm83vgabc0wi7j3dkz1cx7"
+ "commit": "3246272b43659ce3020e6f47cd3eea17432b389a",
+ "sha256": "0kz2bhnijar7dkyqydfq66xp8isf90paaqy0kwzjrb9ss0bglsba"
},
"stable": {
"version": [
@@ -65043,8 +65170,8 @@
"repo": "emacs-lsp/lsp-metals",
"unstable": {
"version": [
- 20210914,
- 1821
+ 20211112,
+ 1442
],
"deps": [
"dap-mode",
@@ -65056,8 +65183,8 @@
"scala-mode",
"treemacs"
],
- "commit": "695291761b2a3db734c3f53bb7fc4acfe0a5eb94",
- "sha256": "0kg51yjrjrmsz78aj3ahbk2knrn8ccz4ccs894p8li6vz3gxm2fh"
+ "commit": "38dda2c22db66547d99e3cfa6b7e76c42e7c6b5a",
+ "sha256": "0p2pz6272h2rbb1si9psb4rh92mahlcr58slkm2mwqjwwbi5hfjl"
},
"stable": {
"version": [
@@ -65087,8 +65214,8 @@
"repo": "emacs-lsp/lsp-mode",
"unstable": {
"version": [
- 20211023,
- 2009
+ 20211115,
+ 807
],
"deps": [
"dash",
@@ -65098,8 +65225,8 @@
"markdown-mode",
"spinner"
],
- "commit": "6157b3dde2c56f734a0789225240c521acdf2c7c",
- "sha256": "0p4lab475h0s4269zyg0ggnvx3mgqw6xix05a5nyf3jc441cfdjq"
+ "commit": "a7effcc79114e91e74f06ef3a7e078bafba05c2a",
+ "sha256": "09kjprvbdcv6h27fi24bfg0yl37djmfkic3a3ymfzl2r52gfkchv"
},
"stable": {
"version": [
@@ -65246,16 +65373,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"
}
},
{
@@ -65367,14 +65494,14 @@
"repo": "merrickluo/lsp-tailwindcss",
"unstable": {
"version": [
- 20211003,
- 305
+ 20211117,
+ 321
],
"deps": [
"lsp-mode"
],
- "commit": "8b45d5ab6ad41f881ef52983d6906193736e6f41",
- "sha256": "07ggss18zvmxv7r2x3m5x07c994sjwq0bfjjq50j7kfnd53bmb4h"
+ "commit": "bee8bf1f6707362ace02563b4dfc481e7452f936",
+ "sha256": "0rvwp8859p0byypy83mw42akjvv54ifx0gd3f4vb9vvp879rmsfi"
},
"stable": {
"version": [
@@ -65433,16 +65560,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": [
@@ -65953,8 +66080,8 @@
"repo": "magit/magit",
"unstable": {
"version": [
- 20211019,
- 1404
+ 20211115,
+ 1701
],
"deps": [
"dash",
@@ -65963,8 +66090,8 @@
"transient",
"with-editor"
],
- "commit": "aba0a596115b42fbd60347d893bcc319020ce5a2",
- "sha256": "128jni29ka15wnkmwp5s3pnlwxvfq3g961f7zg1c72k1yh3crq3f"
+ "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
+ "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
},
"stable": {
"version": [
@@ -66035,6 +66162,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",
@@ -66311,8 +66456,8 @@
"libgit",
"magit"
],
- "commit": "aba0a596115b42fbd60347d893bcc319020ce5a2",
- "sha256": "128jni29ka15wnkmwp5s3pnlwxvfq3g961f7zg1c72k1yh3crq3f"
+ "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
+ "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
},
"stable": {
"version": [
@@ -66479,8 +66624,8 @@
"deps": [
"dash"
],
- "commit": "aba0a596115b42fbd60347d893bcc319020ce5a2",
- "sha256": "128jni29ka15wnkmwp5s3pnlwxvfq3g961f7zg1c72k1yh3crq3f"
+ "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
+ "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
},
"stable": {
"version": [
@@ -67275,11 +67420,11 @@
"repo": "minad/marginalia",
"unstable": {
"version": [
- 20211016,
- 117
+ 20211114,
+ 1401
],
- "commit": "86ac625169041cdc706c5e39cae0bf314c042473",
- "sha256": "1i38nxhqp9j3hrc0a23gjqds2v04vswzysw378linb7fyhylz7vv"
+ "commit": "8b24ffc91222f8a61f8f2aa3c3662198c7d74de9",
+ "sha256": "0kpa0h53jk01x786s8lw7ibcrb78h9ndah9i7lvr6jx0r6v30vkq"
},
"stable": {
"version": [
@@ -67910,20 +68055,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"
}
},
{
@@ -68311,16 +68456,16 @@
"repo": "meow-edit/meow",
"unstable": {
"version": [
- 20211024,
- 1408
+ 20211116,
+ 1952
],
"deps": [
"cl-lib",
"dash",
"s"
],
- "commit": "26c4aa2797b4ce1b24aa83e06d0b82d94e4cea15",
- "sha256": "0m7xpg719n6zsbh82k1i7f2p9nd54avxywrypla3wk3kvjfdc1z3"
+ "commit": "f1c81c35141e6c669a36b5ebcc04ead8cf7d7364",
+ "sha256": "1353qfvind0xwdl7ig2hb36236bdfv242kij5lwy7z6kqg1d6z0s"
}
},
{
@@ -68334,8 +68479,8 @@
20210720,
950
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
+ "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
},
"stable": {
"version": [
@@ -68364,8 +68509,8 @@
"auto-complete",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
+ "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
},
"stable": {
"version": [
@@ -68398,8 +68543,8 @@
"company",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
+ "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
},
"stable": {
"version": [
@@ -68461,8 +68606,8 @@
"iedit",
"merlin"
],
- "commit": "e4791e22986993c36c3f5c91e8dff93494cc232e",
- "sha256": "16hkwzsw3igb9ybcjmbmxhrhgy78m8465fv3vys7w3783w6bzkxx"
+ "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
+ "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
},
"stable": {
"version": [
@@ -68714,14 +68859,14 @@
"repo": "ianxm/emacs-tracker",
"unstable": {
"version": [
- 20210207,
- 1100
+ 20211026,
+ 1347
],
"deps": [
"seq"
],
- "commit": "e0ddd7a17da899fa85b1d49f1260042f8caa0612",
- "sha256": "0k9lk2z8rnc2pa4wb2afj9byfryqlnw5hg1vs3bx6f0hs8rwa8yh"
+ "commit": "115f6de4a01b9e10936b7e6d1fdadd3770bae391",
+ "sha256": "11jdk260j9axi4f852vzgzqfb0kpl3hry02wfbhba3qp5bff2j7m"
}
},
{
@@ -68819,8 +68964,8 @@
20210131,
2152
],
- "commit": "b46db59948c9e0d47b613931fd62fac0c4a75388",
- "sha256": "1jgxp9zcnjnyk4wg4h50glmf18x5hwy8p97d530rycbvv4kpxnh3"
+ "commit": "0652273fe1bfbeb165715613e00583b96ed07c2d",
+ "sha256": "1qr1zg0ppl6xlg91a21j4dlbysglwyjs8x139b2gyf95xlfkxpkw"
},
"stable": {
"version": [
@@ -68846,8 +68991,8 @@
"deps": [
"calfw"
],
- "commit": "1cd9cbc7f8cfe40833d1af726644ae45a3d07dc0",
- "sha256": "1cm7y1nfbl8625rpk5i9zcmp9p6rzqdzxy9wcjs8yrdfsc0biq3q"
+ "commit": "67f9596dcd43b7ece3ab6e7a6ce8dc18a4851fe8",
+ "sha256": "01is2x9yfijxz0w7h7nrygkk0dkxnz0a3p3w38kvariqis8vbhl0"
},
"stable": {
"version": [
@@ -69222,20 +69367,20 @@
"repo": "tarsius/minions",
"unstable": {
"version": [
- 20211022,
- 2311
+ 20211110,
+ 142
],
- "commit": "3cc45f82cb50a4c895fe5df2ed69e07481ea131b",
- "sha256": "0pl0lyzwb2ngqbh6kkx4kr6im19kqmnkpybss353947vl2njlbd6"
+ "commit": "fca3ba548dccc6e553affca8068c9aecb6a9a789",
+ "sha256": "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"
},
"stable": {
"version": [
0,
3,
- 6
+ 7
],
- "commit": "1be68e8571336672d6cbec86246d1bf7844976be",
- "sha256": "0lg704kwc851spp69745np8hsk0h6rl2hvfpid0j412278ds1qi8"
+ "commit": "fca3ba548dccc6e553affca8068c9aecb6a9a789",
+ "sha256": "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"
}
},
{
@@ -69336,11 +69481,11 @@
"repo": "hlissner/emacs-mips-mode",
"unstable": {
"version": [
- 20180502,
- 1457
+ 20211114,
+ 1645
],
- "commit": "75152fc78baa762af4f83602f6cb3c8b9bcebca3",
- "sha256": "1bk1jfqwwrq3jr6zasyjaz16rjjqbihrn7kakgfk3szv6grvsd7p"
+ "commit": "5676174bea9a5780ddd33d2d8111b8678dfa4e99",
+ "sha256": "0nlxhchcy3swmyfzdd8qmdzq05a4lzlgs1psnsvfjbbi9w8g8w5v"
},
"stable": {
"version": [
@@ -69825,15 +69970,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"
}
},
{
@@ -69883,11 +70028,11 @@
"repo": "protesilaos/modus-themes",
"unstable": {
"version": [
- 20211023,
- 1952
+ 20211114,
+ 1209
],
- "commit": "45b92cf80505db759b38316ea32a877517c78b21",
- "sha256": "13kvsvsc19asmp31ncfj53jdm7kfamdawrqxar9ndzx4a65i60wp"
+ "commit": "a70c6d0f752859c6de2c175dd9b71a66bf28ed97",
+ "sha256": "05l919641qn2dm6b328i6ymb2xgc42jbvpdvnwypi9brydnz7zm9"
},
"stable": {
"version": [
@@ -70143,11 +70288,11 @@
"repo": "caffo/monotropic-theme",
"unstable": {
"version": [
- 20181015,
- 1230
+ 20211116,
+ 1328
],
- "commit": "36df566aa8225e303f6c9d90c00740dd678a415e",
- "sha256": "05n8s3719f6yrh4fi5xyzzlhpsgpbc60mmfmzycxlb4sinq9bfks"
+ "commit": "f32a04b5bfee9cbcce4b223f17228d1142a28211",
+ "sha256": "0kfgj6h3jvivbssh27fi4nyqfqrbj6das79i6syywwqf200h29rl"
}
},
{
@@ -70230,11 +70375,11 @@
"repo": "tarsius/moody",
"unstable": {
"version": [
- 20211024,
- 2312
+ 20211031,
+ 1815
],
- "commit": "78dd308a079115267e9e31f3d5e774d1f3d6399f",
- "sha256": "1y9vrwhzwmb5apgdx3qfqwxgf3wza51cxpjkf1f9m4x5pwmrlzpw"
+ "commit": "5ce7cc070ff5a295b1cc4b15b94698447f9596ae",
+ "sha256": "0yrxdxd3iv6vmym8fwp1d1r3bliid5my3a9720pdbhd887i6m4bx"
},
"stable": {
"version": [
@@ -70518,8 +70663,8 @@
20210306,
1053
],
- "commit": "d0d8a87c1ef19b7bd1d2c040e4ef38951b07fbd0",
- "sha256": "0xzjfrn0m8mc6k8vrggrf50x0ssbb9yq9c5qnval8gk8v78rpyl5"
+ "commit": "3dc692847d53e209ef9010791c3ab5ac06fd979b",
+ "sha256": "0pcf2vnq38jdnsg8vz92pqsx7qd0r9x8jv5kfqk9br153vsh6xgd"
},
"stable": {
"version": [
@@ -70992,14 +71137,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"
}
},
{
@@ -71078,11 +71223,11 @@
"repo": "wavexx/mu4e-query-fragments.el",
"unstable": {
"version": [
- 20200913,
- 1558
+ 20211030,
+ 2307
],
- "commit": "6a81d43fcbdc51c2fc47d88f4fd8f25d8f906b79",
- "sha256": "0sdjkxb7f31bsi1vj6vn2aw1lwq026sz782ys92zprncjp2mkizp"
+ "commit": "8d93ede3772353e2dbc307de03e06e37ea6a0b6c",
+ "sha256": "0pl9hiwl5snpw9cfga0v9ypw83mz4nw6754whd4f37fs9xc6df31"
}
},
{
@@ -71199,14 +71344,14 @@
"repo": "ReanGD/emacs-multi-compile",
"unstable": {
"version": [
- 20210923,
- 233
+ 20211113,
+ 2119
],
"deps": [
"dash"
],
- "commit": "03ae81739e44b70903dcdaae86a5ccaecc73eb9b",
- "sha256": "1qvlf7f1wjlai25a09fnir3gsida3zpnr8vfvv687lxvngf7r53r"
+ "commit": "360e44b200d07da379c906856d37613d0f06a9ae",
+ "sha256": "0z2b26qr712j4745wlnqisc53fhh2gh088j6024b00n006fr1lzq"
}
},
{
@@ -71392,14 +71537,14 @@
"repo": "magnars/multiple-cursors.el",
"unstable": {
"version": [
- 20210323,
- 1128
+ 20211112,
+ 2223
],
"deps": [
"cl-lib"
],
- "commit": "588daf8c520f4545323e36b8900f02693ddcf5d3",
- "sha256": "0yinp3148sa72ckmaycgfy7sw3pccz6h5bl7kiz5j54hfk66hsxk"
+ "commit": "8a60fc7ef0ae6e5ca089a7c95264cd0ae83e7274",
+ "sha256": "14yayh8hmv00f27kgz5y57z035ccv94cmsgqpyl15p1vnwiq2if3"
},
"stable": {
"version": [
@@ -71440,14 +71585,14 @@
"repo": "zevlg/multitran.el",
"unstable": {
"version": [
- 20211016,
- 958
+ 20211027,
+ 1833
],
"deps": [
"cl-lib"
],
- "commit": "8b1c9874dfa65917d1bc6044bc210cd0001723cc",
- "sha256": "1mi5f90nicmhsm0wxqwn1rliq3cb9hihxqw7scp9zd2ajrai37n4"
+ "commit": "910f4c929e1d9c1844ddc467f72eef2e03aa3f97",
+ "sha256": "13lmhp2vm953s4phqdd119kp7s3p0kb3kqz4z6g3ga6m6py3gq3i"
},
"stable": {
"version": [
@@ -72494,14 +72639,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": [
@@ -72857,8 +73002,8 @@
"repo": "nim-lang/nim-mode",
"unstable": {
"version": [
- 20191219,
- 847
+ 20211102,
+ 917
],
"deps": [
"commenter",
@@ -72866,8 +73011,8 @@
"flycheck-nimsuggest",
"let-alist"
],
- "commit": "d832d6b1fb5e69fedcdddf442d62251dd0f1f489",
- "sha256": "0m0khxcnq6whhxvblqyxrz21xfnpfjg4c8dn4x4i080dhmnmbzka"
+ "commit": "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8",
+ "sha256": "0jjrjsks3q8qpipxcqdkm8pi3pjnkcxcydspbf0rkvy3x6i5mwkv"
},
"stable": {
"version": [
@@ -72893,11 +73038,11 @@
"repo": "m-cat/nimbus-theme",
"unstable": {
"version": [
- 20211014,
- 1848
+ 20211115,
+ 430
],
- "commit": "b9e383b4fcc7a3232f9943aed29586a760602a1d",
- "sha256": "1kmcpndqh4072nkkji2vxd2br0wyp4ih3b7r4rx90mrimpdvcbrm"
+ "commit": "fe8ebe24cecb0181f49446de0a0faf3cd7630747",
+ "sha256": "1c7y0b880572sxjqqsqf521yhb1jfhl4i7sm4nfysa85bnn6k5n2"
}
},
{
@@ -72911,8 +73056,8 @@
20181024,
1439
],
- "commit": "0cd88287a4cd77d11c92c7a9b44bb15fb787a1ee",
- "sha256": "0c93b83zc1x22bq04fnka497qi0v4bs57nvsz9gbanqxng4b4gf7"
+ "commit": "e5935b63757f3a788bc56d2c7afd9e390daf2f07",
+ "sha256": "0arrxdpf4mcbr3mhl5955xiyw8772r571hvamacdln3cz044lr3p"
},
"stable": {
"version": [
@@ -73010,14 +73155,14 @@
"repo": "NixOS/nix-mode",
"unstable": {
"version": [
- 20211019,
- 1523
+ 20211109,
+ 1805
],
"deps": [
"magit-section"
],
- "commit": "1ac42cd103ba11c37e8566e240a2272966e6f813",
- "sha256": "11s98jjqkk7pfmqb4a99ilvp6w3m8vqr1df65lpwjirlyf2lvw2y"
+ "commit": "e7bf2e4cc49e7a12265714dfaf5e286bfbc1e87f",
+ "sha256": "0ym70i1jndm12av9jzq5qq3vr2d5cjh5q95vq22whiah0svbbpxy"
},
"stable": {
"version": [
@@ -73142,15 +73287,15 @@
"repo": "hlissner/emacs-nlinum-hl",
"unstable": {
"version": [
- 20190301,
- 2117
+ 20211112,
+ 1241
],
"deps": [
"cl-lib",
"nlinum"
],
- "commit": "dc6b365a58e06c7d637a76a31c71a40b20da8b56",
- "sha256": "1fvvyc77iggil9mzy8hd4vx8xw96bkfx6pmlb9ami428qp8r45g7"
+ "commit": "22f8d75ecdaab67e0d6d0d2da4766358456ca4f5",
+ "sha256": "18gpanlv7cfjzbd952a987ac3i9wn5ss7myvxz798al3jrivv9dv"
},
"stable": {
"version": [
@@ -73213,16 +73358,16 @@
"repo": "dickmao/nnhackernews",
"unstable": {
"version": [
- 20210921,
- 1131
+ 20211031,
+ 1221
],
"deps": [
"anaphora",
"dash",
"request"
],
- "commit": "4e584d4da81c400de145dbb7a58e63819cbaf340",
- "sha256": "0z5bww7cmlri2hn3fz3yad0scbsnhhddi21f50cmhdghgn1iaw41"
+ "commit": "34d82e2c2e4c190b85e751dd3f295daa264baa55",
+ "sha256": "1ivmybr94rwrdgxp5d761yy8hnhcdwmiqkhxnyk1bbbyd0a1kxj4"
}
},
{
@@ -73248,8 +73393,8 @@
"repo": "dickmao/nnreddit",
"unstable": {
"version": [
- 20210912,
- 236
+ 20211116,
+ 1718
],
"deps": [
"anaphora",
@@ -73259,8 +73404,8 @@
"s",
"virtualenvwrapper"
],
- "commit": "cb22a8480e9688f16f3764953cebebe64df31ccf",
- "sha256": "0qpy3xymzryncbiz4cay4bzmmarbs575dgh3db2iibaffwb4qb0x"
+ "commit": "7347ad1f3db7351c2e7f9a06d2ca8873130dbbfb",
+ "sha256": "178sq7rsghqhmhjdxixrybls00g7mp6wbmsx9lzg8c0ywpr9n332"
}
},
{
@@ -73306,14 +73451,14 @@
"repo": "emacscollective/no-littering",
"unstable": {
"version": [
- 20210825,
- 356
+ 20211110,
+ 1900
],
"deps": [
"cl-lib"
],
- "commit": "dcc96cbf5f018a91d406926d3b69715847ef665a",
- "sha256": "1c6nq2sykbsjy30zakfpny503644bbwgb4pxhfsd4wywj5yyzw66"
+ "commit": "4a7bcaf077d049931120255edf476f34ced8c73d",
+ "sha256": "0p8jm5fms4krij7ydhrj2jwayyx6979bdq2w7v88ybk6b0md9yw1"
},
"stable": {
"version": [
@@ -73611,11 +73756,11 @@
"repo": "MetroWind/notink-theme",
"unstable": {
"version": [
- 20210816,
- 2337
+ 20211109,
+ 2122
],
- "commit": "ede878ee06d4f94b5819ed3ccffe121823fbcf44",
- "sha256": "0iyxdbdgv1d3hflndfrbp3zbafa2zn3kpwj2lp32rm9sh3bcp79c"
+ "commit": "fa26294a43431ac7b42931c44c10e22813fe1ce3",
+ "sha256": "0wnkjncgdhak3j34b3rmnz0n06f4yx35khajjzlzyh91j2f14j6m"
}
},
{
@@ -73626,19 +73771,20 @@
"url": "https://git.notmuchmail.org/git/notmuch",
"unstable": {
"version": [
- 20211019,
- 1143
+ 20211030,
+ 1819
],
- "commit": "93104f0d9de4fa2919896a55dfdd207bbaf22589",
- "sha256": "0dvxz3djl50cwz9j4sm95z269ypmkmh0n0365l7jhsqy91lbp7q3"
+ "commit": "fc3c79dd37d4bae938a5d0a1d7773bea48dd09b4",
+ "sha256": "02bv1fvbww9gk3phpd7ifzxfzjxm17k7ssd3ddizr6yvmkpsz7h0"
},
"stable": {
"version": [
0,
- 34
+ 34,
+ 1
],
- "commit": "f25e48e0234a050cab38306a066605a0f8bd3d12",
- "sha256": "08k7slmq894fiwkfc5bfqjckfdj8lb1b07cmmz6g5yr87yyjkmll"
+ "commit": "6858c365956ba26b42721093707e5a57ca8a6b93",
+ "sha256": "1bzcnly2xhyfw35k277i8qmw2gdy35jvkriwcyv9y3g7aicbqcc7"
}
},
{
@@ -73965,37 +74111,6 @@
"sha256": "1l07nrlfd5qj8jnqacjba7mb6prapg8d8h3881l3kb66sn02ahgy"
}
},
- {
- "ename": "nroam",
- "commit": "55bc37011ae1754549b910be84fa25ca28a8e6fe",
- "sha256": "0g6d4nhj08hr6b6aiy1mlszz1k90vk3bw4kgnwzxmlmv43qxbcx4",
- "fetcher": "github",
- "repo": "NicolasPetton/nroam",
- "unstable": {
- "version": [
- 20210325,
- 2015
- ],
- "deps": [
- "org",
- "org-roam"
- ],
- "commit": "9a76f16d3fdd49a1733e5f2777036f1f83068a40",
- "sha256": "1lf56iq7iy545q8pcq4scvk8ialkw8nxc7gn97jyihpkxfhq7fi3"
- },
- "stable": {
- "version": [
- 0,
- 9,
- 0
- ],
- "deps": [
- "org-roam"
- ],
- "commit": "c150603a25445d65b7b08d658793a6019fd763ea",
- "sha256": "0qip0vhyvif5az7zph1m41gwamz84v01ay9qzicydzbizhzp4n5i"
- }
- },
{
"ename": "ns-auto-titlebar",
"commit": "d22ebb5ef16df0c56d6031cb1c7f312dca514482",
@@ -74432,8 +74547,8 @@
"deps": [
"axiom-environment"
],
- "commit": "7d72e6319b98b334f74b78f3d4151e92fb7dcbad",
- "sha256": "1hwcndb1x3i51l0kvzk4mj6sil8h10mxmazic9zvwjhia9qz9hz3"
+ "commit": "3266c5b2e4865337da86043b53a4e6609dbc8308",
+ "sha256": "11k53vvw5df66f54mh3zkghspmi7zsgls3mlkfvl19hz2z1pyhwq"
}
},
{
@@ -74905,8 +75020,8 @@
"deps": [
"julia-vterm"
],
- "commit": "3e7ff901687c320869c5e17e3273185af68e8cd6",
- "sha256": "0i155p3k2xf0p00xazqjw4llylb13svgad9a9m6as6lcvrvc0zsp"
+ "commit": "e04ee53d67cbd715c2d84fe5bc367526edfadc74",
+ "sha256": "18866agjrkx2gv38zr14mhf3rlvjdjvn3i8hxg12lrbv6q4rn8aq"
},
"stable": {
"version": [
@@ -75073,6 +75188,24 @@
"sha256": "12sinii7i917v1f3czvmc0rrwk3ksr1ls7wv4yvv9f8jdkzr0msm"
}
},
+ {
+ "ename": "ob-php",
+ "commit": "a3ac7a1d9390785abbd006956846d4f67f89dd9f",
+ "sha256": "0n6m6rpd0rsk6idhxs9qf5pb6p9ch2immczj5br7h5xf1bc7x2fp",
+ "fetcher": "github",
+ "repo": "stardiviner/ob-php",
+ "unstable": {
+ "version": [
+ 20211109,
+ 146
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "3699808eb1ba56268ccc2e366151183e91e8c711",
+ "sha256": "0m0qgssa0rxh7apcxr7lz0wi5vsrgnsysjw0zj2mk6fz1drg02dw"
+ }
+ },
{
"ename": "ob-prolog",
"commit": "fb87868cd74325f0a4a38c5542c264501000951d",
@@ -75097,6 +75230,24 @@
"sha256": "0g25nn2h7djgc9rp59spx9096jdypsizd0vfzwj96cpq90lkysjx"
}
},
+ {
+ "ename": "ob-redis",
+ "commit": "a3ac7a1d9390785abbd006956846d4f67f89dd9f",
+ "sha256": "1xsz4cc8cqx03ckpcwi7dc3l6v4c5mdbby37a9i0n5q6wd4r92mm",
+ "fetcher": "github",
+ "repo": "stardiviner/ob-redis",
+ "unstable": {
+ "version": [
+ 20210527,
+ 1336
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "ad31bf482a081b9c595a02ee6053c1426e3d8faf",
+ "sha256": "1w8wbiwzi8b3gm376yyynvc833skkvgylmrn803pnqsa1ij77jni"
+ }
+ },
{
"ename": "ob-restclient",
"commit": "28c1d3af3f8b2f598b80b03b64de5d15cbb3f13d",
@@ -75179,6 +75330,25 @@
"sha256": "00i7jszlfh67xzvqnp137aaia68rkk4ri5v0fs32ym10pcj8l4dp"
}
},
+ {
+ "ename": "ob-smiles",
+ "commit": "a3ac7a1d9390785abbd006956846d4f67f89dd9f",
+ "sha256": "0d07ph6mlbcwmw0rd18yfd35bx9w3f5mb3nifczjg7xwlm8gd7jb",
+ "fetcher": "github",
+ "repo": "stardiviner/ob-smiles",
+ "unstable": {
+ "version": [
+ 20210527,
+ 1401
+ ],
+ "deps": [
+ "org",
+ "smiles-mode"
+ ],
+ "commit": "9f1fed213eb194924ab7d12b9d6e1074578a791c",
+ "sha256": "1x0rq9l9j3khp47q2j9bnyhhj2xrs4zggw9p8rmmai165drh1i9r"
+ }
+ },
{
"ename": "ob-sml",
"commit": "d1b0fbe1198fa624771c2f61249db502de57942a",
@@ -75208,6 +75378,38 @@
"sha256": "1xx6hyq3gk4bavcx6i9bhipbn4mn5rv2ga9lryq09qgq2l9znclk"
}
},
+ {
+ "ename": "ob-spice",
+ "commit": "a3ac7a1d9390785abbd006956846d4f67f89dd9f",
+ "sha256": "0nhdcvq7yvprz4323836k507w0g1lh3rdfr6dqrbj29yvsqfw0x2",
+ "fetcher": "github",
+ "repo": "stardiviner/ob-spice",
+ "unstable": {
+ "version": [
+ 20210527,
+ 1355
+ ],
+ "deps": [
+ "org",
+ "spice-mode"
+ ],
+ "commit": "3c77144ecb059411441730bb47f6d5892b62d13d",
+ "sha256": "00cnym62hp0masikr3ndk2a0mpafjw0cjx0xavcq486w2xi7r8rm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "deps": [
+ "org",
+ "spice-mode"
+ ],
+ "commit": "790faa67b0c57ca76e8814a1fa60b4dd774412c0",
+ "sha256": "0rn3j88ry38500vfaj0myx148nd5kh1jwja6j221ydd6v5wqws6d"
+ }
+ },
{
"ename": "ob-sql-mode",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -75505,8 +75707,8 @@
20210923,
1348
],
- "commit": "15a6b28440320942e65a769e64bf3eb63cbc20eb",
- "sha256": "1x16rk29lhrb9rv6jbvdpc4swmyc31ixi8i7prnbslrfgrzw2f70"
+ "commit": "f2f50d6fb0371b85bde2eda15c440b68d46059ac",
+ "sha256": "01ac3k1kq6hy2n332775jlh2rg1pmqs8gvkx4qskxmpga87753m7"
},
"stable": {
"version": [
@@ -75699,26 +75901,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"
}
},
{
@@ -75855,20 +76057,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"
}
},
{
@@ -76608,26 +76810,30 @@
"repo": "eyeinsky/org-anki",
"unstable": {
"version": [
- 20210816,
- 2047
+ 20211108,
+ 751
],
"deps": [
+ "dash",
+ "promise",
"request"
],
- "commit": "4e70c6869181f020c6989f91f5e916e085ba73df",
- "sha256": "12iwllz9mbcv7q652v4bc1wkaml065wr7gvqm08kjds8hmc6f1pl"
+ "commit": "e6221b1654d34bc3a06500ae4706419bc176b575",
+ "sha256": "1xnqih87sipqd6q5cvgvw2mpn5m4j605bxhlbmpr4kzhni9vd9sh"
},
"stable": {
"version": [
0,
0,
- 6
+ 7
],
"deps": [
+ "dash",
+ "promise",
"request"
],
- "commit": "c86394d5fd8933d1b6cafbc1dbc36bf61bcc871e",
- "sha256": "0jg00hw5k6n7jf19vz1gf9599ad7skm399ng115hpywhas9ly01i"
+ "commit": "e6221b1654d34bc3a06500ae4706419bc176b575",
+ "sha256": "1xnqih87sipqd6q5cvgvw2mpn5m4j605bxhlbmpr4kzhni9vd9sh"
}
},
{
@@ -76706,14 +76912,14 @@
"repo": "yilkalargaw/org-auto-tangle",
"unstable": {
"version": [
- 20211010,
- 958
+ 20211115,
+ 543
],
"deps": [
"async"
],
- "commit": "50292af50d275846baa28e52d94eb8ef69c8d00b",
- "sha256": "0n0divfnk4635aanjm0b3swdjkcj4qxr0x95q05pdlb67s6lfp5d"
+ "commit": "ad3c332f062b5830e88b2ab13287a096ae434657",
+ "sha256": "05yrw59zrzxj1p8n65sk6mvy7jzik812mp9i2nsimwhlhn3si1pj"
},
"stable": {
"version": [
@@ -77856,16 +78062,16 @@
"repo": "marcIhm/org-index",
"unstable": {
"version": [
- 20210820,
- 519
+ 20211110,
+ 1423
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "7bc78ebf7c1c334e8cc73af44793a7eaffb66a99",
- "sha256": "0g1ahvsn50kr79q9bbrmgf78j1wfcibjp0j57qv7kxiqc71s7s19"
+ "commit": "399020d435d296014f92fa5f632d7481ee002661",
+ "sha256": "01q8w49dh9fpr2sc70p92cxjm66fnrrgnk4ba321aq9dlfmly2zg"
},
"stable": {
"version": [
@@ -77882,6 +78088,35 @@
"sha256": "0g1ahvsn50kr79q9bbrmgf78j1wfcibjp0j57qv7kxiqc71s7s19"
}
},
+ {
+ "ename": "org-inline-anim",
+ "commit": "340b9cfda110987a9306cc579dc7c2b53eeb605e",
+ "sha256": "1z245pws6y6z0gw7zwnljllg03jn2payv95fnriswymb86cdsdj0",
+ "fetcher": "github",
+ "repo": "shg/org-inline-anim.el",
+ "unstable": {
+ "version": [
+ 20211101,
+ 413
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "ea7feb924c991f3a2cdc4a70fb176eaceae87938",
+ "sha256": "1ai7zgx4sr7lzxnbkgj0dzd326dj18dzf0nqm12bza7bqbnck2dv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "1808574ff04ed66b7382247f3f13815fae2a4929",
+ "sha256": "1h1ha5njzv2ibp11dbka8lqx6d3q4hqjz11vzi4yi4x4ksiczqrc"
+ }
+ },
{
"ename": "org-inline-pdf",
"commit": "d069aa75232fff5d8b5db485f037191181d8c4b6",
@@ -77939,16 +78174,16 @@
"repo": "ahungry/org-jira",
"unstable": {
"version": [
- 20211002,
- 344
+ 20211114,
+ 1616
],
"deps": [
"cl-lib",
"dash",
"request"
],
- "commit": "24f2d83bc2f6a2b88b084090f877814e36dcf4da",
- "sha256": "0f5bij9gvgv8954v80xymvgnwf2ayxg7q4khmfd2djc5sbhj9ch3"
+ "commit": "01e6a7c17e210dac0608154dd69d637e9733498d",
+ "sha256": "19nljq73gnhjk7zz8y5wgap8j41jd7zifjcmfddrj27kmprw2h5z"
},
"stable": {
"version": [
@@ -78347,20 +78582,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"
}
},
{
@@ -79097,16 +79332,16 @@
"repo": "oer/org-re-reveal-citeproc",
"unstable": {
"version": [
- 20211024,
- 831
+ 20211028,
+ 1328
],
"deps": [
"citeproc",
"org",
"org-re-reveal"
],
- "commit": "f1f5a00fc8570234a8d421868b170aa9819c792a",
- "sha256": "0vxyqbh69l82xascygg0b4k915nq8dz4q77j03fr28xfmv550w5y"
+ "commit": "faa9ea387917b20bd1499ad90199ff3d417c00c2",
+ "sha256": "09yvfp4nh3g2jfs4v8jx70y6vyahypwvfjwrcqg5z0sqssbmxhnc"
},
"stable": {
"version": [
@@ -79131,15 +79366,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": [
@@ -79241,10 +79476,11 @@
"repo": "jkitchin/org-ref",
"unstable": {
"version": [
- 20211024,
- 2329
+ 20211110,
+ 1229
],
"deps": [
+ "avy",
"bibtex-completion",
"citeproc",
"dash",
@@ -79254,8 +79490,8 @@
"parsebib",
"s"
],
- "commit": "dec2acedecdd1253e8e02b7a4aaeb98cda37b5d4",
- "sha256": "1q3n08qxry4digpzf4n6gl2bymdg52kxna412acwrpjhbk1q1ca5"
+ "commit": "c87b4155cd2f60ca3a9bed2e6e366c1fa47aec33",
+ "sha256": "1idshb4g1d7ghdwwfyglvqqdjbdi3lrigkgq2rsbhrv7lpxcb8vn"
},
"stable": {
"version": [
@@ -79288,15 +79524,15 @@
"repo": "alezost/org-ref-prettify.el",
"unstable": {
"version": [
- 20210920,
- 634
+ 20211111,
+ 742
],
"deps": [
"bibtex-completion",
"org-ref"
],
- "commit": "29e05416f102ceca50ac8b118a19a16f9fe7eb2f",
- "sha256": "1215hrinfggvwz89i15lhpqraa3rhafnqx8iwvfzb0p9fyqfgwg5"
+ "commit": "0cecd7b2611bd9d282876ab46d490ce3e635ba86",
+ "sha256": "0jhspfp2mm69q7p1n986pal88ywm5zm9a6f2q073slnpiv4qwvz2"
}
},
{
@@ -79402,8 +79638,8 @@
"repo": "org-roam/org-roam",
"unstable": {
"version": [
- 20211022,
- 815
+ 20211114,
+ 913
],
"deps": [
"dash",
@@ -79413,8 +79649,8 @@
"magit-section",
"org"
],
- "commit": "2c75b194d8f75a8edaec77d503a47d1bf0c58f24",
- "sha256": "1ykpi5sbipm15y6bfr143vq4xpap0fl6d5w69ll42j2v5lwjh8x8"
+ "commit": "d93423d4e11da95bcf177b2bc3c74cb1d1acf807",
+ "sha256": "1az6i7031ff63gxz3wfdg00w1b57r10j12a6s5w3vgchsz896skm"
},
"stable": {
"version": [
@@ -79442,16 +79678,16 @@
"repo": "org-roam/org-roam-bibtex",
"unstable": {
"version": [
- 20211001,
- 1038
+ 20211117,
+ 1225
],
"deps": [
"bibtex-completion",
"org-ref",
"org-roam"
],
- "commit": "ed35826fdefda8b5a3f7156c19e892e5e2984ea4",
- "sha256": "135g8grk7dh0mcn76d7h35larm9z38dqjajs4kclzxkvsrmmfhxb"
+ "commit": "f399b85f5c38bd52f6eb41da18fccfb971a04fe1",
+ "sha256": "1da5yv204qvnw5rrczyi5k2982a03l9lygkqh4nbpknm8i7nhrbv"
},
"stable": {
"version": [
@@ -79468,6 +79704,44 @@
"sha256": "04vc2w7x2lyamp0qa1y274smsf9x2qxr1igrpz9f4y5ha5332px5"
}
},
+ {
+ "ename": "org-roam-timestamps",
+ "commit": "5141a8f5505427e8d5cb898015587972c2eb2f34",
+ "sha256": "060sjq9icpabdvi5dz0im7acdc8k21iprhpa6mga6zynpqhshsjs",
+ "fetcher": "github",
+ "repo": "ThomasFKJorna/org-roam-timestamps",
+ "unstable": {
+ "version": [
+ 20211108,
+ 943
+ ],
+ "deps": [
+ "org-roam"
+ ],
+ "commit": "f4de72c09cd2cace275ede19c39a56b68ca56b83",
+ "sha256": "050jnyqdnx4l946hl9cw08l4sk8z70c2063z08m4qh2sxrdh3nzw"
+ }
+ },
+ {
+ "ename": "org-roam-ui",
+ "commit": "eb639f7da134200de36c7f82431c200a5d01344b",
+ "sha256": "15i68kxmhl7iv10f4abamm4yg9qp5mafwinvv88clpa62yiv62i5",
+ "fetcher": "github",
+ "repo": "org-roam/org-roam-ui",
+ "unstable": {
+ "version": [
+ 20211117,
+ 1208
+ ],
+ "deps": [
+ "org-roam",
+ "simple-httpd",
+ "websocket"
+ ],
+ "commit": "2b167cd03f29714267057e4c0b437a4d6a01b299",
+ "sha256": "0k6i69afzswqvg4zl6b4m5gl7rrrr15yli2kn0g8nlfg0z2ay6dm"
+ }
+ },
{
"ename": "org-rtm",
"commit": "855ea20024b606314f8590129259747cac0bcc97",
@@ -80009,15 +80283,15 @@
"repo": "stardiviner/org-tag-beautify",
"unstable": {
"version": [
- 20210729,
- 929
+ 20210904,
+ 1643
],
"deps": [
"all-the-icons",
"org-pretty-tags"
],
- "commit": "69e7dcb50278ff0d7b220cda9562d4fe7e4db0ec",
- "sha256": "0wyqjzb2ph7092ghrnq0gxaf4r57mvcm0007kqpzqvknc3byd38d"
+ "commit": "bdf438847e05f1f9c08c69e93c3d5e717b589074",
+ "sha256": "09k7zmdcyy5mymij4a2wq6s6r60njkxrmiybbwvln322wl0ldgsh"
}
},
{
@@ -80137,14 +80411,14 @@
"repo": "Fuco1/org-timeline",
"unstable": {
"version": [
- 20210210,
- 2306
+ 20211110,
+ 1952
],
"deps": [
"dash"
],
- "commit": "af1b44e18048278a116da89faf138310f09c74c6",
- "sha256": "05gp5hqfwx668a0qvpx1wn8957qgn6g9jhrhiwgscnnxch2dp0c0"
+ "commit": "2b300abc8adc9955418fa2334f55e0610bff79f5",
+ "sha256": "09girkfkddn5xl5h6ji2hmsp2asip14cqrp8l9k9dpyhc4r9qp7g"
},
"stable": {
"version": [
@@ -80514,16 +80788,16 @@
"repo": "marcIhm/org-working-set",
"unstable": {
"version": [
- 20210802,
- 1435
+ 20211112,
+ 1600
],
"deps": [
"dash",
"org",
"s"
],
- "commit": "bced50755c45047565a3ab395c3b5e59ab15cc8e",
- "sha256": "155gxp0ysfwgiykw0zjzrm86pd9f2nz5whlcjm51apqd0439jjv9"
+ "commit": "729445496d94ea0050706007391817ef84dc0226",
+ "sha256": "0xa545wbh7kjbpry74x2bkw6rs9dshlajb5i17zc6v8zf400ds4r"
},
"stable": {
"version": [
@@ -81291,11 +81565,11 @@
"repo": "raghavgautam/osx-lib",
"unstable": {
"version": [
- 20191121,
- 1440
+ 20211113,
+ 1849
],
- "commit": "01cba80ccc20412759f87b8f7531580bb04ec9c1",
- "sha256": "0izkifcxk6cp9y4xcmpkhpd2vv1rqapxxa74ks12a55sflyxx36f"
+ "commit": "06744dae53b4ade99b0cd733823e1c8f6b0aa2c4",
+ "sha256": "0rfb9nh5xvfqpnk8k0hxaiv7ywzzzn8dpx3gxx6d2jn25glwp8ql"
}
},
{
@@ -81963,8 +82237,8 @@
"deps": [
"org"
],
- "commit": "14723c3cb93abec61a8bd35c6e4162754f902a6a",
- "sha256": "1dlf5iw32lc3lwrh5ssl2cisgd31s688s50z9w37pslqx2mi1nl2"
+ "commit": "3442d8cf1f60f28cf28daaca06f524dd660681f8",
+ "sha256": "123zg67bribf86i98rzvha1fyh72a12bkjrcgn06vph5vm5m08q1"
},
"stable": {
"version": [
@@ -82215,23 +82489,22 @@
},
{
"ename": "ox-pandoc",
- "commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
- "sha256": "0wy6yvwd4vyq6xalkrshnfjjxlh1p24y52z49894nz5fl63b74xc",
+ "commit": "864fce840ab2ebad3e1d5952b14a33019da3732b",
+ "sha256": "08xv4dp0ycchqfwr8syvf54r0575nivvy2x80h723plrq3faddvi",
"fetcher": "github",
- "repo": "kawabata/ox-pandoc",
+ "repo": "emacsorphanage/ox-pandoc",
"unstable": {
"version": [
- 20180510,
- 1338
+ 20211009,
+ 1414
],
"deps": [
- "cl-lib",
"dash",
"ht",
"org"
],
- "commit": "aa37dc7e94213d4ebedb85c384c1ba35007da18e",
- "sha256": "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"
+ "commit": "e76324ecf1b9be6353bf22ff5e13652ea2714674",
+ "sha256": "1x1klhj4570mzcnrdlj56qs9hi41nvdmghgj6ddwg6n0lm2kglys"
},
"stable": {
"version": [
@@ -82317,14 +82590,14 @@
"repo": "yjwen/org-reveal",
"unstable": {
"version": [
- 20211025,
- 1424
+ 20211114,
+ 1307
],
"deps": [
"org"
],
- "commit": "a995a9cf4ca578939cc36ea229d5c28ca6a3fd1e",
- "sha256": "0i6byp5bhlcfidhp5b7ddlm9xnw5rjfnkxvw3gqbwfhgzfdb2jc4"
+ "commit": "2adca68b2be22bcc05d5136b571472667ffab4fd",
+ "sha256": "1x0ksafnq2fsqg7vls2qdhnk189bfk3184303whircbs0rgiz6md"
}
},
{
@@ -82798,15 +83071,15 @@
"repo": "purcell/package-lint",
"unstable": {
"version": [
- 20210528,
- 2348
+ 20211107,
+ 1614
],
"deps": [
"cl-lib",
"let-alist"
],
- "commit": "10b6f3aab4f7c014ce339694255cf2c6dfd2bdea",
- "sha256": "0ps3v3v4279rbma8fscrpm13dimv2d93hgbq3fqcq4j9kfd25jzq"
+ "commit": "786d8b5f382ee5f254a783378e904305cc41367f",
+ "sha256": "19mrzb2ligkz8gyihlrqvb3wbzmsqkpn58kfcnx6dldvk4s2ykdn"
},
"stable": {
"version": [
@@ -82835,8 +83108,8 @@
"deps": [
"package-lint"
],
- "commit": "10b6f3aab4f7c014ce339694255cf2c6dfd2bdea",
- "sha256": "0ps3v3v4279rbma8fscrpm13dimv2d93hgbq3fqcq4j9kfd25jzq"
+ "commit": "786d8b5f382ee5f254a783378e904305cc41367f",
+ "sha256": "19mrzb2ligkz8gyihlrqvb3wbzmsqkpn58kfcnx6dldvk4s2ykdn"
},
"stable": {
"version": [
@@ -84362,15 +84635,15 @@
"repo": "vedang/pdf-tools",
"unstable": {
"version": [
- 20211004,
- 514
+ 20211110,
+ 513
],
"deps": [
"let-alist",
"tablist"
],
- "commit": "f68899cf0646255ca763f1144f7a9520e7cd46db",
- "sha256": "13f0c0a9cyhc2snshjqw8dl0hdnhb89fba6ffcv7avb2cwnxdpk7"
+ "commit": "a8847b75d3487d60e27762816bdbdd23b6dc1c11",
+ "sha256": "1dv244rxlgb56fzx1d1w9ngdjdrc7bgssshvkrfkxbwy69i803b3"
},
"stable": {
"version": [
@@ -84779,14 +85052,14 @@
"repo": "nex3/perspective-el",
"unstable": {
"version": [
- 20210920,
- 345
+ 20211103,
+ 522
],
"deps": [
"cl-lib"
],
- "commit": "ca6f778a3f1995600fc3d369bc636888812c80cc",
- "sha256": "0y1yyp1amvr6v8nji19m7yvksw0pai8ajs73v2345dcdz51flpfc"
+ "commit": "54dc30840c8019f387ccdb84bbab06ca2cf8f296",
+ "sha256": "1d2jmxfb6a93d9h4m7w482f3dbhhn2s6wiynzwxjl8af1l19f5aa"
},
"stable": {
"version": [
@@ -85242,8 +85515,8 @@
20210808,
1745
],
- "commit": "535aec81739e8e766e0420fda616efc8846f2911",
- "sha256": "1z4fds5priq8dsr8gm845ykk8blghm5kz5sspnpzclgk3prwkx26"
+ "commit": "d66b4986117f621c143bc295205619e036f291d5",
+ "sha256": "0jj0xmmb65shi8x5l32c0piin4dbiz94fsixzcn13x6ljsv8kd21"
},
"stable": {
"version": [
@@ -87114,6 +87387,40 @@
"sha256": "1qsgx1vh0xsk1wwpyx8lpnpa4879bzf0gil28v94sncbri2c6f7w"
}
},
+ {
+ "ename": "pomm",
+ "commit": "01cad9c9e0b9277160fbb7a5139157a1573ae641",
+ "sha256": "1jdinqimn7ybcwb61dwvpv9hizjkrbp0c59kh2nppw4m1lyw9ar6",
+ "fetcher": "github",
+ "repo": "SqrtMinusOne/pomm.el",
+ "unstable": {
+ "version": [
+ 20211110,
+ 1040
+ ],
+ "deps": [
+ "alert",
+ "seq",
+ "transient"
+ ],
+ "commit": "62832704ba72613af8dbe0a6bf6d4daa89a21e12",
+ "sha256": "06if507c163fia28zzax735r7mwlpa5vi0mmgddyn3vxsirnh4qw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "alert",
+ "seq",
+ "transient"
+ ],
+ "commit": "62832704ba72613af8dbe0a6bf6d4daa89a21e12",
+ "sha256": "06if507c163fia28zzax735r7mwlpa5vi0mmgddyn3vxsirnh4qw"
+ }
+ },
{
"ename": "pomodoro",
"commit": "0b5c2c50eb87952d01c1b338b7d3e4b3a4546555",
@@ -87273,11 +87580,11 @@
"repo": "karthink/popper",
"unstable": {
"version": [
- 20211011,
- 435
+ 20211116,
+ 624
],
- "commit": "6a2ddcb35432afb56f32e11518c2b6ae7795e8c0",
- "sha256": "0sv8bi34fbg0awi8maah5fs13s0wmzbvalq13z2zx9ybb8ivrsfi"
+ "commit": "4d58a6dbba5d488ff9ac9318e202d84da505e691",
+ "sha256": "0l4y8f6j6sfr91rqcdv0lx6bgzskpsamd4w4fb7lp6qghmm8iyvk"
},
"stable": {
"version": [
@@ -87541,11 +87848,11 @@
"repo": "tumashu/posframe",
"unstable": {
"version": [
- 20211025,
- 1411
+ 20211110,
+ 40
],
- "commit": "70ba4e77c114d980c0d87ed1f6b201188a3f8954",
- "sha256": "048gykchqwfcxnkd3n8f8s1grqg6p2c4wfpj1lfa411k0r9xj8pf"
+ "commit": "66b16a20a7b43f19c27487c475799200ad81b3bd",
+ "sha256": "06n9zwbz6hk3k49hw9xjnizaadvgl2s5aqmaaijzfxxm0h0gqh43"
},
"stable": {
"version": [
@@ -87824,11 +88131,11 @@
"repo": "raxod502/prescient.el",
"unstable": {
"version": [
- 20210724,
- 1756
+ 20211031,
+ 1908
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -87954,16 +88261,16 @@
"url": "https://gitee.com/shaqxu/prettify-math.git",
"unstable": {
"version": [
- 20211024,
- 419
+ 20211107,
+ 38
],
"deps": [
"dash",
"jsonrpc",
"s"
],
- "commit": "cd5d24d96cf63a2eaea16d5bd616f14d10eac325",
- "sha256": "16nbp2766yz8bcfakwghgypka8xf9vxq3m5pxwm8jjv2hb5bjcy9"
+ "commit": "b766824d60e95720e28917b648e4957d7923370b",
+ "sha256": "0rq75pzbklgk0bq6ah7xrsb2czq1vryfvavvi81iqpp89nik2nrh"
}
},
{
@@ -88385,8 +88692,8 @@
20211013,
1954
],
- "commit": "e411432a33cd82f8a9ff95471c91e9fe1833841c",
- "sha256": "03aiv70shxhcjcldahny7xxclnqdw5bf37f8496dxmzz0zx0v98j"
+ "commit": "69d44e5495185587ee8577f8b9d616063d6bd7f8",
+ "sha256": "1rv5zgbg003zhhjvikyv92pwjgl191ja14sba7hncs0pk580v075"
}
},
{
@@ -88507,11 +88814,11 @@
"repo": "bbatsov/projectile",
"unstable": {
"version": [
- 20210930,
- 1757
+ 20211116,
+ 700
],
- "commit": "7f64570d3e6829d767d340c8584f3e4f3472ee81",
- "sha256": "1a5a2xmnic27swm85rz44iymvym7jagwis25a3mzn9d5spsqaagy"
+ "commit": "31069dc31469e0d5cddb53126a2993432a22399b",
+ "sha256": "1l86gm0kkszkyi4srknc7vjn589x2pkqdcralw44zwhppx7fcy35"
},
"stable": {
"version": [
@@ -88772,16 +89079,15 @@
"repo": "waymondo/projector.el",
"unstable": {
"version": [
- 20210421,
- 1728
+ 20211112,
+ 1514
],
"deps": [
"alert",
- "cl-lib",
- "projectile"
+ "cl-lib"
],
- "commit": "7bbee0ef70817d52339119d4517dbbcbab930de6",
- "sha256": "0zmng37fl8df1d3i66fbkjssv0x0hq74x68p1j01gb8sfayw4dgf"
+ "commit": "1d0f2d307591ea50888d31dcae7e463e2ada1316",
+ "sha256": "0psmb4bsnm9wws8g3v2n78hkih6b80lzbv5v52640v94w74hfdp5"
}
},
{
@@ -88914,11 +89220,11 @@
"repo": "ProofGeneral/PG",
"unstable": {
"version": [
- 20211013,
- 1911
+ 20211109,
+ 1442
],
- "commit": "fd04605af1b07684da522c32d83ac346050926bb",
- "sha256": "017j3vcwlg6k2h76wbads6jxmnmxj19g4c42zs3mi2vwqhfvgdqx"
+ "commit": "2145c23f44a0951a14240d3b85a1a3d08aade9bb",
+ "sha256": "0pilv79a9mqgv2j7915b2lbl3ir1hhaj7xjysliwn6h7rb4b1csg"
},
"stable": {
"version": [
@@ -89021,17 +89327,17 @@
20211013,
1726
],
- "commit": "0707f2e7f556c8396d6027d0533ec3a56d1061db",
- "sha256": "0nna3s41hgysa8p4x65nswpxs1fdk5k41gn8vsf0gmaidm6fnh05"
+ "commit": "edc8a3182811cc39272549ff894793e1fff4aaab",
+ "sha256": "08yfcnra0c9jx3fkicxl558vzll7cnx5qn847lxqsjv4f1ms37m1"
},
"stable": {
"version": [
3,
19,
- 0
+ 1
],
- "commit": "17b30e96476be70b8773b2b807bab857fd3ceb39",
- "sha256": "0rx4r4d7hqr0gi3v90jbkm2lnkj9p37dhgwx9d0w7kgh3rvr4i7g"
+ "commit": "7c40b2df1fdf6f414c1c18c789715a9c948a0725",
+ "sha256": "1swpq2lkkgz5pwq6q3jn6xgkbaiq9dy20rvmrlghdp0fkfg2a011"
}
},
{
@@ -89334,14 +89640,14 @@
"repo": "hlissner/emacs-pug-mode",
"unstable": {
"version": [
- 20210503,
- 147
+ 20211114,
+ 1645
],
"deps": [
"cl-lib"
],
- "commit": "d08090485eb8c0488a7d2fbf63680dc0880c7d2f",
- "sha256": "1f6bhdr1a72x94dlz2i1fwwln8crc2mbpc2iq23hvsbsfmj7xfzp"
+ "commit": "73f8c2f95eba695f701df20c8436f49abadebdc1",
+ "sha256": "0kjjwyxdbaaagjd0zmav2xj4075c8qcs33x29zpyqfxwj4410gp3"
},
"stable": {
"version": [
@@ -89927,15 +90233,15 @@
"repo": "tumashu/pyim",
"unstable": {
"version": [
- 20211020,
- 612
+ 20211117,
+ 158
],
"deps": [
"async",
"xr"
],
- "commit": "d110c46907e3e9b78106498c86193786e49b2897",
- "sha256": "0ipz8pqqavzfmafbixakd82l4571jc0k9ay5idp3l7kmh4c6z3rd"
+ "commit": "a66e999435d9697a0d732576addf3c182fd363f7",
+ "sha256": "06pfpi2z48jhqanwlnq5d55xsnpmqhhrk64x15x7h01haf0wqy64"
},
"stable": {
"version": [
@@ -90086,6 +90392,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",
@@ -90097,8 +90418,8 @@
20210411,
1931
],
- "commit": "b6ca3b9d6f7ad42accdf90044628521bd711d1ec",
- "sha256": "09y452zk3bk57piqdnyzb7nkp1h540h1sb2rl6cr9rhjwfk60zch"
+ "commit": "b91cc8dbb47ce622b73c766b3a53da270bdb24e9",
+ "sha256": "0w7bc2lcrr4axs9s8mgymjy8gwdafc3dl4fl9amaqfbph0xm0arl"
},
"stable": {
"version": [
@@ -90340,6 +90661,29 @@
"sha256": "0zk6014dzfrb3y3nhs890x082xf044w0a8nmy6rlrj375lvhfn99"
}
},
+ {
+ "ename": "python-insert-docstring",
+ "commit": "520c410e04bc7c60bd8d2a4d5507ed0be0720030",
+ "sha256": "1hh95nhrpggmpqapkpnwgn7sdzvyfxr64smz6p2v2sn3q7lkrkqk",
+ "fetcher": "github",
+ "repo": "macurovc/insert-docstring",
+ "unstable": {
+ "version": [
+ 20211101,
+ 1653
+ ],
+ "commit": "4d729f5b574ffa3fce41ccbeee7b8bdb9d005174",
+ "sha256": "0gn12bm3w7819j67bnh1m3jkqqb37pdmkagbcwqp4mc74zbpf01m"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "4d729f5b574ffa3fce41ccbeee7b8bdb9d005174",
+ "sha256": "0gn12bm3w7819j67bnh1m3jkqqb37pdmkagbcwqp4mc74zbpf01m"
+ }
+ },
{
"ename": "python-isort",
"commit": "8b359787b5f0113793714fd9710fde831e7afee3",
@@ -90402,8 +90746,8 @@
"repo": "wbolster/emacs-python-pytest",
"unstable": {
"version": [
- 20210219,
- 1947
+ 20211111,
+ 1912
],
"deps": [
"dash",
@@ -90411,24 +90755,23 @@
"s",
"transient"
],
- "commit": "31ae5e0e6813de8d889103f7b8dde252b04b1ae4",
- "sha256": "1kf62adlm5nf7r3qar8h1cx11xxrz95bfqii62i9xqdi3i8z7b2l"
+ "commit": "e77469fcb727f1b63f0d921ed15b1631a6bd0cae",
+ "sha256": "1dgk8s4wdjckaiv20gnlj3p6xbxp8g9i7q26lmmzbf40ri2qq7hk"
},
"stable": {
"version": [
3,
- 0,
+ 2,
0
],
"deps": [
"dash",
- "dash-functional",
"projectile",
"s",
"transient"
],
- "commit": "10ad9afc840ac2d9d5616abf4bd92ab8fee2ce48",
- "sha256": "1lc5qlsznzw8hdcdwjwn8fcgfmqjvb1wplsr2gaxwvm8rbw22g1l"
+ "commit": "02cf74617cf54d85bd58c75b8fe64b6f8ea36aba",
+ "sha256": "1l7lyni2vjzgqsnysf4dgww0adhhsfmjc07dn1l65m9jjsr99x2g"
}
},
{
@@ -90597,8 +90940,8 @@
20211010,
1334
],
- "commit": "fea4e6101f320a95f2a375a5c805911a788f20aa",
- "sha256": "1dsigkg9zkymazgs24hjnn0f5ywvlxja2ycvqq13q0sb26qsh688"
+ "commit": "a2c51cd1d54d507ec1902bc5c7bc888fe5a23c8d",
+ "sha256": "0zikg9gbcdzjlm6kdg71i28zxic4k22iijfvf7x4dvx5pc8pw8f6"
},
"stable": {
"version": [
@@ -91022,11 +91365,31 @@
"repo": "greghendershott/racket-mode",
"unstable": {
"version": [
- 20211024,
- 1323
+ 20211114,
+ 1656
],
- "commit": "5b6ac3ff995004bc055c1d33cc65a02558a10599",
- "sha256": "1r5g9y573hrpgdqypaks3wmf322ff5pilfv2dm01ck9fkiy7rqy1"
+ "commit": "6f94ac6e67c3ee00454e8b7e6d96ab5e9614cdb8",
+ "sha256": "01d2jkg32c7gsh39gil0kjh615fw125dl4nqilfcg23zfc8wlaf2"
+ }
+ },
+ {
+ "ename": "rails-i18n",
+ "commit": "4be03fa1fece3bd2a77c1aed929ae3475ab602dd",
+ "sha256": "0jzj1l63yavwn0jxvm92hfxk1m2kyb6sf7kbn2k9v5lkq0iqpl3f",
+ "fetcher": "github",
+ "repo": "otavioschwanck/rails-i18n.el",
+ "unstable": {
+ "version": [
+ 20211026,
+ 1404
+ ],
+ "deps": [
+ "dash",
+ "projectile",
+ "yaml"
+ ],
+ "commit": "5d7a3e46d801668f53efc4c974b5f46b2cd28a0c",
+ "sha256": "1r4x4j5d0i4v27mj0cdx6s3qs3vk9v6blxmgnldmbv2ychyxzrnr"
}
},
{
@@ -91044,6 +91407,25 @@
"sha256": "1fh8wsb0pa2isr1kgh3v9zmmxq1nlmqwqk4z34dw5wpaiyihmk84"
}
},
+ {
+ "ename": "rails-routes",
+ "commit": "46ceb4276966bee63c91ee02d3cd66fdfdb7a312",
+ "sha256": "0wgs6jp9rkchdjri924r81rrk13z6midhi4x8bd9hjph138j95jz",
+ "fetcher": "github",
+ "repo": "otavioschwanck/rails-routes.el",
+ "unstable": {
+ "version": [
+ 20211108,
+ 347
+ ],
+ "deps": [
+ "inflections",
+ "projectile"
+ ],
+ "commit": "b1326e9f4ede6b3da0fada29697fa7f797d7576d",
+ "sha256": "017fcrnjhqp591q8j51b67qbb6idimy7w3mvlkshbj3pmxl0hzb2"
+ }
+ },
{
"ename": "railscasts-reloaded-theme",
"commit": "9817851bd06cbae30fb8f429401f1bbc0dc7be09",
@@ -91139,14 +91521,14 @@
"repo": "stardiviner/emacs-rainbow-fart",
"unstable": {
"version": [
- 20210803,
- 922
+ 20211114,
+ 905
],
"deps": [
"flycheck"
],
- "commit": "57fe85c0f03917f6867833636a5617cbfa663a29",
- "sha256": "1y97a876gsva2pr75b4psfs8hd26vd2drfsbfg79hazcqvr51c5j"
+ "commit": "aaaec8e20b3bde3a567baa501623c451f796a46a",
+ "sha256": "1mrq585wq4c23jv6fvphh03y4s8wjrh02dhd0l2369axl6bdslz7"
}
},
{
@@ -91442,20 +91824,20 @@
"repo": "thiagoa/rbtagger",
"unstable": {
"version": [
- 20211019,
- 1454
+ 20211026,
+ 2318
],
- "commit": "339ac47fe2448e1d391c9f415c9f701ff999a4b0",
- "sha256": "13idz1cvynj9y27mahayn33whr05sffa6yfbyzrzj0xk5gb3qrd0"
+ "commit": "351c4006ddacc2f66e6ff8c79d981613e9a8bd22",
+ "sha256": "1ycjw62wlnkbbanqrz6my6xrfffcs9rnf27ihvmwni5k2carv9p0"
},
"stable": {
"version": [
0,
4,
- 4
+ 5
],
- "commit": "339ac47fe2448e1d391c9f415c9f701ff999a4b0",
- "sha256": "13idz1cvynj9y27mahayn33whr05sffa6yfbyzrzj0xk5gb3qrd0"
+ "commit": "bbab9900c7b8cb406da662e4f99064e1a2de729e",
+ "sha256": "0cr32q67ap87b4acbglay0mx9mmpdm7h9byx2q21ad5p5ra1y17w"
}
},
{
@@ -91718,16 +92100,16 @@
"repo": "realgud/realgud",
"unstable": {
"version": [
- 20210522,
- 2151
+ 20211107,
+ 2210
],
"deps": [
"load-relative",
"loc-changes",
"test-simple"
],
- "commit": "7a70b27614c488be274898d0141ec82feb3a8d5a",
- "sha256": "116f94sslg1cd5cy5w25ygazdwrrlh85pfib7692a180vk6kz8g6"
+ "commit": "978b455d7da4dc41995192bfabc32092622651dd",
+ "sha256": "00kjkc8fpvcjapnrk2fmnxspn9p3z9b3niyrqnyzif3kzmdsqz1i"
},
"stable": {
"version": [
@@ -92178,11 +92560,11 @@
"repo": "ideasman42/emacs-recomplete",
"unstable": {
"version": [
- 20211006,
- 1406
+ 20211108,
+ 2240
],
- "commit": "8b794d194799468443252d9a54489b5beb01eb76",
- "sha256": "0712jasmpmphdr8xxdw03dz8p99js9wdc8lrcda3n5hq3g6i1yyp"
+ "commit": "9d64b65855464bd92ccecf93c19db8b1fc12d7a3",
+ "sha256": "1fixdmrpa9jbjmpqf201420lpg6wcgngzddz7h5c4j68gw1a7jd0"
}
},
{
@@ -92261,6 +92643,30 @@
"sha256": "08n3ah40gfgkbriwj2z3y0751vpvgz86qjdn6dxs4mghjrwr2545"
}
},
+ {
+ "ename": "recur",
+ "commit": "c59ae78dc09225b8def8757d52c52988708638fa",
+ "sha256": "0xss7rd8n4wwbn2ryb3anh5nxwz6zby834mgbqblsvll4dcfkdxz",
+ "fetcher": "github",
+ "repo": "ROCKTAKEY/recur",
+ "unstable": {
+ "version": [
+ 20211108,
+ 219
+ ],
+ "commit": "627d88f2695336245527fcc77f5728575ecf742b",
+ "sha256": "1di685jq65g7f8s8j6lflqj6mkp05hpi10y1vfnqh1xln2pijapc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "46d213633d5325113e857b1c212f2b2937cf29d5",
+ "sha256": "1p9phplk6pa6qdvgpbrya5b6jn7hbbbcs565f6jlswd26vjc087v"
+ }
+ },
{
"ename": "recursion-indicator",
"commit": "2c8ad93fcf71be990ab1b97c4fbe7526ce66ca69",
@@ -92980,11 +93386,11 @@
"repo": "tkf/emacs-request",
"unstable": {
"version": [
- 20210816,
- 200
+ 20211107,
+ 1907
],
- "commit": "68003b3f859724de621d0e5a8b0aae51ce708d1e",
- "sha256": "1xqxrr2law67zm68gxylxrhivashzl8prq21kl01hs4a4q87slja"
+ "commit": "3336eaa97de923f74b90dda3e35985e122d40805",
+ "sha256": "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"
},
"stable": {
"version": [
@@ -93011,8 +93417,8 @@
"deferred",
"request"
],
- "commit": "68003b3f859724de621d0e5a8b0aae51ce708d1e",
- "sha256": "1xqxrr2law67zm68gxylxrhivashzl8prq21kl01hs4a4q87slja"
+ "commit": "3336eaa97de923f74b90dda3e35985e122d40805",
+ "sha256": "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"
},
"stable": {
"version": [
@@ -93158,8 +93564,8 @@
20210923,
2234
],
- "commit": "94d2e8421fa14d0e3307d70e1d1e2db9d43b2f95",
- "sha256": "0c9z6316pdi30w63a4zqn3b84ciqgxfi7mal6rd3micxg6qpv27c"
+ "commit": "f59a7f5abf366145a2c9c1e9f0a2184139d2adce",
+ "sha256": "0war99vbim62l010gxq3l68ac5w13gs5lh24yn1rpnq2jfp4jn3r"
}
},
{
@@ -93177,8 +93583,8 @@
"helm",
"restclient"
],
- "commit": "94d2e8421fa14d0e3307d70e1d1e2db9d43b2f95",
- "sha256": "0c9z6316pdi30w63a4zqn3b84ciqgxfi7mal6rd3micxg6qpv27c"
+ "commit": "f59a7f5abf366145a2c9c1e9f0a2184139d2adce",
+ "sha256": "0war99vbim62l010gxq3l68ac5w13gs5lh24yn1rpnq2jfp4jn3r"
}
},
{
@@ -93434,15 +93840,15 @@
"repo": "dajva/rg.el",
"unstable": {
"version": [
- 20210912,
- 1227
+ 20211113,
+ 1958
],
"deps": [
"transient",
"wgrep"
],
- "commit": "fa7293df75e1a3f2fb26add6bc96058000e6fbe3",
- "sha256": "0a9xhfs1knxxqilpbpw3li8vipg248nqhpqq5d6sqqn7gfz4zmjb"
+ "commit": "47bda7ee2f3c14082f9dd468063d45667a9d5256",
+ "sha256": "0m1ykfx2yfhqbzv1ppj2p2dbi7c3kck7p1k7s8z6c955wnday5xc"
},
"stable": {
"version": [
@@ -94097,8 +94503,8 @@
20210313,
1541
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -94123,8 +94529,8 @@
"deps": [
"rtags"
],
- "commit": "cdff9b47fc17710aad7815652490c3c620b5e792",
- "sha256": "0mrb2dayd8ls56cjlp63315ai0ds09d4qsajgv5kks2gqqxbkrjb"
+ "commit": "db39790fda5c2443bc790b8971ac140914f7e9c2",
+ "sha256": "05cigdvlq5lfahr9a1z8rvlw2s99j4pha2in59pshz9ph8cqgq10"
},
"stable": {
"version": [
@@ -94610,20 +95016,20 @@
"repo": "rust-lang/rust-mode",
"unstable": {
"version": [
- 20211022,
- 1728
+ 20211116,
+ 2008
],
- "commit": "6e1004490f385d9410e53160204c0760b76b2230",
- "sha256": "0b94l19grb2w5lmz908sqhv6qmmjg9516hjqcs69n2rk8khxcq18"
+ "commit": "aadd1dd8f0780692aea1637569aeadfa8f78fd5a",
+ "sha256": "18qqwm05rhbw6bbkg6iifh2xhjww1psah32d7dzjjyc42kswj2ab"
},
"stable": {
"version": [
1,
0,
- 0
+ 1
],
- "commit": "d0c1ffa68d0ba0af0b35b761d2d73a2c1b4fc7a3",
- "sha256": "08gz7wq1las3bqqs8qhmhmncax4j6kjnyxpfzslby3b1dkclc7ig"
+ "commit": "d2b4cde98b660efd746d8853cf8ac04e4570e047",
+ "sha256": "1chb3a97cwf1pkxn8cm3wc35gfh9k55l7khg7pklmx36isr3csjv"
}
},
{
@@ -94657,8 +95063,8 @@
"repo": "brotzeit/rustic",
"unstable": {
"version": [
- 20211018,
- 1934
+ 20211112,
+ 1404
],
"deps": [
"dash",
@@ -94672,8 +95078,28 @@
"spinner",
"xterm-color"
],
- "commit": "d76d4128db2287ed5ff067634aac94970d99f438",
- "sha256": "078g4ig74y4sy6ki07pkw8n2qivdv6ijwf72i55imw01scpm0k5x"
+ "commit": "28b9b6a69ba67e9715b7feb6b3ed56e00ac08acb",
+ "sha256": "0q2695hwrjw3jzy4wg96ma5z8f7ijw08ssvmkbcn57a77wh1xk6v"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "let-alist",
+ "markdown-mode",
+ "project",
+ "rust-mode",
+ "s",
+ "seq",
+ "spinner",
+ "xterm-color"
+ ],
+ "commit": "814775bc7c0ca2cf9041b6d012bf656df7eb554b",
+ "sha256": "0nklqpd24s83ng34xrm4rp80sbylajikj6svz1c6j721pz9crxg9"
}
},
{
@@ -95162,8 +95588,8 @@
20200830,
301
],
- "commit": "5532563a6707187a990409fd5deca3e01a220d24",
- "sha256": "02664kfad9ahh8b3nlkp7fipkbn0ljryx2j2yx93kbaxi8lbq5zm"
+ "commit": "fc669b449c836d66dc9d542dad766e568952c986",
+ "sha256": "1i9aak2k8zzj2i1wj7xhi750rn8c4wsmcp95w3zabprwxwr790hh"
}
},
{
@@ -95546,11 +95972,11 @@
"repo": "ideasman42/emacs-scroll-on-drag",
"unstable": {
"version": [
- 20211022,
- 523
+ 20211104,
+ 259
],
- "commit": "d8582732d1eb03c7f6bba62f39ba66af365dde2c",
- "sha256": "19w6hlwm92mp45hrskp324m6qfhqvnpbphgdgkkikdr9n7c8wfg8"
+ "commit": "8962f5f8a79c9178a577732ddfbb333a101bc7fc",
+ "sha256": "157affz6jsar9gnj5nj8ks8zl3dyrwzq4j1g0njvcs4vpz5zf4p9"
}
},
{
@@ -95561,11 +95987,11 @@
"repo": "ideasman42/emacs-scroll-on-jump",
"unstable": {
"version": [
- 20211006,
- 1416
+ 20211104,
+ 51
],
- "commit": "a2d6996a36ee2d3d4d4426d1bea60b6717ded10d",
- "sha256": "0ixjwi3m0dmsivdqfm1bcs7rbp1cw0fhw4hgj4ym49p1acjhha5f"
+ "commit": "0cf26a15bb6278c4273ee53f6a8d7d790792fc29",
+ "sha256": "0ns1mxbfw5s7mimzqwxbi2sbbs6w60gi7z3l5hmxiv1qwdl0a8p7"
}
},
{
@@ -96020,8 +96446,8 @@
"prescient",
"selectrum"
],
- "commit": "027c2137a8d9e01a1d4c7b5e5d98da017dd2d48e",
- "sha256": "04hwfqia53bk2fi7kw1pzwi5v0rgimr15kw6mmjlvcmwk0c1mghr"
+ "commit": "292ac9fe351d469f44765d487f6b9a1c1a68ad1e",
+ "sha256": "0ywx7q41i9pzmfgwv83mz5z17gril2s0r7y77hbbriww5yy1ihx4"
},
"stable": {
"version": [
@@ -96198,15 +96624,15 @@
"repo": "twlz0ne/separedit.el",
"unstable": {
"version": [
- 20210930,
- 1319
+ 20211116,
+ 326
],
"deps": [
"dash",
"edit-indirect"
],
- "commit": "62c037e2ab1bfcce79ea3316b2fb70ffff291b3d",
- "sha256": "0a82mds1l7hnfkifirjq6mp2cdfdfkaxvz6dw4i8sqzygw1dn7dl"
+ "commit": "0a2dc1a22955fdd065f04dfdd5242f1b61b4a303",
+ "sha256": "1j1yd9d5hb5ryv0yx02lga0drgyfhkqwli5zrkrhili8h43g522d"
},
"stable": {
"version": [
@@ -96936,8 +97362,8 @@
20211024,
2053
],
- "commit": "18875b02c43cf88738d25d9fa114aa7c3d905ed3",
- "sha256": "1maz3adpkh1w0sxivy4fmhvh9a8giv91mbs23kxbc6zgjwnq0q0v"
+ "commit": "232a52eb5d7a9c3ca9f5983140578ddd86ba33a1",
+ "sha256": "0cz6d2msa3dxabbrd9vsm49s4g4f1a1cqi2bmzi96l327kbkzbqy"
}
},
{
@@ -96986,6 +97412,30 @@
"sha256": "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2"
}
},
+ {
+ "ename": "shenshou",
+ "commit": "8c4760dcd5eeb18604676989e460cfe84af1c39a",
+ "sha256": "0c7livcm6srj6ll9ibk0im6fxfjk74yi9x2mv5x02d2fzbqmy7m4",
+ "fetcher": "github",
+ "repo": "redguardtoo/shenshou",
+ "unstable": {
+ "version": [
+ 20211103,
+ 1010
+ ],
+ "commit": "5b9a400cafbf4778cdb4ab26f7718f8cb0c84705",
+ "sha256": "143b5np4d8vmpdyw1pzxl6xgh6pzfp0phhli0j4wsly83ivcf7w2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "8e12d366ca371fc259294485047a431a7c610605",
+ "sha256": "09w57wq9mw3yjklxsqm87xl2q229qwqp48ssxlp5xpwhwljgwd2j"
+ }
+ },
{
"ename": "shfmt",
"commit": "a20dde08de1a7cd70739a791e1ae321e8f152685",
@@ -97065,11 +97515,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20210924,
- 445
+ 20211029,
+ 150
],
- "commit": "c088fe627f12597726dfc2062454e2e7bd99798a",
- "sha256": "0bhvhhqs55nh1qb212zmmxw76l22xd830pvw0n9wihv02yrg7kim"
+ "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
+ "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
}
},
{
@@ -98157,15 +98607,15 @@
"repo": "slime/slime",
"unstable": {
"version": [
- 20211021,
- 807
+ 20211108,
+ 2224
],
"deps": [
"cl-lib",
"macrostep"
],
- "commit": "1378aa718781ec6d359845f0116e12865261b2ca",
- "sha256": "0h0bqmvwnddqj0b18kcmn990mmngpnq118h28w28lzr65aa33m2r"
+ "commit": "9005cdaac4c0adaa8e26ee5285c7b155762c0ce5",
+ "sha256": "18xywimwhfnqbsr4x9bs8v78qkc287ka3by022aqgpfasr1bi7ff"
},
"stable": {
"version": [
@@ -98397,11 +98847,11 @@
"repo": "joaotavora/sly",
"unstable": {
"version": [
- 20210729,
- 1613
+ 20211114,
+ 1021
],
- "commit": "540a8c5b9a04af0a6907e07cb070f1fed8a76f48",
- "sha256": "13m15gcsqmagxmjvn28kd5rhh0ly7d4p4malhg5m7cbbms4svv68"
+ "commit": "8b1b968651c6d1a8699d16c3a03d0d1e83ecca3d",
+ "sha256": "10yx6mhfdd79nl3qz5bj275i400hnnr5r951h84xif0hclhr1bxn"
},
"stable": {
"version": [
@@ -98905,15 +99355,15 @@
"repo": "Fuco1/smartparens",
"unstable": {
"version": [
- 20210904,
- 1621
+ 20211101,
+ 1101
],
"deps": [
"cl-lib",
"dash"
],
- "commit": "2834c66c4f09778d0c57e99886c329188eed591a",
- "sha256": "0zy5jamid6qkx8rml9ccqv85f2sr10j1rp3j77acggkf6zf3c096"
+ "commit": "f59a40d54f35299007c396bd667ce3e9ec4714e3",
+ "sha256": "0n0c2knva2c6ajdhqglr2yzhr53sgqr4bscsd1lwmwajgb0iyrw3"
},
"stable": {
"version": [
@@ -99631,14 +100081,14 @@
"repo": "hlissner/emacs-solaire-mode",
"unstable": {
"version": [
- 20210927,
- 1622
+ 20211114,
+ 1644
],
"deps": [
"cl-lib"
],
- "commit": "46408f4a105e216c3c2d88659b8b28601d37d80e",
- "sha256": "0wq5ckwx3wv4c4l8f9hz3ak6v5wy4lg5yh8xlsgn1h1x6yf8afpp"
+ "commit": "87c2efd11b4b71e000d8a464eb694852e22aa0e7",
+ "sha256": "058cflb2199yb2qpzhf5hckz4cknsxqpglmz4nvnfv6k2xbnijpb"
},
"stable": {
"version": [
@@ -99661,11 +100111,11 @@
"repo": "bbatsov/solarized-emacs",
"unstable": {
"version": [
- 20210827,
- 859
+ 20211114,
+ 807
],
- "commit": "874694ed8569ae98959262cfb0c66a6528a60367",
- "sha256": "1j6728229rrpamh4nn2v5mmlbb111i6ar7zh0g9d922k7vqr2nam"
+ "commit": "f34a171ff0e39549972edf533120f0b556f0b5ad",
+ "sha256": "07zxrf4xbh85d4sfxch6mcjgd6ga4a079k5fwqdm72pmi07659hf"
},
"stable": {
"version": [
@@ -99697,8 +100147,8 @@
"flycheck",
"solidity-mode"
],
- "commit": "9c77b390eab999e5e54dc5c1068f57201e6628bf",
- "sha256": "0i6kjvd82bq3djh4makf4czdbmg3sb5q74wbdfhdyikx6kkzfj0m"
+ "commit": "bac439dbd2097664df45e9fac0ce57e23462c14c",
+ "sha256": "1vs64gwm6zn47fl4nvaizkwh8zwnqh764yqcmggyz4awsxsxg6ym"
},
"stable": {
"version": [
@@ -99722,11 +100172,11 @@
"repo": "ethereum/emacs-solidity",
"unstable": {
"version": [
- 20211004,
- 1910
+ 20211112,
+ 1959
],
- "commit": "9c77b390eab999e5e54dc5c1068f57201e6628bf",
- "sha256": "0i6kjvd82bq3djh4makf4czdbmg3sb5q74wbdfhdyikx6kkzfj0m"
+ "commit": "bac439dbd2097664df45e9fac0ce57e23462c14c",
+ "sha256": "1vs64gwm6zn47fl4nvaizkwh8zwnqh764yqcmggyz4awsxsxg6ym"
},
"stable": {
"version": [
@@ -100473,11 +100923,11 @@
"repo": "ideasman42/emacs-spell-fu",
"unstable": {
"version": [
- 20211025,
- 312
+ 20211108,
+ 203
],
- "commit": "74079bfbc37cddbd4161f883503bb190d885ae1e",
- "sha256": "1k9jlhfgvgshhq4kiy87wg4fra70gmm95ws27bmqah8fld719jj8"
+ "commit": "570ccd84edddb60e6fc0f6bde5a9fb9b07ed2aa0",
+ "sha256": "0n9b3b8lgr9g4xc5md11agbpr1b7ahpdxphnwy473vw1fzgnj1fl"
}
},
{
@@ -101065,11 +101515,11 @@
"repo": "srfi-explorations/emacs-srfi",
"unstable": {
"version": [
- 20210902,
- 626
+ 20211116,
+ 1936
],
- "commit": "021239f0e2bcc60257b72916db9cdd110588ec28",
- "sha256": "0v79z2d9l824j6chsviffdsfb4m9w93kgwcwdaksdb5rsfmryigp"
+ "commit": "8874e933643b91d9c545fd4ca3f0ea986561da31",
+ "sha256": "1s0ivhg6rbk5k9yzy8gy589ybba7dnc9cksz4wwsgcsm931sx9fz"
},
"stable": {
"version": [
@@ -101493,16 +101943,16 @@
20200606,
1308
],
- "commit": "ef629fd74c5d963f5b68507179896169a34a078e",
- "sha256": "1wnx8s8cabg8zja0w0cvk6jfsqbkgbszdx624v1bl6g5iiv2im1j"
+ "commit": "d5bef96e847b50bd436725fa3b102f0c41b56bae",
+ "sha256": "1x2fyh6xyd1xzyhk1pk5x23j3if11rm8zpl75izkc3y6vw37haa3"
},
"stable": {
"version": [
1,
- 3
+ 4
],
- "commit": "05900351a9ec7b774931a2a59c15c9f0b6d443f6",
- "sha256": "18gb1f9ndi64f5zyxrgy9wfjgbn0s12wv6b3817xnj61crhvqwd0"
+ "commit": "262b2fc5b533f6f609c43a6f543c9d0d185b8f55",
+ "sha256": "0g0jnry8y858dl3z5w4zd02s0lq9qvha848xb8i1xpsx8xh8plf9"
}
},
{
@@ -102221,20 +102671,18 @@
"repo": "tlikonen/suomalainen-kalenteri",
"unstable": {
"version": [
- 20200830,
- 1107
+ 20211108,
+ 1333
],
- "commit": "5b209ff7b7d3dcd09b623915aba1e137c875fa0e",
- "sha256": "0ym0rfyrnj4f6c6nhz0yfvl1n1fsdb2n20gksw4blqg94ccafqh1"
+ "commit": "56927306d8046f2ba38b8cadabde47c5b6851262",
+ "sha256": "03y5hh2al8m75bdjxwa052nqa3iryp08dkhvmaaa9b0i2fq233z5"
},
"stable": {
"version": [
- 2020,
- 8,
- 30
+ 2021
],
- "commit": "99fd77d25fc12c0a9f1fc75f0b83b31774d493bd",
- "sha256": "12b2534cz9qqc923cf4nj76gmx3l19wrqmha077rlgl5pqlgqh6b"
+ "commit": "56927306d8046f2ba38b8cadabde47c5b6851262",
+ "sha256": "03y5hh2al8m75bdjxwa052nqa3iryp08dkhvmaaa9b0i2fq233z5"
}
},
{
@@ -102454,26 +102902,25 @@
"repo": "thblt/sway.el",
"unstable": {
"version": [
- 20210501,
- 2201
+ 20211109,
+ 1601
],
"deps": [
"dash"
],
- "commit": "8a4d9cc1a469efa707cf67b57b752f28547e331e",
- "sha256": "0x5w3f07dsgbl7qlcqpmpm3831lrv5jx59g7xnv25giwc3w21d2d"
+ "commit": "d84adab82ca5f84847702671dd60c0377c82ccd9",
+ "sha256": "1xqlflk0k1zcsblydsx583mrh5zxpjbah8h1jb1lrfzwrbx0m627"
},
"stable": {
"version": [
0,
- 2,
- 4
+ 3
],
"deps": [
"dash"
],
- "commit": "8a4d9cc1a469efa707cf67b57b752f28547e331e",
- "sha256": "0x5w3f07dsgbl7qlcqpmpm3831lrv5jx59g7xnv25giwc3w21d2d"
+ "commit": "d84adab82ca5f84847702671dd60c0377c82ccd9",
+ "sha256": "1xqlflk0k1zcsblydsx583mrh5zxpjbah8h1jb1lrfzwrbx0m627"
}
},
{
@@ -102567,14 +103014,14 @@
"repo": "swift-emacs/swift-mode",
"unstable": {
"version": [
- 20211017,
- 542
+ 20211031,
+ 543
],
"deps": [
"seq"
],
- "commit": "e24626440ce350596f4c1676f6644437a0500bbd",
- "sha256": "09pr8v78nz8nza9l4g87i0xfnp84rmjm2kq1ff6g4a6nisdxyfxm"
+ "commit": "4777c409ba0cd0d02b9a8397ba810e449b5ac213",
+ "sha256": "0dmrshlkhavzlfxhm2fi37x7rf1h203iiamdqvqb7dqq0axah5r7"
},
"stable": {
"version": [
@@ -102906,8 +103353,8 @@
"hydra",
"multiple-cursors"
],
- "commit": "b3b1257e676514d93cd2d71a10a485bf00b5375f",
- "sha256": "0ic6i589y8g41mpi9vzsd76rzcskxaxicfwwpw8d9g44p8zfghfz"
+ "commit": "5675976cad4cbeee30f43e6c4b28c2e5904575a5",
+ "sha256": "06cl7njizn68vml21lsl3p66wpcdcw6ah49jqjvwzjkzivrds3m5"
}
},
{
@@ -102947,11 +103394,11 @@
"repo": "lassik/emacs-symbolist",
"unstable": {
"version": [
- 20210503,
- 1220
+ 20211107,
+ 1615
],
- "commit": "f600e07fe06c19b67f917a8839bbcd6c78f1fbd4",
- "sha256": "02x71kdnkhyzscc2bxayv55qfanqy0hm7rckq4mqhxbryjz7qcab"
+ "commit": "92b712734941a45da7d47fd61b95e4013ff53481",
+ "sha256": "0033qxn1zx90lws6a8ibg7xx5xxpiwzr08fj86k5w84nj6nvwras"
}
},
{
@@ -102988,8 +103435,8 @@
"repo": "countvajhula/symex.el",
"unstable": {
"version": [
- 20211016,
- 51
+ 20211115,
+ 2045
],
"deps": [
"evil",
@@ -103001,8 +103448,8 @@
"seq",
"undo-tree"
],
- "commit": "6dab41cf72fb5f25e0de30fde64fee960944a604",
- "sha256": "1p8x7q1hf3bbblm43b4w3kns8ns6zjsz008x7pgvinqwi78a6nfs"
+ "commit": "ce33a7858481da2a1a07558b0932b19328d3449b",
+ "sha256": "017a6bmacfcwqy7x89pzpgkqpipl8i5hbp429cqpw7xdhjwgc2in"
},
"stable": {
"version": [
@@ -103650,11 +104097,11 @@
"repo": "11111000000/tao-theme-emacs",
"unstable": {
"version": [
- 20210726,
- 1827
+ 20211027,
+ 1900
],
- "commit": "f35b97823f27e8d0f378bbd18b79a61f9e34cc55",
- "sha256": "097zvklc90dy90p62fbk5khnysijzmb6knvzyi8m6wba2g32v4mh"
+ "commit": "2d271a2733463f3be711c31da036236b53f6224e",
+ "sha256": "0n4n3ln5n3ygkb2pa9ag8pwqqs7a9lkzzb0j04b0rphjhmsn5hbr"
},
"stable": {
"version": [
@@ -103865,15 +104312,15 @@
"repo": "zevlg/telega.el",
"unstable": {
"version": [
- 20211024,
- 712
+ 20211116,
+ 1246
],
"deps": [
"rainbow-identifiers",
"visual-fill-column"
],
- "commit": "a8ae6b54f047426778b4c72d315c45603c0eb24a",
- "sha256": "1l6hzrr363l44g54idamcra3rn3wmlkfc545v8lq0rj3gnnpzkd6"
+ "commit": "9bc087dab6d2503da41881132664f5c0c979f4b6",
+ "sha256": "1s3p9ndwiv08wh30i9rgdm2lz3a4xj9in2y4rrhywq4gnd5zbz7d"
},
"stable": {
"version": [
@@ -104657,11 +105104,11 @@
"repo": "Dspil/text-categories",
"unstable": {
"version": [
- 20211001,
- 830
+ 20211031,
+ 947
],
- "commit": "f73b0e63072463c91a75a292fa21d39a9f06b81c",
- "sha256": "08m24ap72y461zpackcdprh48vivvd75jz85pw0ad51ysvxq0z08"
+ "commit": "d400c2692373c14d7cf773e7ae587cbe9c7d1e13",
+ "sha256": "1wbx74pc0lzb51gs43zhs66jid4kyaavcgckx37m5m05k17kdv97"
}
},
{
@@ -104971,18 +105418,18 @@
20200212,
1903
],
- "commit": "e5e1e1c5506c1bd2c83a3296cacbbb89a045cf36",
- "sha256": "0glraqhqvvhml8by829cvj5rs9qd674drz0i6jgcqr4kyvvwzw89"
+ "commit": "c0cc1a6b7273feb1049206f58da5f469e28b56a9",
+ "sha256": "0pkwa42r33l30ddnmy8hkflwirf3xnv4fi5a6zxsm3ibi7z649fm"
},
"stable": {
"version": [
2021,
- 10,
- 25,
+ 11,
+ 15,
0
],
- "commit": "adb281261e173ad5fa8d04db5bc52b221313f6f8",
- "sha256": "1k7y24qkvcicmdw1f54ii777yy2qw5czzbyy4rb4aisfq8iygp45"
+ "commit": "7f44dce741f17712a5671b09f495059bd1f68d09",
+ "sha256": "1jldrq95cb2g27my88k98c8p33kbk04l0rc8vpwlyyxr602cx7k9"
}
},
{
@@ -105038,8 +105485,8 @@
"deps": [
"haskell-mode"
],
- "commit": "15794a97222d45036749bc7ab3a82e81fed12e87",
- "sha256": "181ixq71pldpivf5qkfyrgpjx1cw5smaagcpayjrdawwrkpfkrm9"
+ "commit": "be7c02a4df03d695c8f8dca80817a736905ecf47",
+ "sha256": "1lh92rzafapx6yi7r24yzrxgv2v6wqvzg62j0pd3zqa6s499v4k9"
},
"stable": {
"version": [
@@ -105287,19 +105734,19 @@
"repo": "aimebertrand/timu-spacegrey-theme",
"unstable": {
"version": [
- 20211018,
- 2351
+ 20211115,
+ 2323
],
- "commit": "653923cd419616dc1486abb919581a99e6d32539",
- "sha256": "17y7rdb4bn9f44j5k8ixp1cbxn6prh67h4xim8hnypy7q2v4rl10"
+ "commit": "2934363d32ba6e817e789d5ecf5e68a51cfc0e8d",
+ "sha256": "001h23yhqys90dpqka4m3zcdnwbfxvjii5lxmj67shblslx5f4sl"
},
"stable": {
"version": [
1,
- 6
+ 8
],
- "commit": "acb033ab8e3f4ab7899daa7a7fc0d67187b0554e",
- "sha256": "1mnhymvwcb3dqzpbsa2z70w90zdqrmlwczgf1ql41c2fxw7wzaqa"
+ "commit": "3da96d529c09dc1000de425f937380895ab9efa6",
+ "sha256": "0k2l15lkk3b5y7qfzhjid8l1clam5j9nhm635a1qmhjgcdln18x3"
}
},
{
@@ -105892,14 +106339,14 @@
"repo": "trueroad/tr-emacs-ime-module",
"unstable": {
"version": [
- 20210202,
- 1057
+ 20211114,
+ 440
],
"deps": [
"w32-ime"
],
- "commit": "92591f7c0b94f8b1875f1078d1ba3be40848f0b8",
- "sha256": "0r5cmj8ih8n7m37fqwyymmd0swyxr6g124cw9cz24ri0dyiwi73k"
+ "commit": "c35be849f2cf5470e9d9cc40ff54e285e5170e93",
+ "sha256": "0sy33f8c9l0189qhm8q2whb6yrsir52fqqq3wh54qkbqc8vvg7py"
},
"stable": {
"version": [
@@ -106065,26 +106512,26 @@
},
{
"ename": "transient",
- "commit": "331370880770a0332c35a499ea3044820afb9967",
- "sha256": "1splwjaf4w9cgmld5c4q7l4kgma8k4ydlgflq14dfpb5pnxcn0rc",
+ "commit": "cdd8115e3ab3df5f74a21dbf63d89ee11b4f1c17",
+ "sha256": "04xkdspn475dlch5fcw21phhdhshxlbyznjbi0l7qk8snm130qpv",
"fetcher": "github",
"repo": "magit/transient",
"unstable": {
"version": [
- 20211023,
- 2151
+ 20211105,
+ 100
],
- "commit": "9e60c46f0728beca42e368d55de03e9c7ec62ddc",
- "sha256": "0r33qf56rdlvf79cxkgymcv5l868xkbhz5smpsa5qms39rs97mna"
+ "commit": "349116159f707a474926b47e5f6b6240e8997a4d",
+ "sha256": "1yzjdr9rdxax8gcd0k978v9akb1wk2ff14wfigiaqkvqs3sd8zxy"
},
"stable": {
"version": [
0,
3,
- 6
+ 7
],
- "commit": "51e833e5152e9fdcdc1dbbf34ad2d4905bde1f69",
- "sha256": "10k9dzs8y6i0rfckclxm5n3maylmh95993n5dvrs8rbmlcpmihvy"
+ "commit": "74cba5a418ff1b1661494fc2970c330ecdbb4b22",
+ "sha256": "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"
}
},
{
@@ -106307,6 +106754,29 @@
"sha256": "1wrip00q6lbpllhaz0c7llnm774dq2mizr39ynfssvsdci38z1lm"
}
},
+ {
+ "ename": "tree-edit",
+ "commit": "43726f8e4c4f7f673ca892ec17329471dba77b3e",
+ "sha256": "0537g2m5k3hwdisbag9724nkzx97x45ry602gjpqr9dzywd30g65",
+ "fetcher": "github",
+ "repo": "ethan-leba/tree-edit",
+ "unstable": {
+ "version": [
+ 20211116,
+ 1613
+ ],
+ "deps": [
+ "dash",
+ "reazon",
+ "s",
+ "tree-sitter",
+ "tree-sitter-langs",
+ "tsc"
+ ],
+ "commit": "6fd445dbeb158d05d785965077cc594aeeb73a61",
+ "sha256": "0h1zjdqxynxxlqdc9yxhmkjwarx4vn9anasv9i68fcmmnq7c0aw9"
+ }
+ },
{
"ename": "tree-mode",
"commit": "84f836338818946a6bb31d35d6ae959571128ed5",
@@ -106455,8 +106925,8 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20211019,
- 1654
+ 20211115,
+ 2031
],
"deps": [
"ace-window",
@@ -106468,14 +106938,14 @@
"pfuture",
"s"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"ace-window",
@@ -106487,8 +106957,8 @@
"pfuture",
"s"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106499,28 +106969,28 @@
"repo": "Alexander-Miller/treemacs",
"unstable": {
"version": [
- 20211006,
- 1837
+ 20211107,
+ 1818
],
"deps": [
"all-the-icons",
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"all-the-icons",
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106538,21 +107008,21 @@
"evil",
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"evil",
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106569,20 +107039,20 @@
"deps": [
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106601,22 +107071,22 @@
"pfuture",
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"magit",
"pfuture",
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106635,22 +107105,22 @@
"persp-mode",
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"dash",
"persp-mode",
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106669,22 +107139,22 @@
"perspective",
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"dash",
"perspective",
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -106702,21 +107172,21 @@
"projectile",
"treemacs"
],
- "commit": "4fb0480ae6c110a74b7365fb59b84d31ca38ded2",
- "sha256": "1v37c0gi2ijibvm5rf9pnk6mazbaiyiraqrqhxpqf6pn31wavcif"
+ "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
+ "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
},
"stable": {
"version": [
2,
9,
- 4
+ 5
],
"deps": [
"projectile",
"treemacs"
],
- "commit": "cb48a2dc3077064d85aa14e9531b21e27b7183bd",
- "sha256": "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p"
+ "commit": "b5609d3eacab752e7f06fc66fd8c37189152c1cf",
+ "sha256": "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"
}
},
{
@@ -107441,24 +107911,6 @@
"sha256": "0q8kgjnbcmqr1my7qgfcwjbk9misgkq4ymvrslhwlfwnnkg18x9a"
}
},
- {
- "ename": "typoscript-mode",
- "commit": "701de09cb97cbfa49a3a81aaeb9577817566efa2",
- "sha256": "18i2wwbn8vj5dbgxp2ds29n12v8ldvxjd1zb6h1g9lfh8iyrnjmx",
- "fetcher": "github",
- "repo": "ksjogo/typoscript-mode",
- "unstable": {
- "version": [
- 20170126,
- 912
- ],
- "deps": [
- "use-package"
- ],
- "commit": "44e7567e921573c4f33c537b827f71fb1f565c32",
- "sha256": "0i7l9s3lhxnld32mqyrvasiv1hilhwnp2fwvpdv2cx9r902q6kc8"
- }
- },
{
"ename": "ubuntu-theme",
"commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
@@ -107774,11 +108226,11 @@
"repo": "ideasman42/emacs-undo-fu",
"unstable": {
"version": [
- 20211007,
- 306
+ 20211030,
+ 612
],
- "commit": "71c474e29f6ad726386604a5058761892951782e",
- "sha256": "1rwcr0d1nrkvssiyf2s7zicp3did8y4x5p0vmvg8n0d3vqsh3d3v"
+ "commit": "ab8bc10e424bccc847800c31ab41888db789d55d",
+ "sha256": "1vdaysc328gwqi57fp4cfbl96g76m8wc2qr53wgb3l89m9kx5sgg"
}
},
{
@@ -109390,20 +109842,20 @@
"repo": "federicotdn/verb",
"unstable": {
"version": [
- 20210809,
- 2140
+ 20211103,
+ 1927
],
- "commit": "6f5b454782d5c2ce9d86616c3d015935d3d5dd6b",
- "sha256": "172520apwczyp6c0apga1bz2vbfzy60jdyiq09sjk34533fymcg4"
+ "commit": "6250360b3b06f590dd37885f3c33a451a3eab5d3",
+ "sha256": "07xdl2ng435iy9zqrq1wgrmwygarc91kqmz6ck1ngvn4mh86ndxk"
},
"stable": {
"version": [
2,
- 14,
+ 15,
0
],
- "commit": "0d7f7d36f6ae8130a9bd40845f156a3e3b30eb49",
- "sha256": "1bpfxfgq5q022rx592wkigj5chq8ihry8lgrni4rsqbbmbrc1h4b"
+ "commit": "f9ea5780ec65e6f30451514b72ce99619dd8457f",
+ "sha256": "1l38ax1ms7s2qwjnqd0djf2gcy5jpqha55d17vyvkx1kgwjapja7"
}
},
{
@@ -109470,20 +109922,19 @@
"repo": "mihaiolteanu/versuri",
"unstable": {
"version": [
- 20200316,
- 852
+ 20211104,
+ 1301
],
"deps": [
"anaphora",
"dash",
"esqlite",
"esxml",
- "ivy",
"request",
"s"
],
- "commit": "41e20583d1080beeeda0e36d1b2e6d74b9c57920",
- "sha256": "0fgc1rai9gp6lwl0rxr9400vi420py0c0b8nv9wzl12ph80yhwj7"
+ "commit": "c8ea562304194f3379ed8f9c6a785ce8ee72898e",
+ "sha256": "1ak5f6g9sqd2dwplipnacg6kknkpf1j6df5am0hqcmlsk052d12s"
}
},
{
@@ -109787,11 +110238,11 @@
"repo": "thanhvg/emacs-virtual-comment",
"unstable": {
"version": [
- 20210928,
- 758
+ 20211103,
+ 209
],
- "commit": "24271e081be3bb9ebcb41e27e1dad9623a837205",
- "sha256": "1np4mbw1fry8ja74vy3hjs9fx301c7k8zq3h4a9i7jbnkvzh9iyi"
+ "commit": "4effa95c7d6243fc5696597f488653f9d2a5d4a6",
+ "sha256": "164yiiqqxk2fpjk65y72fr71j05b1330zmvbaxh0w3ww2axkjz68"
}
},
{
@@ -109881,17 +110332,17 @@
},
{
"ename": "visual-fill-column",
- "commit": "c7628c805840c4687686d0b9dc5007342864721e",
- "sha256": "19y0pwaybjal2rc7migdbnafpi4dfbxvrzgfqr8dlvd9q68v08y5",
- "fetcher": "github",
- "repo": "joostkremers/visual-fill-column",
+ "commit": "39ada1dc39158e956a1251cd41cfa2259b51da21",
+ "sha256": "1bbly6sd77cnxl1c4n24039cgfwn0mcq6l3jgyh8z7bk6lnsjfw2",
+ "fetcher": "git",
+ "url": "https://codeberg.org/joostkremers/visual-fill-column",
"unstable": {
"version": [
- 20211014,
- 2141
+ 20211110,
+ 2317
],
- "commit": "2df643827a4fd82b732ea93042916c61078d4206",
- "sha256": "1j8x044s4xzmfmqrsabim9gv435scj2yhym3f3p9bf5vq5ds2smj"
+ "commit": "ae4edc225acea12a035c0586185847306ecb06ef",
+ "sha256": "18qac66mpvgmp1pw0lvarjngwh9cx75an44n1pg2msbxkkm98zkj"
},
"stable": {
"version": [
@@ -110321,8 +110772,8 @@
"repo": "mihaiolteanu/vuiet",
"unstable": {
"version": [
- 20210715,
- 907
+ 20211116,
+ 1109
],
"deps": [
"bind-key",
@@ -110331,8 +110782,8 @@
"s",
"versuri"
],
- "commit": "b327a5224ab45f6689ce635878301e54ca753b3b",
- "sha256": "1sq2nmmw8ga4jhkgb3a0mkps7v8ma1jrrz8c1vbypfn1b3amvj3b"
+ "commit": "ddfd4be99b46ddc042139028980ad8dd616b7d45",
+ "sha256": "10wjzx8vq8k16dwcjppnr28pkiilxl2ak78h60h68flakmdzibmg"
},
"stable": {
"version": [
@@ -110358,16 +110809,16 @@
"repo": "d12frosted/vulpea",
"unstable": {
"version": [
- 20211023,
- 1716
+ 20211115,
+ 1433
],
"deps": [
"org",
"org-roam",
"s"
],
- "commit": "d6792e95c499a2ee85b0d8b11295b61777a46038",
- "sha256": "08h26ki2j5nx5rxhgi6vxmxwpisg8d9vg8jsmcczlql2sfmsh8mj"
+ "commit": "0c16e1c1adb45e8aaa32f06edc604e18d39179eb",
+ "sha256": "1217gni713nc5y37wfspnc5b790chri96an4hzv1jra33lazn49y"
},
"stable": {
"version": [
@@ -110453,11 +110904,11 @@
"repo": "emacs-w3m/emacs-w3m",
"unstable": {
"version": [
- 20211009,
- 252
+ 20211025,
+ 2324
],
- "commit": "c088fe627f12597726dfc2062454e2e7bd99798a",
- "sha256": "0bhvhhqs55nh1qb212zmmxw76l22xd830pvw0n9wihv02yrg7kim"
+ "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
+ "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
}
},
{
@@ -110530,11 +110981,11 @@
"repo": "wakatime/wakatime-mode",
"unstable": {
"version": [
- 20210818,
- 1556
+ 20211104,
+ 1455
],
- "commit": "8dfe67c1581a0f3688c572dfdb5f8f71d3f874a0",
- "sha256": "1rpl2hj1413kcxvxl27jycjl40js8cybf2qrhvjfwfhxncpwacxv"
+ "commit": "0f94ac2dd4fa125fc5f152700779edce75a6b03b",
+ "sha256": "1iqmd763gik32blrc8ki9rikm3k5iksm0xg12rffmilawc2vn480"
}
},
{
@@ -110545,11 +110996,11 @@
"repo": "darkstego/wakib-keys",
"unstable": {
"version": [
- 20210903,
- 1619
+ 20211116,
+ 2049
],
- "commit": "627e94389fe754da9802a8c93e4a3d1a1831967b",
- "sha256": "0i0a9imkpz0aq4r340vd2li22m1wnv7p83s4bcaihl1z8axfa611"
+ "commit": "b2a62fb74f2fdfd00fd56ff8343651fa0a079f50",
+ "sha256": "0j47xxch74j09xxi2v2m42cyzcfa6zbvb6wpyjk9dif6pjn1q3n8"
}
},
{
@@ -110587,8 +111038,8 @@
"org",
"transient"
],
- "commit": "00b4fd5cae7fe27085995dbb178828fb765c7edc",
- "sha256": "1ya91159i58x4mccpnx429kq2k0xc04alikbly549qm8yw1y1hxg"
+ "commit": "0cb9c2fef6e611b4389f7df7fcccc17744053e9b",
+ "sha256": "1fv4bn6c04kv39jv25r09pvxc5hz5gwwbj16fhxs5930rf77ikqb"
},
"stable": {
"version": [
@@ -110678,16 +111129,16 @@
"repo": "wanderlust/wanderlust",
"unstable": {
"version": [
- 20211008,
- 1118
+ 20211115,
+ 1206
],
"deps": [
"apel",
"flim",
"semi"
],
- "commit": "92ded1534ce7143f379b92a4029db275f3e22ee8",
- "sha256": "0ai48j19dpyny1mmf81wjwmr5i5i5rnaj4d5n0hfchs4dcng0xrq"
+ "commit": "aef23d6e50b7e29ff4ff11d288f36f6ba03f29ac",
+ "sha256": "06rj754ygv0455hkyb62ihqk844jx6cx18n5vixjmcws6hvpi9al"
}
},
{
@@ -111620,11 +112071,11 @@
"repo": "lassik/emacs-whois",
"unstable": {
"version": [
- 20210429,
- 805
+ 20211104,
+ 812
],
- "commit": "6ce65ec5c992b1e1cb538610f1c3708e9d467c39",
- "sha256": "0cz5c0zy4lz0534nfr2xf7p0d09ppcfdmry4335gx19vz47fj60n"
+ "commit": "f22244202fdac5064d5eff95c6f35ae887b01142",
+ "sha256": "0zv80aarrqlgnp7icvmm9yxlpc9qpdzn73lfrvrpry1rmv301wfp"
},
"stable": {
"version": [
@@ -112193,11 +112644,11 @@
"repo": "magit/with-editor",
"unstable": {
"version": [
- 20211015,
- 1917
+ 20211028,
+ 2105
],
- "commit": "8d52f933e50624c7bca3880f57297ac17ba4ac2d",
- "sha256": "0k0k7mbsizsbgyjb92qj9hp5f2jbwbkzmfbxjhbmniw87q1flmmp"
+ "commit": "cfe70f43c551852125bc139df467e28e1b6087df",
+ "sha256": "0i38y7kw0fpb1ii8bfiidh5xkinldzzz1c0i33zvwym76a28birb"
},
"stable": {
"version": [
@@ -113033,8 +113484,8 @@
"repo": "dandavison/xenops",
"unstable": {
"version": [
- 20210630,
- 740
+ 20211102,
+ 1607
],
"deps": [
"aio",
@@ -113044,8 +113495,8 @@
"f",
"s"
],
- "commit": "95b0b37cf5bb6474f054056b0dad9402c700c5b7",
- "sha256": "09xiabicada3ziyinlc9fczcdy2nr01fn3fqlq1vpjzb5882k63l"
+ "commit": "61f4fe7b5cc2549ea7363635307279becac53ea7",
+ "sha256": "188p1lk7d6gbnshikb7qf646ljpcrsdssr0k9jd1vgga8iz22k0d"
}
},
{
@@ -113497,6 +113948,21 @@
"sha256": "1i6g4n2pnp3r0pyn4p6xryh0x44lyvazy8kc1bfrzwzf6py9wmq0"
}
},
+ {
+ "ename": "xwiki-mode",
+ "commit": "3288cf8d5b62e01c64ce9ab572275df5ab58a27f",
+ "sha256": "0ykgs5hnil5837x59x31xjf86l8l5fi9bf8jg71bmq61qvhxfkvi",
+ "fetcher": "github",
+ "repo": "ackerleytng/xwiki-mode",
+ "unstable": {
+ "version": [
+ 20211112,
+ 511
+ ],
+ "commit": "580e65296ca0ffb20270610ef16bfeb8850fc7c8",
+ "sha256": "0izsj9krl4lhm33w9hh6gjihns4lrgaf40qiiif43n05jha7fj0z"
+ }
+ },
{
"ename": "xwwp",
"commit": "83c34ae5023410cc31f93255275d6465b6152a10",
@@ -113999,25 +114465,25 @@
"repo": "mineo/yatemplate",
"unstable": {
"version": [
- 20200625,
- 1336
+ 20211115,
+ 1208
],
"deps": [
"yasnippet"
],
- "commit": "399564fc1afa100aa6049ac6de11fb065882d230",
- "sha256": "0gvysijv659z843r692wzfjz5p8j2dr79m8fzcnajnrpim9jf2j8"
+ "commit": "275745ce1482edc08efb0b7807bc86d832bcc734",
+ "sha256": "1dkxzvsmz193nwybi3wi00k0wwhkbpnj4yi7gxdrgix6kxbpjd9i"
},
"stable": {
"version": [
- 4,
+ 5,
0
],
"deps": [
"yasnippet"
],
- "commit": "bfee45cfc179d6b7fbc3ff06c9f79b76dc7fbf58",
- "sha256": "0h2fc9vjwb94n3nklq35s3dy9i4ihrqffp2556cmsaq7gzlipb81"
+ "commit": "275745ce1482edc08efb0b7807bc86d832bcc734",
+ "sha256": "1dkxzvsmz193nwybi3wi00k0wwhkbpnj4yi7gxdrgix6kxbpjd9i"
}
},
{
@@ -114261,11 +114727,11 @@
"repo": "ryuslash/yoshi-theme",
"unstable": {
"version": [
- 20210713,
- 455
+ 20211031,
+ 456
],
- "commit": "06a6bcfc58d1f1cd8815c674c9fcbbf193bba0a9",
- "sha256": "0mp68h924hfj86rya0kvk16w82lvllmiryz8ry70ngcfmwdh930v"
+ "commit": "787bb0a13c6e1b28e904e1b7f18564d5e97c9c93",
+ "sha256": "1yf6nnvzx7pv7qfx1wln9ksanapnf5b0chyrdhzy9wyjfx00hclz"
},
"stable": {
"version": [
@@ -114383,14 +114849,14 @@
"repo": "zv/z3-mode",
"unstable": {
"version": [
- 20151120,
- 2255
+ 20211116,
+ 138
],
"deps": [
"flycheck"
],
- "commit": "163dc01d59e9880b4dc188d4e1ad84d6c0c852e1",
- "sha256": "1k7m3xk5ksbr2s3ypz5yqafz9sfav1m0qk2jz1xyi3fdaw2j0w2z"
+ "commit": "0356cbe1e1e2b780ba0ddb4aaa055fa246a67931",
+ "sha256": "0jlnxxzh9p7285m16w33l5529iglg5cihs6gqwnb6y34wpzwyar6"
}
},
{
@@ -114533,10 +114999,10 @@
},
{
"ename": "zeno-theme",
- "commit": "8aef13a70809ee1fc00f0e8c2853936380b22422",
- "sha256": "1hq3yx0l6v2wwgmmsq5c7h5chbila9flpvsr1a9fpq09lbq2yq7g",
+ "commit": "e6f007367d181005ebd1a4d73085d73e807d3583",
+ "sha256": "01kp0j27q9v62d45ail65al9zzfxpx7d7bj6gdzilbmwk3k7lxq5",
"fetcher": "github",
- "repo": "zenobharat/zeno-theme",
+ "repo": "zenobht/zeno-theme",
"unstable": {
"version": [
20181027,
@@ -114640,14 +115106,14 @@
"repo": "NicolasPetton/zerodark-theme",
"unstable": {
"version": [
- 20210216,
- 1640
+ 20211115,
+ 841
],
"deps": [
"all-the-icons"
],
- "commit": "ee49ea9e875d7a3da63386880ca3a9e10b1051e5",
- "sha256": "06q1v0fkxyxadrpgy28gh85j19vi4ars2xrbbm1bz28xrcbnps04"
+ "commit": "b463528704f6eb00684c0ee003fbd8e42901cde0",
+ "sha256": "1ajgz5mbvzv92p1g3k6p94v11z3xyj5w81fpfiwhlvh30imx6z9q"
},
"stable": {
"version": [
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
index 61749a89fd..71f9981f46 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
@@ -1,27 +1,29 @@
-{stdenv, fetchurl, emacs}:
+{ stdenv, fetchurl, emacs, lib }:
-stdenv.mkDerivation {
- name = "session-management-for-emacs-2.2a";
+stdenv.mkDerivation rec {
+ pname = "session-management-for-emacs";
+ version = "2.2a";
src = fetchurl {
- url = "mirror://sourceforge/emacs-session/session-2.2a.tar.gz";
+ url = "mirror://sourceforge/emacs-session/session-${version}.tar.gz";
sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
};
- buildInputs = [emacs];
+ buildInputs = [ emacs ];
installPhase = ''
mkdir -p "$out/share/emacs/site-lisp"
cp lisp/*.el "$out/share/emacs/site-lisp/"
'';
- meta = {
+ meta = with lib; {
/* installation: add to your ~/.emacs
- (require 'session)
- (add-hook 'after-init-hook 'session-initialize)
+ (require 'session)
+ (add-hook 'after-init-hook 'session-initialize)
*/
description = "Small session management for emacs";
homepage = "http://emacs-session.sourceforge.net/";
- license = "GPL";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
index 1e1fffe9ad..eaa7d8b577 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
index 41cde07a21..052364c803 100755
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
@@ -11,10 +11,6 @@ curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/
nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages --show-trace
git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacs.pkgs.elpa-packages: $(date --iso)" -- elpa-generated.nix
-curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix
-nix-instantiate ../../../../../ -A emacs.pkgs.orgPackages --show-trace
-git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacs.pkgs.org-packages: $(date --iso)" -- org-generated.nix
-
curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json
nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-org b/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-org
deleted file mode 100755
index 2119a16722..0000000000
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-org
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell --show-trace ./emacs2nix.nix -i bash
-
-exec org-packages.sh --names $EMACS2NIX/names.nix -o org-generated.nix
diff --git a/third_party/nixpkgs/pkgs/applications/editors/featherpad/default.nix b/third_party/nixpkgs/pkgs/applications/editors/featherpad/default.nix
index 84dc16c76d..8fbcfbb4c1 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/featherpad/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/fte/default.nix b/third_party/nixpkgs/pkgs/applications/editors/fte/default.nix
index 4f78267dbe..05841bb1ba 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/fte/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/fte/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchurl, unzip, perl, libX11, libXpm, gpm, ncurses, slang }:
stdenv.mkDerivation rec {
- name = "fte-0.50.02";
+ pname = "fte";
+ version = "0.50.02";
nativeBuildInputs = [ unzip ];
buildInputs = [ perl libX11 libXpm gpm ncurses slang ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix b/third_party/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
index fdada2e776..b828df6d8d 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
@@ -14,13 +14,13 @@
mkDerivation rec {
pname = "ghostwriter";
- version = "2.0.2";
+ version = "2.1.0";
src = fetchFromGitHub {
owner = "wereturtle";
repo = pname;
rev = version;
- sha256 = "sha256-kNt0IIAcblDJ81ENIkoJuJvrI+F+fdVgWUJ6g1YpjqU=";
+ sha256 = "sha256-NPuwT0msFvGyS33X7lefdPZZ3AC4pZb1tvmOzzlQlgc=";
};
nativeBuildInputs = [ qmake pkg-config qttools ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/third_party/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
index 38f38ae3a5..1619ff1e61 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
@@ -39,13 +39,13 @@
stdenv.mkDerivation rec {
pname = "gnome-builder";
- version = "41.1";
+ version = "41.2";
outputs = [ "out" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "XVXkqqKkdYpGJj0cf9AJyz20RV4O1/nkTDoWNIYfo4o=";
+ sha256 = "VjF7Vn94Yd2gNzKVsk6U7fSRnMlV+0XtYqyllGIY4BI=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/editors/helix/default.nix b/third_party/nixpkgs/pkgs/applications/editors/helix/default.nix
index a46124daab..c0c8e2a57b 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/helix/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/helix/default.nix
@@ -2,17 +2,17 @@
rustPlatform.buildRustPackage rec {
pname = "helix";
- version = "0.4.1";
+ version = "0.5.0";
src = fetchFromGitHub {
owner = "helix-editor";
repo = pname;
rev = "v${version}";
fetchSubmodules = true;
- sha256 = "sha256-lScMHZ/pLcHkuvv8kSKnYK5AFVxyhOUMFdsu3nlDVD0=";
+ sha256 = "sha256-NoVg/8oJIgMQtxlCSjrLnYCG8shigYqZzWAQwmiqxgA=";
};
- cargoSha256 = "sha256-N5vlPoYyksHEZsyia8u8qtoEBY6qsXqO9CRBFaTQmiw=";
+ cargoSha256 = "sha256-kqPI8WpGpr0VL7CbBTSsjKl3xqJrv/6Qjr6UFnIgaVo=";
nativeBuildInputs = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/hexcurse/default.nix b/third_party/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
index a1b90b83d5..9adce387f4 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
@@ -23,6 +23,22 @@ stdenv.mkDerivation rec {
url = "https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch";
sha256 = "0v6gbp6pjpmnzswlf6d97aywiy015g3kcmfrrkspsbb7lh1y3nix";
})
+
+ # Fix pending upstream inclusion for gcc10 -fno-common compatibility:
+ # https://github.com/LonnyGomes/hexcurse/pull/28
+ (fetchpatch {
+ name = "fno-common.patch";
+ url = "https://github.com/LonnyGomes/hexcurse/commit/9cf7c9dcd012656df949d06f2986b57db3a72bdc.patch";
+ sha256 = "1awsyxys4pd3gkkgyckgjg3njgqy07223kcmnpfdkidh2xb0s360";
+ })
+
+ # Fix pending upstream inclusion for ncurses-6.3 support:
+ # https://github.com/LonnyGomes/hexcurse/pull/40
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/LonnyGomes/hexcurse/commit/cb70d4a93a46102f488f471fad31a7cfc9fec025.patch";
+ sha256 = "19674zhhp7gc097kl4bxvi0gblq6jzjy8cw8961svbq5y3hv1v5y";
+ })
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/editors/jetbrains/common.nix b/third_party/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
index 3992fc5c2e..4d8835c29c 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/third_party/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
index 05ee956e46..fae273be66 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -255,12 +255,12 @@ in
datagrip = buildDataGrip rec {
name = "datagrip-${version}";
- version = "2021.2.4"; /* updated by script */
+ version = "2021.3.1"; /* updated by script */
description = "Your Swiss Army Knife for Databases and SQL";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
- sha256 = "1vj9ihzw07bh30ngy8mj027ljq9zzd904k61f8jbfpw75vknh8f6"; /* updated by script */
+ sha256 = "18drbddcjbbv6q6j95wy7ila8d7imi0gh5nnf0lhj4gkkxhszmii"; /* updated by script */
};
wmClass = "jetbrains-datagrip";
update-channel = "DataGrip RELEASE";
@@ -268,12 +268,12 @@ in
goland = buildGoland rec {
name = "goland-${version}";
- version = "2021.2.3"; /* updated by script */
+ version = "2021.2.4"; /* updated by script */
description = "Up and Coming Go IDE";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
- sha256 = "1n0yrk05xv4pard82b6z349ksiw8k75s9525pnpa2ny1ay1klhdg"; /* updated by script */
+ sha256 = "03x7yz8jz5r4pblm7cvph39zppa33lalvkpzmgvr3wjq0chqmh65"; /* updated by script */
};
wmClass = "jetbrains-goland";
update-channel = "GoLand RELEASE";
@@ -281,12 +281,12 @@ in
idea-community = buildIdea rec {
name = "idea-community-${version}";
- version = "2021.2.3"; /* updated by script */
+ version = "2021.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
- sha256 = "166rhssyizn40rlar7ym7gkwz2aawp58qqvrs60w3cwwvjvb0bjq"; /* updated by script */
+ sha256 = "0xrhgqbsyd2plzkkmy00bwsa8dk4ijszmhmbyn6c9ygl01zhji6y"; /* updated by script */
};
wmClass = "jetbrains-idea-ce";
update-channel = "IntelliJ IDEA RELEASE";
@@ -294,12 +294,12 @@ in
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
- version = "2021.2.3"; /* updated by script */
+ version = "2021.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
- sha256 = "1d0kk2yydrbzvdy6dy9jqr182panidmbf2hy80gvi5ph2r5rv1qd"; /* updated by script */
+ sha256 = "0riwww75aizprb01c1sccprbr00ky5wgy5cxxjxqgm8v72rfnihb"; /* updated by script */
};
wmClass = "jetbrains-idea";
update-channel = "IntelliJ IDEA RELEASE";
@@ -307,13 +307,13 @@ in
mps = buildMps rec {
name = "mps-${version}";
- version = "2021.2.1"; /* updated by script */
+ version = "2021.2.2"; /* updated by script */
versionMajorMinor = "2021.2"; /* updated by script */
description = "Create your own domain-specific language";
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/mps/${versionMajorMinor}/MPS-${version}.tar.gz";
- sha256 = "1yawjc5xwga1mmlsl3068ml532941mq08i9ji3dhj1nwdkyav2jz"; /* updated by script */
+ sha256 = "011prnpab72kfgkwq0ms27qqnjamh33h023gb01fxvqwwzcmp6sk"; /* updated by script */
};
wmClass = "jetbrains-mps";
update-channel = "MPS RELEASE";
@@ -334,12 +334,12 @@ in
pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}";
- version = "2021.2.2"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "PyCharm Community Edition";
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "0s9kk3n5ac6lvqi2yw9gvvm45865jchiwyrs8pq2dgdkgaligrjv"; /* updated by script */
+ sha256 = "0m98qhkgwnmqkay8sclfyig2xcqvpva74l2kdira3r5sbszmxvcr"; /* updated by script */
};
wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm RELEASE";
@@ -347,12 +347,12 @@ in
pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}";
- version = "2021.2.2"; /* updated by script */
+ version = "2021.2.3"; /* updated by script */
description = "PyCharm Professional Edition";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "0mgmmf926n3ipr8fxn6f9hsa5vkil8yrw5qlixi8nwnx7chmkp56"; /* updated by script */
+ sha256 = "0zp72ag9jqhq0sv4x5n43d6g9y2yzkxa4pkflc7gd5rpg555cqr7"; /* updated by script */
};
wmClass = "jetbrains-pycharm";
update-channel = "PyCharm RELEASE";
@@ -373,12 +373,12 @@ in
ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}";
- version = "2021.2.3"; /* updated by script */
+ version = "2021.3"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
- sha256 = "0bbq5ya1dxrgaqqqsc4in4rgv7v292hww3bb0vpzwz6dmc2jly1i"; /* updated by script */
+ sha256 = "1vmybxnwyv7wiv3clm857yvzlws0bcza01wx8jm0dbnrzq38dz4d"; /* updated by script */
};
wmClass = "jetbrains-rubymine";
update-channel = "RubyMine RELEASE";
@@ -386,12 +386,12 @@ in
webstorm = buildWebStorm rec {
name = "webstorm-${version}";
- version = "2021.2.2"; /* updated by script */
+ version = "2021.3"; /* updated by script */
description = "Professional IDE for Web and JavaScript development";
license = lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
- sha256 = "1a3vlqza9nbc4a2qxrzdckmq003zx1db9dy7wx462amc8sbh6v92"; /* updated by script */
+ sha256 = "1llz97r95xrf7yixgbfipg153qikkxziwwhv9dvvi29v7pi1k4ys"; /* updated by script */
};
wmClass = "jetbrains-webstorm";
update-channel = "WebStorm RELEASE";
diff --git a/third_party/nixpkgs/pkgs/applications/editors/jucipp/default.nix b/third_party/nixpkgs/pkgs/applications/editors/jucipp/default.nix
index 140bf04c9f..7a57e21710 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/jucipp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/jucipp/default.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchgit, dconf, gtksourceview3, at-spi2-core, gtksourceviewmm,
- boost, epoxy, cmake, aspell, llvmPackages, libgit2, pkg-config, pcre,
+ boost, libepoxy, cmake, aspell, llvmPackages, libgit2, pkg-config, pcre,
libXdmcp, libxkbcommon, libpthreadstubs, wrapGAppsHook, aspellDicts, gtkmm3,
coreutils, glibc, dbus, openssl, libxml2, gnumake, ctags }:
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
gtksourceview3
at-spi2-core
pcre
- epoxy
+ libepoxy
boost
libXdmcp
cmake
diff --git a/third_party/nixpkgs/pkgs/applications/editors/kakoune/default.nix b/third_party/nixpkgs/pkgs/applications/editors/kakoune/default.nix
index 2562a821b8..e8c2760973 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/kakoune/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with lib;
stdenv.mkDerivation rec {
pname = "kakoune-unwrapped";
- version = "2021.08.28";
+ version = "2021.11.08";
src = fetchFromGitHub {
repo = "kakoune";
owner = "mawww";
rev = "v${version}";
- sha256 = "13kc68vkrzg89khir6ayyxgbnmz16dhippcnw09hhzxivf5ayzpy";
+ sha256 = "sha256-lMGMt0H1G8EN/7zSVSvU1yU4BYPnSF1vWmozLdrRTQk=";
};
makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix b/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
index 5ff2a03441..cf9a65c43f 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update-shell.nix b/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update-shell.nix
new file mode 100644
index 0000000000..ca83f09c71
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update-shell.nix
@@ -0,0 +1,15 @@
+{ pkgs ? import ../../../../.. { } }:
+
+with pkgs;
+let
+ pyEnv = python3.withPackages (ps: [ ps.GitPython ]);
+in
+
+mkShell {
+ packages = [
+ bash
+ pyEnv
+ nix
+ nix-prefetch-scripts
+ ];
+}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py b/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py
index 40a28d9afe..9f5f64f9e5 100755
--- a/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py
+++ b/third_party/nixpkgs/pkgs/applications/editors/kakoune/plugins/update.py
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#!nix-shell -p nix-prefetch-git -p python3 -p python3Packages.GitPython nix -i python3
+#!nix-shell update-shell.nix -i python3
# format:
# $ nix run nixpkgs.python3Packages.black -c black update.py
diff --git a/third_party/nixpkgs/pkgs/applications/editors/kile/default.nix b/third_party/nixpkgs/pkgs/applications/editors/kile/default.nix
index 6819c4337f..686113452e 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/kile/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/kile/default.nix
@@ -22,10 +22,11 @@
}:
mkDerivation rec {
- name = "kile-2.9.93";
+ pname = "kile";
+ version = "2.9.93";
src = fetchurl {
- url = "mirror://sourceforge/kile/${name}.tar.bz2";
+ url = "mirror://sourceforge/kile/kile-${version}.tar.bz2";
sha256 = "BEmSEv/LJPs6aCkUmnyuTGrV15WYXwgIANbfcviMXfA=";
};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix b/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
index cf4a752b1b..ee22c591ad 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "leo-editor";
- version = "6.2.1";
+ version = "6.5";
src = fetchFromGitHub {
owner = "leo-editor";
repo = "leo-editor";
rev = version;
- sha256 = "1s9jvxwzsl32clp78g92nq9p2byf08libr5widl1jnkv1cpkbvh9";
+ sha256 = "sha256-f237oXhnu6OtGVhIFDswFwfjcLgYWvLNRtVW4SChFzU=";
};
dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/applications/editors/libresprite/default.nix b/third_party/nixpkgs/pkgs/applications/editors/libresprite/default.nix
new file mode 100644
index 0000000000..18fbf56687
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/libresprite/default.nix
@@ -0,0 +1,111 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, cmake
+, pkg-config
+, ninja
+, gtest
+
+, curl
+, freetype
+, giflib
+, libjpeg
+, libpng
+, libwebp
+, pixman
+, tinyxml
+, zlib
+, SDL2
+, SDL2_image
+, lua
+, AppKit
+, Cocoa
+, Foundation
+
+, nixosTests
+}:
+
+stdenv.mkDerivation rec {
+ pname = "libresprite";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "LibreSprite";
+ repo = "LibreSprite";
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "sha256-d8GmVHYomDb74iSeEhJEVTHvbiVXggXg7xSqIKCUSzY=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ninja
+ gtest
+ ];
+
+ buildInputs = [
+ curl
+ freetype
+ giflib
+ libjpeg
+ libpng
+ libwebp
+ pixman
+ tinyxml
+ zlib
+ SDL2
+ SDL2_image
+ lua
+ # no v8 due to missing libplatform and libbase
+ ] ++ lib.optionals stdenv.isDarwin [
+ AppKit
+ Cocoa
+ Foundation
+ ];
+
+ cmakeFlags = [
+ "-DWITH_DESKTOP_INTEGRATION=ON"
+ "-DWITH_WEBP_SUPPORT=ON"
+ ];
+
+ hardeningDisable = lib.optional stdenv.isDarwin "format";
+
+ # Install mime icons. Note that the mimetype is still "x-aseprite"
+ postInstall = ''
+ src="$out/share/libresprite/data/icons"
+ for size in 16 32 48 64; do
+ dst="$out"/share/icons/hicolor/"$size"x"$size"
+ install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png
+ done
+ '';
+
+ passthru.tests = {
+ libresprite-can-open-png = nixosTests.libresprite;
+ };
+
+ meta = with lib; {
+ homepage = "https://libresprite.github.io/";
+ description = "Animated sprite editor & pixel art tool, fork of Aseprite";
+ license = licenses.gpl2Only;
+ longDescription =
+ ''LibreSprite is a program to create animated sprites. Its main features are:
+
+ - Sprites are composed by layers & frames (as separated concepts).
+ - Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
+ - Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
+ - Export/import animations to/from Sprite Sheets.
+ - Tiled drawing mode, useful to draw patterns and textures.
+ - Undo/Redo for every operation.
+ - Real-time animation preview.
+ - Multiple editors support.
+ - Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
+ - Onion skinning.
+ '';
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ # https://github.com/LibreSprite/LibreSprite/issues/308
+ broken = stdenv.isDarwin && stdenv.isAarch64;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/lifeograph/default.nix b/third_party/nixpkgs/pkgs/applications/editors/lifeograph/default.nix
new file mode 100644
index 0000000000..b998b02f50
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/lifeograph/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja
+, enchant, gtkmm3, libchamplain, libgcrypt }:
+
+stdenv.mkDerivation rec {
+ pname = "lifeograph";
+ version = "2.0.2";
+
+ src = fetchgit {
+ url = "https://git.launchpad.net/lifeograph";
+ # Specific commit hash related to version
+ rev = "d635bbb30011c0d33c33643e6fa5c006f98ed7d6";
+ sha256 = "0j9wn5bj7cbfnmyyx7ikx961sksv50agnb53prymldbsq43rfgnq";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ ];
+
+ buildInputs = [
+ libgcrypt
+ enchant
+ gtkmm3
+ libchamplain
+ ];
+
+ postInstall = ''
+ substituteInPlace $out/share/applications/net.sourceforge.Lifeograph.desktop \
+ --replace "Exec=" "Exec=$out/bin/"
+ '';
+
+ meta = with lib; {
+ homepage = "http://lifeograph.sourceforge.net/wiki/Main_Page";
+ description = "Lifeograph is an off-line and private journal and note taking application";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch b/third_party/nixpkgs/pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch
new file mode 100644
index 0000000000..e7a2287427
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch
@@ -0,0 +1,91 @@
+diff --git a/data/core/commands/findreplace.lua b/data/core/commands/findreplace.lua
+index 5d27aa6..db6a2dd 100644
+--- a/data/core/commands/findreplace.lua
++++ b/data/core/commands/findreplace.lua
+@@ -37,7 +37,7 @@ local function update_preview(sel, search_fn, text)
+ last_view:scroll_to_line(line2, true)
+ found_expression = true
+ else
+- last_view.doc:set_selection(unpack(sel))
++ last_view.doc:set_selection(table.unpack(sel))
+ found_expression = false
+ end
+ end
+@@ -55,7 +55,7 @@ end
+ local function find(label, search_fn)
+ last_view, last_sel = core.active_view,
+ { core.active_view.doc:get_selection() }
+- local text = last_view.doc:get_text(unpack(last_sel))
++ local text = last_view.doc:get_text(table.unpack(last_sel))
+ found_expression = false
+
+ core.command_view:set_text(text, true)
+@@ -69,8 +69,8 @@ local function find(label, search_fn)
+ last_fn, last_text = search_fn, text
+ else
+ core.error("Couldn't find %q", text)
+- last_view.doc:set_selection(unpack(last_sel))
+- last_view:scroll_to_make_visible(unpack(last_sel))
++ last_view.doc:set_selection(table.unpack(last_sel))
++ last_view:scroll_to_make_visible(table.unpack(last_sel))
+ end
+ end, function(text)
+ update_preview(last_sel, search_fn, text)
+@@ -79,8 +79,8 @@ local function find(label, search_fn)
+ end, function(explicit)
+ core.status_view:remove_tooltip()
+ if explicit then
+- last_view.doc:set_selection(unpack(last_sel))
+- last_view:scroll_to_make_visible(unpack(last_sel))
++ last_view.doc:set_selection(table.unpack(last_sel))
++ last_view:scroll_to_make_visible(table.unpack(last_sel))
+ end
+ end)
+ end
+diff --git a/data/core/doc/init.lua b/data/core/doc/init.lua
+index 2e72907..0e61ffb 100644
+--- a/data/core/doc/init.lua
++++ b/data/core/doc/init.lua
+@@ -198,9 +198,9 @@ local function selection_iterator(invariant, idx)
+ local target = invariant[3] and (idx*4 - 7) or (idx*4 + 1)
+ if target > #invariant[1] or target <= 0 or (type(invariant[3]) == "number" and invariant[3] ~= idx - 1) then return end
+ if invariant[2] then
+- return idx+(invariant[3] and -1 or 1), sort_positions(unpack(invariant[1], target, target+4))
++ return idx+(invariant[3] and -1 or 1), sort_positions(table.unpack(invariant[1], target, target+4))
+ else
+- return idx+(invariant[3] and -1 or 1), unpack(invariant[1], target, target+4)
++ return idx+(invariant[3] and -1 or 1), table.unpack(invariant[1], target, target+4)
+ end
+ end
+
+@@ -345,7 +345,7 @@ function Doc:raw_insert(line, col, text, undo_stack, time)
+
+ -- push undo
+ local line2, col2 = self:position_offset(line, col, #text)
+- push_undo(undo_stack, time, "selection", unpack(self.selections))
++ push_undo(undo_stack, time, "selection", table.unpack(self.selections))
+ push_undo(undo_stack, time, "remove", line, col, line2, col2)
+
+ -- update highlighter and assure selection is in bounds
+@@ -357,7 +357,7 @@ end
+ function Doc:raw_remove(line1, col1, line2, col2, undo_stack, time)
+ -- push undo
+ local text = self:get_text(line1, col1, line2, col2)
+- push_undo(undo_stack, time, "selection", unpack(self.selections))
++ push_undo(undo_stack, time, "selection", table.unpack(self.selections))
+ push_undo(undo_stack, time, "insert", line1, col1, text)
+
+ -- get line content before/after removed text
+diff --git a/data/core/tokenizer.lua b/data/core/tokenizer.lua
+index d95baeb..f77fed4 100644
+--- a/data/core/tokenizer.lua
++++ b/data/core/tokenizer.lua
+@@ -161,7 +161,7 @@ function tokenizer.tokenize(incoming_syntax, text, state)
+ if count % 2 == 0 then break end
+ end
+ until not res[1] or not close or not target[3]
+- return unpack(res)
++ return table.unpack(res)
+ end
+
+ while i <= #text do
diff --git a/third_party/nixpkgs/pkgs/applications/editors/lite-xl/default.nix b/third_party/nixpkgs/pkgs/applications/editors/lite-xl/default.nix
new file mode 100644
index 0000000000..0c2aed88c0
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/lite-xl/default.nix
@@ -0,0 +1,52 @@
+{ agg
+, fetchFromGitHub
+, Foundation
+, freetype
+, lib
+, lua5_2
+, meson
+, ninja
+, pcre2
+, pkg-config
+, reproc
+, SDL2
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lite-xl";
+ version = "2.0.3";
+
+ src = fetchFromGitHub {
+ owner = "lite-xl";
+ repo = "lite-xl";
+ rev = "v${version}";
+ sha256 = "sha256-8Hw2zDYynWG/NwxtWgbEVUCzrtRVkOhwtsisURNqUn8=";
+ };
+
+ patches = [
+ # Fixes compatibility with Lua5.2, remove patch when a new release covers this
+ ./0001-replace-unpack-with-table-unpack.patch
+ ];
+
+ nativeBuildInputs = [ meson ninja pkg-config ];
+
+ buildInputs = [
+ agg
+ freetype
+ lua5_2
+ pcre2
+ reproc
+ SDL2
+ ] ++ lib.optionals stdenv.isDarwin [
+ Foundation
+ ];
+
+ meta = with lib; {
+ description = "A lightweight text editor written in Lua";
+ homepage = "https://github.com/lite-xl/lite-xl";
+ license = licenses.mit;
+ maintainers = with maintainers; [ boppyt ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/mindforger/default.nix b/third_party/nixpkgs/pkgs/applications/editors/mindforger/default.nix
index 6b93153ec0..2f75fb34cd 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/mindforger/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/neovim/default.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/default.nix
index 8655235f29..b44fc98722 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, cmake, gettext, msgpack, libtermkey, libiconv
, libuv, lua, ncurses, pkg-config
-, unibilium, xsel, gperf
+, unibilium, gperf
, libvterm-neovim
, tree-sitter
, glibcLocales ? null, procps ? null
@@ -32,13 +32,13 @@ let
in
stdenv.mkDerivation rec {
pname = "neovim-unwrapped";
- version = "0.5.1";
+ version = "0.6.0";
src = fetchFromGitHub {
owner = "neovim";
repo = "neovim";
rev = "v${version}";
- sha256 = "0b2gda9h14lvwahrr7kq3ix8wsw99g4ngy1grmhv5544n93ypcyk";
+ sha256 = "sha256-mVVZiDjAsAs4PgC8lHf0Ro1uKJ4OKonoPtF59eUd888=";
};
patches = [
@@ -113,10 +113,6 @@ in
substituteInPlace src/nvim/CMakeLists.txt --replace " util" ""
'';
- postInstall = lib.optionalString stdenv.isLinux ''
- sed -i -e "s|'xsel|'${xsel}/bin/xsel|g" $out/share/nvim/runtime/autoload/provider/clipboard.vim
- '';
-
# export PATH=$PWD/build/bin:${PATH}
shellHook=''
export VIMRUNTIME=$PWD/runtime
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix
index bf0d80d1f0..e721457f2d 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix
@@ -177,7 +177,7 @@ let
assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages.";
wrapNeovimUnstable neovim (res // {
- wrapperArgs = lib.escapeShellArgs res.wrapperArgs + extraMakeWrapperArgs;
+ wrapperArgs = lib.escapeShellArgs res.wrapperArgs + " " + extraMakeWrapperArgs;
wrapRc = (configure != {});
});
in
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
index d94f3239f4..2a0d60ce5a 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -3,6 +3,7 @@
, bundlerEnv, ruby
, nodejs
, nodePackages
+, python3
, python3Packages
, callPackage
}:
@@ -17,7 +18,7 @@ let
, wrapperArgs ? []
, manifestRc ? null
, withPython2 ? false
- , withPython3 ? true, python3Env ? null
+ , withPython3 ? true, python3Env ? python3
, withNodeJs ? false
, rubyEnv ? null
, vimAlias ? false
@@ -59,7 +60,7 @@ let
--replace 'Name=Neovim' 'Name=WrappedNeovim'
''
+ optionalString withPython3 ''
- makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
+ makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH
''
+ optionalString (rubyEnv != null) ''
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
diff --git a/third_party/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/third_party/nixpkgs/pkgs/applications/editors/netbeans/default.nix
index ae53857536..0c40f83b67 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/netbeans/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
}:
let
- version = "12.5";
+ version = "12.6";
desktopItem = makeDesktopItem {
name = "netbeans";
exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
inherit version;
src = fetchurl {
url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
- sha512 = "3yagspb2clcvd87a9vnpwd64w3afm4kyprqyjccpckysh4php5vhf7dfza3zhs4yzmkikc2pfs7470w54mxz9rcmaixh23h3hlgd1ii";
+ hash = "sha512-K0HjEO/yw9h+2+Y5CvxyYG1+kx+KH9NSn+QsKCsvh/rG/ilYLYyy93iZfx+wzwrgEfRtfMpZGtDAxd6nyUSnCA==";
};
buildCommand = ''
diff --git a/third_party/nixpkgs/pkgs/applications/editors/oni2/common.nix b/third_party/nixpkgs/pkgs/applications/editors/oni2/common.nix
new file mode 100644
index 0000000000..e049c3ae64
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/oni2/default.nix b/third_party/nixpkgs/pkgs/applications/editors/oni2/default.nix
new file mode 100644
index 0000000000..6721cf24d9
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch b/third_party/nixpkgs/pkgs/applications/editors/oni2/esy_skia_use_nixpkgs.patch
new file mode 100644
index 0000000000..50a1802816
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/oni2/extensions.lock b/third_party/nixpkgs/pkgs/applications/editors/oni2/extensions.lock
new file mode 100644
index 0000000000..2e757cdf94
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/oni2/extensions.nix b/third_party/nixpkgs/pkgs/applications/editors/oni2/extensions.nix
new file mode 100644
index 0000000000..08c8f207f4
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/oni2/node.lock b/third_party/nixpkgs/pkgs/applications/editors/oni2/node.lock
new file mode 100644
index 0000000000..59f8e0ae5e
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/oni2/node.nix b/third_party/nixpkgs/pkgs/applications/editors/oni2/node.nix
new file mode 100644
index 0000000000..2cf69bb732
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/poke/default.nix b/third_party/nixpkgs/pkgs/applications/editors/poke/default.nix
index a24666741e..cdfacaf92e 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/poke/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/poke/default.nix
@@ -19,13 +19,15 @@ let
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in stdenv.mkDerivation rec {
pname = "poke";
- version = "1.3";
+ version = "1.4";
src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
- hash = "sha256-unhjA0obCABLDuj4i9qUFgcH6aeB1VVvVVtQdYPPDxs=";
+ sha256 = "sha256-zgVN8pVgySEjATJwPuRJ/hMLbiWrA6psx5a7QBUGqiQ=";
};
+ outputs = [ "out" "dev" "info" "lib" "man" ];
+
postPatch = ''
patchShebangs .
'';
@@ -46,7 +48,9 @@ in stdenv.mkDerivation rec {
++ lib.optional textStylingSupport gettext
++ lib.optional (!isCross) dejagnu;
- configureFlags = lib.optionals guiSupport [
+ configureFlags = [
+ "--datadir=${placeholder "lib"}/share"
+ ] ++ lib.optionals guiSupport [
"--with-tcl=${tcl}/lib"
"--with-tk=${tk}/lib"
"--with-tkinclude=${tk.dev}/include"
@@ -57,6 +61,10 @@ in stdenv.mkDerivation rec {
doCheck = !isCross;
checkInputs = lib.optionals (!isCross) [ dejagnu ];
+ postInstall = ''
+ moveToOutput share/emacs "$out"
+ '';
+
meta = with lib; {
description = "Interactive, extensible editor for binary data";
homepage = "http://www.jemarch.net/poke";
diff --git a/third_party/nixpkgs/pkgs/applications/editors/rstudio/default.nix b/third_party/nixpkgs/pkgs/applications/editors/rstudio/default.nix
index 3ccdd70c45..62c3a93f76 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/rstudio/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix b/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix
index 334f8b79c4..6b380e32bc 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix
@@ -18,13 +18,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "setzer";
- version = "0.4.1";
+ version = "0.4.2";
src = fetchFromGitHub {
owner = "cvfosammmm";
repo = "Setzer";
rev = "v${version}";
- sha256 = "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av";
+ sha256 = "sha256-uh6mXXJP/EpfvHTXL7PH+Yd1F5Q+6B01ns4vRr/2Xqo=";
};
format = "other";
@@ -53,6 +53,7 @@ python3.pkgs.buildPythonApplication rec {
pyxdg
pdfminer
pycairo
+ pexpect
];
checkPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix b/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
index 7102d69513..7f14bf8ae1 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
@@ -1,26 +1,28 @@
{ fetchurl, lib, stdenv, glib, xorg, cairo, gtk2, makeDesktopItem }:
let
- libPath = lib.makeLibraryPath [glib xorg.libX11 gtk2 cairo];
+ libPath = lib.makeLibraryPath [ glib xorg.libX11 gtk2 cairo ];
in
stdenv.mkDerivation rec {
- name = "sublimetext-2.0.2";
+ pname = "sublimetext";
+ version = "2.0.2";
+
src =
if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
- name = "sublimetext-2.0.2.tar.bz2";
+ name = "sublimetext-${version}.tar.bz2";
urls = [
- "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
- "https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2"
+ "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20${version}.tar.bz2"
+ "https://download.sublimetext.com/Sublime%20Text%20${version}.tar.bz2"
];
sha256 = "026g5mppk28lzzzn9ibykcqkrd5msfmg0sc0z8w8jd7v3h28wcq7";
}
else
fetchurl {
- name = "sublimetext-2.0.2.tar.bz2";
+ name = "sublimetext-${version}.tar.bz2";
urls = [
- "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
- "https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2"
+ "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20${version}.tar.bz2"
+ "https://download.sublimetext.com/Sublime%20Text%20${version}%20x64.tar.bz2"
];
sha256 = "115b71nbv9mv8cz6bkjwpbdf2ywnjc1zy2d3080f6ck4sqqfvfh1";
};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/sublime/4/packages.nix b/third_party/nixpkgs/pkgs/applications/editors/sublime/4/packages.nix
index bbef0d8a40..3c098be589 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/sublime/4/packages.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix b/third_party/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
index ec713d9937..6888cebec2 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, mono, gtk-sharp-2_0, pkg-config, makeWrapper, gnome2, gtk2 }:
stdenv.mkDerivation {
- version = "git-2014-08-20";
+ version = "unstable-2014-08-20";
pname = "supertux-editor";
src = fetchFromGitHub {
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ pkg-config makeWrapper ];
- buildInputs = [mono gtk-sharp-2_0 gnome2.libglade gtk2 ];
+ buildInputs = [ mono gtk-sharp-2_0 gnome2.libglade gtk2 ];
installPhase = ''
mkdir -p $out/bin $out/lib/supertux-editor
diff --git a/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix
index 6b1b34e11c..950fa79bb2 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "texstudio";
- version = "4.0.2";
+ version = "4.1.1";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
- sha256 = "sha256-SCrWoIZan8mFwQoXaXvM0Ujdhcic3FbmfgKZSFXFBGE=";
+ sha256 = "sha256-zsZBqheHrjd17pXDIG0qWd7KI/zhNl3sQS5No0WvnBY=";
};
nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/thonny/default.nix b/third_party/nixpkgs/pkgs/applications/editors/thonny/default.nix
index fb5cb4b8e4..20d25bb616 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/thonny/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix b/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix
index 89d49f5e62..e068f7df50 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
- version = "8.2.3337";
+ version = "8.2.3451";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
- sha256 = "sha256-iwSGcLeqXH0bVIXEI5OnotG88Uv8ntycisD9EcHjz/c=";
+ sha256 = "sha256-8OaEaFyOaL59j0EZkUY+kuR6si79H2dN09f8SnltxbQ=";
};
enableParallelBuilding = true;
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index d08f80fda6..082979605f 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "1yfaf9qdaf6njvj8kilmivyl0nnhdvd9hbzpf8hv3kw5rfpdvy89";
- x86_64-darwin = "10rx5aif61xipf5lcjzkidz9dhbm5gc2wf87c2j456nixaxbx0b4";
- aarch64-linux = "13h4ffdm9y9p3jnqcjvapykbm73bkjy5jaqwhsi293f9r7jfp9rf";
- aarch64-darwin = "07nmrxc25rfp5ibarhg3c14ksk2ymqmsnc55hicvvhw93g2qczby";
- armv7l-linux = "1gz1mmw2vp986l9sm7rd6hypxs70sz63sbmzyxwfqpvj973dl23q";
+ x86_64-linux = "0wf8bmzag49n81kjb46kj2nkksimm8f7cf4ihpqcw8k5iwasn3j9";
+ x86_64-darwin = "1s7i5087bvckg66mcb32krv12vxhaw7ii9vm3i6p72wr0sv7dddh";
+ aarch64-linux = "0yzh5javinvas3zz0lliyc77vbcs1jrmxbkr7nic4snscg6wjhcd";
+ aarch64-darwin = "13l6ymz7v18s7ikxbwvkwb0f5ff2j82j5pfj04yy75kq9b5gh0vx";
+ armv7l-linux = "129wffj9cidk9ysjpq3p0ddn6liwkmrkxhxgz7bqzj8sdhwyq8pz";
}.${system};
in
callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.61.2";
+ version = "1.62.3";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";
@@ -57,7 +57,7 @@ in
homepage = "https://code.visualstudio.com/";
downloadPage = "https://code.visualstudio.com/Updates";
license = licenses.unfree;
- maintainers = with maintainers; [ eadwu synthetica maxeaubrey ];
+ maintainers = with maintainers; [ eadwu synthetica maxeaubrey bobby285271 ];
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" "armv7l-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index f014bf1fda..75ac5f160e 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "1q260kjhyx8djl82275ii63z1mzypsz7rkz3pj1n2wjkwsnw276x";
- x86_64-darwin = "1scx155rm8j6dwn0i31b6ajsdxcn1n24p3k6dx248w0zyiwd5wm1";
- aarch64-linux = "1j788a0p767i65ying9pfg6rss8l7g76n2323dnmj12bhxs6cqd1";
- armv7l-linux = "1yfwmfxpilfv2h3pp698pg4wr6dnyzwg0r266xiwsw7z38jh54fk";
+ x86_64-linux = "0g1c88i0nkg4hys00vhqp0i2n3kjl395fd2rimi2p49y042b5c9g";
+ x86_64-darwin = "1521aqrv9zx2r5cy8h2011iz3v5lvayizlgv8j7j8qi272mmvx5k";
+ aarch64-linux = "1kk0jrhqx6q325zmfg553pqmk6v9cx3a99bsh9rzvdlca94nmpj0";
+ armv7l-linux = "08hy61a9pp18b1x7lnsc7b9y3bvnjmavazz7qkhp5qxl2gs802wm";
}.${system};
sourceRoot = {
@@ -31,7 +31,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.61.2";
+ version = "1.62.3";
pname = "vscodium";
executableName = "codium";
@@ -62,7 +62,7 @@ in
homepage = "https://github.com/VSCodium/vscodium";
downloadPage = "https://github.com/VSCodium/vscodium/releases";
license = licenses.mit;
- maintainers = with maintainers; [ synthetica turion ];
+ maintainers = with maintainers; [ synthetica turion bobby285271 ];
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "armv7l-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/xed-editor/default.nix b/third_party/nixpkgs/pkgs/applications/editors/xed-editor/default.nix
index d7b0703b8d..b2539e7dac 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/xed-editor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/xed-editor/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "xed-editor";
- version = "2.8.4";
+ version = "3.0.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "xed";
rev = version;
- sha256 = "1hqr4157kp110p01jygqnnzj86zxlfiq4b53j345vqpx0f80c340";
+ sha256 = "sha256-VIudVgENibOz8RK0oK80U74wy592q3vKEnl3zuS7oSI=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/editors/your-editor/default.nix b/third_party/nixpkgs/pkgs/applications/editors/your-editor/default.nix
index a191943c3f..dd3bde160c 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/your-editor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/your-editor/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "your-editor";
- version = "1203";
+ version = "1206";
src = fetchFromGitHub {
owner = "kammerdienerb";
repo = "yed";
- rev = "608418f2037dc4ef5647e69fcef45302c50f138c";
- sha256 = "KqK2lcDTn91aCFJIDg+h+QsTrl7745So5aiKCxPkeh4=";
+ rev = "6cdd99fe1359899b26d8967bd376fd5caa5451eb";
+ sha256 = "0XECSolW/xPXd1v3sv9HbJMWuHGnwCOwmHoPNCUsE+w=";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/finance/odoo/default.nix b/third_party/nixpkgs/pkgs/applications/finance/odoo/default.nix
new file mode 100644
index 0000000000..69acb43af8
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix b/third_party/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
index 21b4cfa94b..d186d36efc 100644
--- a/third_party/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix b/third_party/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
index 70b5ffcc70..0ec81c785b 100644
--- a/third_party/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/third_party/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
@@ -1,7 +1,6 @@
{ lib
, mkDerivation
, fetchFromGitHub
-, fetchpatch
, cmake
, ninja
, flex
@@ -57,23 +56,16 @@ let
six
];
in mkDerivation rec {
- version = "3.16.10";
+ version = "3.16.14";
pname = "qgis-unwrapped";
src = fetchFromGitHub {
owner = "qgis";
repo = "QGIS";
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
- sha256 = "sha256-/lsfyTDlkZNIVHg5qgZW7qfOyTC2+1r3ZbsnQmEdy30=";
+ sha256 = "sha256-3FUGSBdlhJhhpTPtYuzKOznsC7PJV3kRL9Il2Yryi1Q=";
};
- patches = [
- (fetchpatch {
- url = "https://github.com/qgis/QGIS/commit/fc1ac8bef8dcc3194857ecd32519aca4867b4fa1.patch";
- sha256 = "106smg3drx8c7yxzfhd1c7xrq757l5cfxx8lklihyvr4a7wc9gpy";
- })
- ];
-
passthru = {
inherit pythonBuildInputs;
inherit python3Packages;
@@ -131,6 +123,6 @@ in mkDerivation rec {
homepage = "https://www.qgis.org";
license = lib.licenses.gpl2Plus;
platforms = with lib.platforms; linux;
- maintainers = with lib.maintainers; [ lsix sikmir ];
+ maintainers = with lib.maintainers; [ lsix sikmir erictapen ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/gis/qmapshack/default.nix b/third_party/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
index d0d39e299a..b22a8d408d 100644
--- a/third_party/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
@@ -1,17 +1,25 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake
-, qtscript, qtwebengine, gdal, proj, routino, quazip }:
+{ mkDerivation, lib, fetchFromGitHub, cmake, substituteAll
+, qtscript, qttranslations, qtwebengine, gdal, proj, routino, quazip }:
mkDerivation rec {
pname = "qmapshack";
- version = "1.16.0";
+ version = "1.16.1";
src = fetchFromGitHub {
owner = "Maproom";
repo = pname;
rev = "V_${version}";
- sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx";
+ sha256 = "sha256-2otvRKtFb51PLrIh/Hxltp69n5nyR63HGGvk73TFjqA=";
};
+ patches = [
+ # See https://github.com/NixOS/nixpkgs/issues/86054
+ (substituteAll {
+ src = ./fix-qttranslations-path.patch;
+ inherit qttranslations;
+ })
+ ];
+
nativeBuildInputs = [ cmake ];
buildInputs = [ qtscript qtwebengine gdal proj routino quazip ];
diff --git a/third_party/nixpkgs/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch b/third_party/nixpkgs/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
new file mode 100644
index 0000000000..f91f4228d2
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
@@ -0,0 +1,74 @@
+diff --git i/src/qmapshack/setup/CAppSetupLinux.cpp w/src/qmapshack/setup/CAppSetupLinux.cpp
+index 63ea06c0..3a03b816 100644
+--- i/src/qmapshack/setup/CAppSetupLinux.cpp
++++ w/src/qmapshack/setup/CAppSetupLinux.cpp
+@@ -30,7 +30,7 @@ void CAppSetupLinux::initQMapShack()
+ prepareGdal("", "");
+
+ // setup translators
+- QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++ QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+ QString translationPath = QCoreApplication::applicationDirPath();
+ translationPath.replace(QRegExp("bin$"), "share/qmapshack/translations");
+ prepareTranslator(resourceDir, "qt_");
+diff --git i/src/qmapshack/setup/CAppSetupMac.cpp w/src/qmapshack/setup/CAppSetupMac.cpp
+index ad9b21e9..9dca8a1e 100644
+--- i/src/qmapshack/setup/CAppSetupMac.cpp
++++ w/src/qmapshack/setup/CAppSetupMac.cpp
+@@ -63,7 +63,7 @@ void CAppSetupMac::initQMapShack()
+
+ // setup translators
+ QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+- prepareTranslator(translationPath, "qt_");
++ prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+ prepareTranslator(translationPath, "qmapshack_");
+
+ // load and apply style sheet
+diff --git i/src/qmaptool/setup/CAppSetupLinux.cpp w/src/qmaptool/setup/CAppSetupLinux.cpp
+index dea1c4f3..8da95574 100644
+--- i/src/qmaptool/setup/CAppSetupLinux.cpp
++++ w/src/qmaptool/setup/CAppSetupLinux.cpp
+@@ -29,7 +29,7 @@ void CAppSetupLinux::initQMapTool()
+ prepareGdal("", "");
+
+ // setup translators
+- QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++ QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+ QString translationPath = QCoreApplication::applicationDirPath();
+ translationPath.replace(QRegExp("bin$"), "share/qmaptool/translations");
+ prepareTranslator(resourceDir, "qt_");
+diff --git i/src/qmaptool/setup/CAppSetupMac.cpp w/src/qmaptool/setup/CAppSetupMac.cpp
+index 02b27e07..fae27748 100644
+--- i/src/qmaptool/setup/CAppSetupMac.cpp
++++ w/src/qmaptool/setup/CAppSetupMac.cpp
+@@ -64,7 +64,7 @@ void CAppSetupMac::initQMapTool()
+
+ // setup translators
+ QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+- prepareTranslator(translationPath, "qt_");
++ prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+ prepareTranslator(translationPath, "qmaptool_");
+
+ migrateDirContent(defaultCachePath());
+diff --git i/src/qmt_rgb2pct/main.cpp w/src/qmt_rgb2pct/main.cpp
+index 21267d03..d539cec8 100644
+--- i/src/qmt_rgb2pct/main.cpp
++++ w/src/qmt_rgb2pct/main.cpp
+@@ -50,7 +50,7 @@ static void prepareTranslator(QString translationPath, QString translationPrefix
+ static void loadTranslations()
+ {
+ #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(Q_OS_CYGWIN)
+- QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++ QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+ QString translationPath = QCoreApplication::applicationDirPath();
+ translationPath.replace(QRegExp("bin$"), "share/" APP_STR "/translations");
+ prepareTranslator(resourceDir, "qt_");
+@@ -61,7 +61,7 @@ static void loadTranslations()
+ // os x
+ static QString relTranslationDir = "Resources/translations"; // app
+ QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+- prepareTranslator(translationPath, "qt_");
++ prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+ prepareTranslator(translationPath, APP_STR "_");
+ #endif
+
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/third_party/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
index 78c00b7984..2207618d9b 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -18,13 +18,13 @@ in
stdenv.mkDerivation rec {
pname = "imagemagick";
- version = "7.1.0-11";
+ version = "7.1.0-17";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
- sha256 = "sha256-z7ZpoB8NlcS5NVyoW0ngSlakCcb5qC3bh3xDVYuWS6w=";
+ sha256 = "sha256-P6w7dDDvY8r55qN3hnsuzO8kp85gxp2t6vShmhoPOgs=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/akira/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/akira/default.nix
index 430c582dd7..efa153df15 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/akira/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/ascii-image-converter/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/ascii-image-converter/default.nix
new file mode 100644
index 0000000000..aaed39b50d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/graphics/ascii-image-converter/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ascii-image-converter";
+ version = "1.11.0";
+
+ src = fetchFromGitHub {
+ owner = "TheZoraiz";
+ repo = "ascii-image-converter";
+ rev = "v${version}";
+ sha256 = "DitJnWIz1Dt9yXtyQp/z738IAmG4neYmfc49Wdjos7Q=";
+ };
+
+ runVend = true;
+ vendorSha256 = "JKrBMhzBL1+jlMPudynjOc/ekFiUVaxltyLr4V8QZbg=";
+
+ meta = with lib; {
+ description = "Convert images into ASCII art on the console";
+ homepage = "https://github.com/TheZoraiz/ascii-image-converter#readme";
+ license = licenses.asl20;
+ maintainers = [ maintainers.danth ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
index 129e3e5476..20874dd55e 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, cmake, libpng, libtiff, libjpeg, panotools, libxml2 }:
+{ lib, stdenv, fetchurl, cmake, libpng, libtiff, libjpeg, panotools, libxml2 }:
-stdenv.mkDerivation {
- name = "autopano-sift-C-2.5.1";
+stdenv.mkDerivation rec {
+ pname = "autopano-sift-C";
+ version = "2.5.1";
src = fetchurl {
- url = "mirror://sourceforge/hugin/autopano-sift-C-2.5.1.tar.gz";
+ url = "mirror://sourceforge/hugin/autopano-sift-C-${version}.tar.gz";
sha256 = "0dqk8ff82gmy4v5ns5nr9gpzkc1p7c2y8c8fkid102r47wsjk44s";
};
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix b/third_party/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
index 0f53965786..9555dd4c02 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
@@ -1,7 +1,8 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
- name = "autofig-0.1";
+ pname = "autofig";
+ version = "0.1";
src = fetchurl {
url = "http://autotrace.sourceforge.net/tools/autofig.tar.gz";
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/c3d/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/c3d/default.nix
index 0a4ed51551..e38ca908fe 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/c3d/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/c3d/default.nix
@@ -1,20 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, cmake, itk4, Cocoa }:
+{ lib, stdenv, fetchFromGitHub, cmake, itk, Cocoa }:
stdenv.mkDerivation rec {
pname = "c3d";
- version = "unstable-2020-10-05";
+ version = "unstable-2021-09-14";
src = fetchFromGitHub {
owner = "pyushkevich";
repo = pname;
- rev = "0a87e3972ea403babbe2d05ec6d50855e7c06465";
- sha256 = "0wsmkifqrcfy13fnwvinmnq1m0lkqmpyg7bgbwnb37mbrlbq06wf";
+ rev = "cc06e6e2f04acd3d6faa3d8c9a66b499f02d4388";
+ sha256 = "sha256:1ql1y6694njsmdapywhppb54viyw8wdpaxxr1b3hm2rqhvwmhn52";
};
nativeBuildInputs = [ cmake ];
- buildInputs = [ itk4 ]
+ buildInputs = [ itk ]
++ lib.optional stdenv.isDarwin Cocoa;
+ cmakeFlags = [ "-DCONVERT3D_USE_ITK_REMOTE_MODULES=OFF" ];
+
meta = with lib; {
homepage = "https://github.com/pyushkevich/c3d";
description = "Medical imaging processing tool";
@@ -22,6 +24,6 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
license = licenses.gpl3;
broken = stdenv.isAarch64;
- # /build/git-3453f61/itkextras/OneDimensionalInPlaceAccumulateFilter.txx:311:10: fatal error: xmmintrin.h: No such file or directory
+ # /build/source/itkextras/OneDimensionalInPlaceAccumulateFilter.txx:312:10: fatal error: xmmintrin.h: No such file or directory
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/comical/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/comical/default.nix
index 5c6ec804e6..36da9d2641 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/comical/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/comical/default.nix
@@ -1,13 +1,16 @@
-{lib, stdenv, fetchurl, wxGTK, util-linux, zlib }:
+{ lib, stdenv, fetchurl, wxGTK, util-linux, zlib }:
stdenv.mkDerivation rec {
- name = "comical-0.8";
+ pname = "comical";
+ version = "0.8";
+
src = fetchurl {
- url = "mirror://sourceforge/comical/${name}.tar.gz";
+ url = "mirror://sourceforge/comical/comical-${version}.tar.gz";
sha256 = "0b6527cc06b25a937041f1eb248d0fd881cf055362097036b939817f785ab85e";
};
+
buildInputs = [ wxGTK util-linux zlib ];
- preBuild="makeFlags=\"prefix=$out\"";
+ makeFlags = [ "prefix=${placeholder "out"}" ];
patches = [ ./wxgtk-2.8.patch ];
@@ -17,7 +20,7 @@ stdenv.mkDerivation rec {
description = "Viewer of CBR and CBZ files, often used to store scanned comics";
homepage = "http://comical.sourceforge.net/";
license = lib.licenses.gpl2Plus;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index 5bb94baf76..c05342a2e1 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "drawio";
- version = "14.5.1";
+ version = "15.8.7";
src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
- hash = "sha256-ZrEoeeEhHQOLm/L3KA43Ru5fruIPK35CCUsllwpPB58=";
+ sha256 = "532f9926b4b055cbb741a778d57df42c65c5af82d0a8829e87324eb5e82025e3";
};
nativeBuildInputs = [
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
homepage = "https://about.draw.io/";
license = licenses.asl20;
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
- maintainers = with maintainers; [ ];
+ maintainers = with maintainers; [ darkonion0 ];
platforms = [ "x86_64-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/epick/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/epick/default.nix
index f70f072aea..563853f8f5 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/epick/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/epick/default.nix
@@ -16,16 +16,16 @@
rustPlatform.buildRustPackage rec {
pname = "epick";
- version = "0.5.1";
+ version = "0.6.0";
src = fetchFromGitHub {
owner = "vv9k";
repo = pname;
rev = version;
- sha256 = "0l7m45bqx62nrwi0r4pdwxcq37s7h3nnawk9nq2zpvl9wcgnx3gc";
+ sha256 = "sha256-x1C8kY9VpMg7aXgC/jRsLCeUV8uRLobgjSAQdK2/sHk=";
};
- cargoSha256 = "sha256-LERV3+zwt5oVfyueGfxM7HsOha4cuWTkPyvPQwHSZqo=";
+ cargoSha256 = "sha256-KgQOlvKRt47lg7NteqBa2DLKkDf93JTzp9EIHn3clxY=";
nativeBuildInputs = lib.optional stdenv.isLinux python3;
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
index c31c1407da..2bb480a54f 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, fltk, openexr, libGLU, libGL, ctl }:
-stdenv.mkDerivation {
- name ="openexr_viewers-2.2.1";
+stdenv.mkDerivation rec {
+ pname = "openexr_viewers";
+ version = "2.2.1";
src = fetchurl {
- url = "mirror://savannah/openexr/openexr_viewers-2.2.1.tar.gz";
+ url = "mirror://savannah/openexr/openexr_viewers-${version}.tar.gz";
sha256 = "1ixx2wbjp4rvsf7h3bkja010gl1ihjrcjzy7h20jnn47ikg12vj8";
};
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/f3d/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/f3d/default.nix
index 92875bcaee..d2313313df 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/f3d/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/f3d/default.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, fetchFromGitLab, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
+{ lib, stdenv, fetchFromGitHub, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
stdenv.mkDerivation rec {
pname = "f3d";
- version = "1.1.0";
+ version = "1.1.1";
- src = fetchFromGitLab {
- domain = "gitlab.kitware.com";
- owner = "f3d";
+ src = fetchFromGitHub {
+ owner = "f3d-app";
repo = "f3d";
rev = "v${version}";
- sha256 = "0lj20k5qyw9z85k3wsp05f7dcv7v7asrnppi8i1jm32dzxjm4siw";
+ sha256 = "sha256-ToFP2Q+Oi+MEU9FEe5CNp0pD0bQUBQh34B9guajnqgI=";
};
nativeBuildInputs = [ cmake ];
@@ -20,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Fast and minimalist 3D viewer using VTK";
- homepage = "https://kitware.github.io/F3D";
+ homepage = "https://f3d-app.github.io/f3d";
license = licenses.bsd3;
maintainers = with maintainers; [ bcdarwin ];
platforms = with platforms; unix;
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/fbida/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/fbida/default.nix
index f2d2e26759..5cd574bf9b 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/fbida/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/fbida/default.nix
@@ -1,25 +1,69 @@
-{ lib, stdenv, fetchurl, libjpeg, libexif, giflib, libtiff, libpng, libwebp, libdrm
-, pkg-config, freetype, fontconfig, which, imagemagick, curl, sane-backends, libXpm
-, epoxy, poppler, mesa, lirc }:
+{ lib
+, stdenv
+, fetchurl
+, libjpeg
+, libexif
+, giflib
+, libtiff
+, libpng
+, libwebp
+, libdrm
+, pkg-config
+, freetype
+, fontconfig
+, which
+, imagemagick
+, curl
+, sane-backends
+, libXpm
+, libepoxy
+, poppler
+, mesa
+, lirc
+}:
stdenv.mkDerivation rec {
- name = "fbida-2.14";
+ pname = "fbida";
+ version = "2.14";
src = fetchurl {
- url = "http://dl.bytesex.org/releases/fbida/${name}.tar.gz";
+ url = "http://dl.bytesex.org/releases/fbida/fbida-${version}.tar.gz";
sha256 = "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm";
};
+ patches = [
+ # Upstream patch to fix build on -fno-common toolchains.
+ (fetchurl {
+ name = "no-common.patch";
+ url = "https://git.kraxel.org/cgit/fbida/patch/?id=1bb8a8aa29845378903f3c690e17c0867c820da2";
+ sha256 = "0n5vqbp8wd87q60zfwdf22jirggzngypc02ha34gsj1rd6pvwahi";
+ })
+ ];
+
nativeBuildInputs = [ pkg-config which ];
buildInputs = [
- libexif libjpeg libpng giflib freetype fontconfig libtiff libwebp
- imagemagick curl sane-backends libdrm libXpm epoxy poppler lirc
+ libexif
+ libjpeg
+ libpng
+ giflib
+ freetype
+ fontconfig
+ libtiff
+ libwebp
+ imagemagick
+ curl
+ sane-backends
+ libdrm
+ libXpm
+ libepoxy
+ poppler
+ lirc
mesa
];
makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" "JPEG_VER=62" ];
- patchPhase = ''
+ postPatch = ''
sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile
sed -e 's@$(HAVE_LINUX_FB_H)@yes@' -i GNUmakefile
'';
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/fiji/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/fiji/default.nix
new file mode 100644
index 0000000000..18fdc2c55a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/graphics/fiji/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, autoPatchelfHook
+, jdk11
+, makeDesktopItem
+, copyDesktopItems
+, runtimeShell
+}:
+stdenv.mkDerivation rec {
+ pname = "fiji";
+ version = "20201104-1356";
+
+ src = fetchurl {
+ url = "https://downloads.imagej.net/${pname}/archive/${version}/${pname}-nojre.tar.gz";
+ sha256 = "1jv4wjjkpid5spr2nk5xlvq3hg687qx1n5zh8zlw48y1y09c4q7a";
+ };
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper copyDesktopItems ];
+ buildInputs = [ stdenv.cc.cc.lib ];
+
+ desktopItems = [
+ (makeDesktopItem {
+ name = "fiji";
+ exec = "fiji %F";
+ icon = "fiji";
+ mimeType = "image/*;";
+ comment = "Scientific Image Analysis";
+ desktopName = "Fiji Is Just ImageJ";
+ genericName = "Fiji Is Just ImageJ";
+ categories = "Education;Science;ImageProcessing;";
+ terminal = false;
+ startupNotify = true;
+ extraEntries = ''
+ Version=1.0
+ TryExec=fiji
+ X-GNOME-FullName=Fiji Is Just ImageJ
+ StartupWMClass=fiji-Main
+ '';
+ })
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,fiji,share/pixmaps}
+
+ cp -R * $out/fiji
+ rm -f $out/fiji/jars/imagej-updater-*.jar
+
+ # Disgusting hack to stop a local desktop entry being created
+ cat < $out/bin/.fiji-launcher-hack
+ #!${runtimeShell}
+ exec \$($out/fiji/ImageJ-linux64 --dry-run "\$@")
+ EOF
+ chmod +x $out/bin/.fiji-launcher-hack
+
+ makeWrapper $out/bin/.fiji-launcher-hack $out/bin/fiji \
+ --prefix PATH : ${lib.makeBinPath [ jdk11 ]} \
+ --set JAVA_HOME ${jdk11.home}
+
+ ln $out/fiji/images/icon.png $out/share/pixmaps/fiji.png
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ homepage = "https://imagej.net/software/fiji/";
+ description = "batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
+ platforms = [ "x86_64-linux" ];
+ license = with lib.licenses; [ gpl2Plus gpl3Plus bsd2 publicDomain ];
+ maintainers = with maintainers; [ zane ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/fluxus/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
index 3db183b253..70d35ed671 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
@@ -17,7 +17,7 @@
, ode
, openal
, openssl
-, racket
+, racket_7_9
, sconsPackages
, zlib
}:
@@ -42,6 +42,7 @@ let
openssl
zlib
];
+ racket = racket_7_9;
in
stdenv.mkDerivation rec {
pname = "fluxus";
@@ -67,7 +68,7 @@ stdenv.mkDerivation rec {
ode
openal
openssl.dev
- racket
+ racket_7_9
];
nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/fondo/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/fondo/default.nix
index abcb77f9f8..c8d6fc6030 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/fondo/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/freepv/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/freepv/default.nix
index bf990c4d0e..d11798a9b2 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/freepv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/freepv/default.nix
@@ -1,11 +1,24 @@
-{ lib, stdenv, fetchurl, libjpeg, libGLU, libGL, freeglut, zlib, cmake, libX11, libxml2, libpng,
- libXxf86vm }:
+{ lib
+, stdenv
+, fetchurl
+, libjpeg
+, libGLU
+, libGL
+, freeglut
+, zlib
+, cmake
+, libX11
+, libxml2
+, libpng
+, libXxf86vm
+}:
-stdenv.mkDerivation {
- name = "freepv-0.3.0";
+stdenv.mkDerivation rec {
+ pname = "freepv";
+ version = "0.3.0";
src = fetchurl {
- url = "mirror://sourceforge/freepv/freepv-0.3.0.tar.gz";
+ url = "mirror://sourceforge/freepv/freepv-${version}.tar.gz";
sha256 = "1w19abqjn64w47m35alg7bcdl1p97nf11zn64cp4p0dydihmhv56";
};
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/gimp/default.nix
index 86550b8737..c9472e9a15 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/gimp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -144,9 +144,9 @@ in stdenv.mkDerivation rec {
enableParallelBuilding = true;
- # on Darwin,
- # test-eevl.c:64:36: error: initializer element is not a compile-time constant
- doCheck = !stdenv.isDarwin;
+ doCheck = true;
+
+ NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-DGDK_OSX_BIG_SUR=16";
# Check if librsvg was built with --disable-pixbuf-loader.
PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
index 1715542adc..fe1afe5b07 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -125,6 +125,8 @@ in
buildInputs = with pkgs; [ fftw ];
postPatch = ''
+ substituteInPlace Makefile --replace '$(GCC)' '$(CC)'
+
# The tarball contains a prebuilt binary.
make clean
'';
@@ -168,15 +170,19 @@ in
};
texturize = pluginDerivation {
- name = "texturize-2.2.2017-07-28";
+ pname = "texturize";
+ version = "2.2+unstable=2021-12-03";
src = fetchFromGitHub {
owner = "lmanul";
repo = "gimp-texturize";
- rev = "de4367f71e40fe6d82387eaee68611a80a87e0e1";
- sha256 = "1zzvbczly7k456c0y6s92a1i8ph4ywmbvdl8i4rcc29l4qd2z8fw";
+ rev = "9ceff0d411cda018108e5477320669b8d00d811e";
+ sha256 = "haYS0K3oAPlHtHB8phOCX5/gtWq9uiVQhG5ZhAFX0t0=";
};
- installPhase = "installPlugin src/texturize";
- meta.broken = true; # https://github.com/lmanul/gimp-texturize/issues/1
+ nativeBuildInputs = with pkgs; [
+ meson
+ ninja
+ gettext
+ ];
};
waveletSharpen = pluginDerivation {
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/gocr/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/gocr/default.nix
index 3c87e62e3d..21ba4c662c 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/gocr/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/gocr/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, tk }:
stdenv.mkDerivation rec {
- name = "gocr-0.52";
+ pname = "gocr";
+ version = "0.52";
src = fetchurl {
- url = "https://www-e.uni-magdeburg.de/jschulen/ocr/${name}.tar.gz";
+ url = "https://www-e.uni-magdeburg.de/jschulen/ocr/gocr-${version}.tar.gz";
sha256 = "11l6gds1lrm8lwrrsxnm5fjlwz8q1xbh896cprrl4psz21in946z";
};
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/gpicview/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/gpicview/default.nix
index b661ba562f..edafa5612a 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/gpicview/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/gpicview/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, fetchpatch }:
-stdenv.mkDerivation {
- name = "gpicview-0.2.4";
+stdenv.mkDerivation rec {
+ pname = "gpicview";
+ version = "0.2.4";
src = fetchurl {
- url = "mirror://sourceforge/lxde/gpicview-0.2.4.tar.gz";
+ url = "mirror://sourceforge/lxde/gpicview-${version}.tar.gz";
sha256 = "1svcy1c8bgk0pl12yhyv16h2fl52x5vzzcv57z6qdcv5czgvgglr";
};
@@ -15,15 +16,16 @@ stdenv.mkDerivation {
})
];
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ intltool gtk2 ];
+
meta = with lib; {
description = "A simple and fast image viewer for X";
- homepage = "http://lxde.sourceforge.net/gpicview/";
+ homepage = "http://lxde.sourceforge.net/gpicview/";
repositories.git = "git://lxde.git.sourceforge.net/gitroot/lxde/gpicview";
- license = licenses.gpl2;
+ license = licenses.gpl2;
maintainers = with maintainers; [ lovek323 ];
- platforms = platforms.unix;
+ platforms = platforms.unix;
};
-
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ intltool gtk2 ];
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/gqview/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/gqview/default.nix
index 39f7a42b3b..427429404a 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/gqview/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/gqview/default.nix
@@ -1,20 +1,17 @@
-{lib, stdenv, fetchurl, pkg-config, gtk2, libpng}:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, libpng }:
-assert pkg-config != null && gtk2 != null && libpng != null;
-# Note that we cannot just copy gtk's png attribute, since gtk might
-# not be linked against png.
-# !!! assert libpng == gtk2.libpng;
-
-stdenv.mkDerivation {
- name = "gqview-2.1.5";
+stdenv.mkDerivation rec {
+ pname = "gqview";
+ version = "2.1.5";
src = fetchurl {
- url = "mirror://sourceforge/gqview/gqview-2.1.5.tar.gz";
+ url = "mirror://sourceforge/gqview/gqview-${version}.tar.gz";
sha256 = "0ilm5s7ps9kg4f5hzgjhg0xhn6zg0v9i7jnd67zrx9h7wsaa9zhj";
};
nativeBuildInputs = [ pkg-config ];
- buildInputs = [ gtk2 libpng];
+
+ buildInputs = [ gtk2 libpng ];
hardeningDisable = [ "format" ];
@@ -25,5 +22,6 @@ stdenv.mkDerivation {
homepage = "http://gqview.sourceforge.net";
license = licenses.gpl2;
platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/grafx2/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/grafx2/default.nix
index 3529f827b4..df570008b0 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/grafx2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/grafx2/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
homepage = "http://pulkomandy.tk/projects/GrafX2";
license = lib.licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
- maintainers = [ lib.maintainers.zoomulator ];
+ maintainers = [];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
index 13752bfc05..268e59d910 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
index 4f76af0afb..e9c624d3c9 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with lib;
perlPackages.buildPerlPackage rec {
pname = "gscan2pdf";
- version = "2.12.3";
+ version = "2.12.4";
src = fetchurl {
url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
- sha256 = "tdXTcoI7DnrBsXtXR0r07hz0lDcAjZJad+o4wwxHcOk=";
+ sha256 = "sha256-UrBt0QkSk7IP4mZYFoxFNJQ1Qmcb53CemvlYfsxjZ/s=";
};
nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/hdr-plus/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/hdr-plus/default.nix
index 15042e6877..0d2f196600 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/hdr-plus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/hdr-plus/default.nix
@@ -22,6 +22,10 @@ stdenv.mkDerivation rec {
})
];
+ postPatch = ''
+ sed -i '2a #include ' src/InputSource.h
+ '';
+
nativeBuildInputs = [ cmake ];
buildInputs = [ halide libpng libjpeg libtiff libraw ];
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/hugin/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/hugin/default.nix
index a83070e5e6..ec2ac709f8 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/hugin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/hugin/default.nix
@@ -1,14 +1,46 @@
-{ lib, stdenv, cmake, fetchurl, gnumake, makeWrapper, pkg-config, fetchpatch
-, autopanosiftc, boost, cairo, enblend-enfuse, exiv2, fftw, flann, gettext
-, glew, ilmbase, lcms2, lensfun, libjpeg, libpng, libtiff, libX11, libXi
-, libXmu, libGLU, libGL, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
+{ lib
+, stdenv
+, cmake
+, fetchurl
+, gnumake
+, makeWrapper
+, pkg-config
+, fetchpatch
+, autopanosiftc
+, boost
+, cairo
+, enblend-enfuse
+, exiv2
+, fftw
+, flann
+, gettext
+, glew
+, ilmbase
+, lcms2
+, lensfun
+, libjpeg
+, libpng
+, libtiff
+, libX11
+, libXi
+, libXmu
+, libGLU
+, libGL
+, openexr
+, panotools
+, perlPackages
+, sqlite
+, vigra
+, wxGTK
+, zlib
}:
stdenv.mkDerivation rec {
- name = "hugin-2019.0.0";
+ pname = "hugin";
+ version = "2019.0.0";
src = fetchurl {
- url = "mirror://sourceforge/hugin/${name}.tar.bz2";
+ url = "mirror://sourceforge/hugin/hugin-${version}.tar.bz2";
sha256 = "1l925qslp98gg7yzmgps10h6dq0nb60wbfk345anlxsv0g2ifizr";
};
@@ -21,9 +53,30 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- boost cairo exiv2 fftw flann gettext glew ilmbase lcms2 lensfun libjpeg
- libpng libtiff libX11 libXi libXmu libGLU libGL openexr panotools sqlite vigra
- wxGTK zlib
+ boost
+ cairo
+ exiv2
+ fftw
+ flann
+ gettext
+ glew
+ ilmbase
+ lcms2
+ lensfun
+ libjpeg
+ libpng
+ libtiff
+ libX11
+ libXi
+ libXmu
+ libGLU
+ libGL
+ openexr
+ panotools
+ sqlite
+ vigra
+ wxGTK
+ zlib
];
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/hydrus/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
index 36dad89766..45b3c55637 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
- version = "458";
+ version = "464";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "v${version}";
- sha256 = "sha256-oVNgXelFMVT5V41SRlnN+pnYzOWbdDKQQcvRWFZqEro=";
+ sha256 = "sha256-ZAndODbl6cH0H1rA3Bhn3AlfIuba0LjxWxusGPDYvlA=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/ideogram/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
index f9b123ddb4..bc608c6735 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/image-roll/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/image-roll/default.nix
index eb5761fbd5..35f766e21b 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/image-roll/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/image-roll/default.nix
@@ -24,6 +24,12 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ gtk3 ];
+ postInstall = ''
+ install -Dm444 src/resources/com.github.weclaw1.ImageRoll.desktop -t $out/share/applications/
+ install -Dm444 src/resources/com.github.weclaw1.ImageRoll.svg -t $out/share/icons/hicolor/scalable/apps/
+ install -Dm444 src/resources/com.github.weclaw1.ImageRoll.metainfo.xml -t $out/share/metainfo/
+ '';
+
meta = with lib; {
description = "Simple and fast GTK image viewer with basic image manipulation tools";
homepage = "https://github.com/weclaw1/image-roll";
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/imagej/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/imagej/default.nix
index 0dbc2d5d4e..4af139b084 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/imagej/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/imagej/default.nix
@@ -1,11 +1,13 @@
{ lib
, stdenv
, fetchurl
+, glib
, jre
, unzip
, makeWrapper
, makeDesktopItem
, copyDesktopItems
+, wrapGAppsHook
}:
let
@@ -21,7 +23,10 @@ in stdenv.mkDerivation rec {
url = "https://wsr.imagej.net/distros/cross-platform/ij${version}.zip";
sha256 = "sha256-MGuUdUDuW3s/yGC68rHr6xxzmYScUjdXRawDpc1UQqw=";
};
- nativeBuildInputs = [ copyDesktopItems makeWrapper unzip ];
+ nativeBuildInputs = [ copyDesktopItems makeWrapper unzip wrapGAppsHook ];
+ buildInputs = [ glib ];
+ dontWrapGApps = true;
+
desktopItems = lib.optionals stdenv.isLinux [
(makeDesktopItem {
name = "ImageJ";
@@ -47,13 +52,15 @@ in stdenv.mkDerivation rec {
# Simple cp shall clear suid bits, if any.
cp ij.jar $out/share/java
cp -dR luts macros plugins $out/share
- makeWrapper ${jre}/bin/java $out/bin/imagej \
- --add-flags "-jar $out/share/java/ij.jar -ijpath $out/share"
runHook postInstall
'';
postFixup = lib.optionalString stdenv.isLinux ''
+ makeWrapper ${jre}/bin/java $out/bin/imagej \
+ ''${gappsWrapperArgs[@]} \
+ --add-flags "-jar $out/share/java/ij.jar -ijpath $out/share"
+
install -Dm644 ${icon} $out/share/icons/hicolor/128x128/apps/imagej.png
substituteInPlace $out/share/applications/ImageJ.desktop \
--replace Exec=imagej Exec=$out/bin/imagej
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix
index c0115d95ac..e9f415f722 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
index c65dfa1b6c..3387316611 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/krita/generic.nix b/third_party/nixpkgs/pkgs/applications/graphics/krita/generic.nix
index efaf341b1f..a0819a203e 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/krita/generic.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/krita/generic.nix
@@ -32,7 +32,7 @@ mkDerivation rec {
openjpeg opencolorio_1 poppler curl ilmbase
qtmultimedia qtx11extras quazip
python3Packages.pyqt5
- ] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
+ ] ++ lib.optional stdenv.hostPlatform.isx86 vc;
NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]
++ lib.optional stdenv.cc.isGNU "-Wno-deprecated-copy";
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/lightburn/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
index cc6c4f42e6..63dbbd7914 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
stdenv.mkDerivation rec {
pname = "lightburn";
- version = "1.0.02";
+ version = "1.0.04";
nativeBuildInputs = [
p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
- sha256 = "sha256-JaKThw6ubutpOCsO1pVAPVxhhUTKpfYRHjBSu02nlN4=";
+ sha256 = "sha256-3uuYxDxlBlu3/4BhII36s+PsLJCmHDIE3fRAz6GO/js=";
};
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
index db777b3bd7..30a0567389 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
@@ -47,7 +47,8 @@ python3.pkgs.buildPythonApplication rec {
runHook preInstall
substituteInPlace mime/*.desktop \
- --replace "Exec=mcomix" "Exec=mcomix3"
+ --replace "Exec=mcomix" "Exec=mcomix3" \
+ --replace "Icon=mcomix" "Icon=${pname}"
${python3.executable} installer.py --srcdir=mcomix --target=$libdir
mv $libdir/mcomix/mcomixstarter.py $out/bin/${pname}
mv $libdir/mcomix/comicthumb.py $out/bin/comicthumb
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/megapixels/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
index c949b8e6b4..721caf9069 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
@@ -1,12 +1,12 @@
{ stdenv
, lib
-, fetchFromSourcehut
+, fetchFromGitLab
+, glib
, meson
, ninja
, pkg-config
-, glib
, wrapGAppsHook
-, epoxy
+, libepoxy
, gtk4
, zbar
, tiffSupport ? true
@@ -27,25 +27,25 @@ let
in
stdenv.mkDerivation rec {
pname = "megapixels";
- version = "1.3.0";
+ version = "1.4.2";
- src = fetchFromSourcehut {
- owner = "~martijnbraam";
+ src = fetchFromGitLab {
+ owner = "postmarketOS";
repo = "megapixels";
rev = version;
- sha256 = "0dagp1sh5whnnllrydk7ijjid0hmvcbdm8kkzq2g168khdfn80jm";
+ sha256 = "sha256-ebeKbAo03+jeMveySSIz36gbwslWVMRLj+/adW8rlEQ=";
};
nativeBuildInputs = [
+ glib
meson
ninja
pkg-config
- glib
wrapGAppsHook
];
buildInputs = [
- epoxy
+ libepoxy
gtk4
zbar
];
@@ -62,8 +62,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "GTK4 camera application that knows how to deal with the media request api";
- homepage = "https://sr.ht/~martijnbraam/Megapixels";
- changelog = "https://git.sr.ht/~martijnbraam/megapixels/refs/${version}";
+ homepage = "https://gitlab.com/postmarketOS/megapixels";
+ changelog = "https://gitlab.com/postmarketOS/megapixels/-/tags/${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ OPNA2608 dotlambda ];
platforms = platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/menyoki/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/menyoki/default.nix
index 0b4b80d648..afaa681437 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/menyoki/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/menyoki/default.nix
@@ -6,28 +6,30 @@
, stdenv
, libX11
, libXrandr
+, AppKit
, withSki ? true
}:
rustPlatform.buildRustPackage rec {
pname = "menyoki";
- version = "1.5.3";
+ version = "1.5.5";
src = fetchFromGitHub {
owner = "orhun";
repo = pname;
rev = "v${version}";
- sha256 = "050c6c60il6cy0a8d3nw4z2cyp043912a7n4n44yjpmx047w7kc7";
+ sha256 = "sha256-wEPt96z/odQ05hosN+GB5KLsCu8onR9WWamofJayhwU=";
};
- cargoSha256 = "0wwcda2w8jg3q132cvhdgfmjc0rz93fx6fai93g5w8br98aq9qzx";
+ cargoSha256 = "sha256-nwxBreouL3Z47zHSH+Y/ej7KU2/bXyMQ+Tb7R4U+yKk=";
nativeBuildInputs = [ installShellFiles ]
++ lib.optional stdenv.isLinux pkg-config;
- buildInputs = lib.optionals stdenv.isLinux [ libX11 libXrandr ];
+ buildInputs = lib.optionals stdenv.isLinux [ libX11 libXrandr ]
+ ++ lib.optional stdenv.isDarwin AppKit;
- cargoBuildFlags = lib.optional (!withSki) "--no-default-features";
+ buildNoDefaultFeatures = !withSki;
postInstall = ''
installManPage man/*
@@ -37,8 +39,8 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "Screen{shot,cast} and perform ImageOps on the command line";
homepage = "https://menyoki.cli.rs/";
+ changelog = "https://github.com/orhun/menyoki/blob/v${version}/CHANGELOG.md";
license = licenses.gpl3Only;
maintainers = with maintainers; [ figsoda ];
- broken = stdenv.isDarwin;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix
index 40b28dd856..f0693cc612 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix
@@ -1,9 +1,11 @@
-{lib, stdenv, fetchurl, libtiff, gettext }:
+{ lib, stdenv, fetchurl, libtiff, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "minidjvu";
+ version = "0.8";
-stdenv.mkDerivation {
- name = "minidjvu-0.8";
src = fetchurl {
- url = "mirror://sourceforge/minidjvu/minidjvu-0.8.tar.gz";
+ url = "mirror://sourceforge/minidjvu/minidjvu-${version}.tar.gz";
sha256 = "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79";
};
@@ -11,7 +13,7 @@ stdenv.mkDerivation {
sed -i s,/usr/bin/gzip,gzip, Makefile.in
'';
- buildInputs = [ libtiff gettext];
+ buildInputs = [ libtiff gettext ];
preInstall = ''
mkdir -p $out/lib
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/monado/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/monado/default.nix
index fe5f99de12..0280664279 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/monado/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/monado/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitLab
+, fetchpatch
, writeText
, cmake
, doxygen
@@ -18,6 +19,7 @@
, libXau
, libXdmcp
, libXrandr
+, libbsd
, libffi
, libjpeg
# , librealsense
@@ -54,6 +56,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
@@ -78,6 +89,7 @@ stdenv.mkDerivation rec {
libXau
libXdmcp
libXrandr
+ libbsd
libjpeg
libffi
# librealsense.dev - see below
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/openscad/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/openscad/default.nix
index c7be99469b..be079b6bdb 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/openscad/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/photivo/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/photivo/default.nix
index 4acb50e200..338f716e9b 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/photivo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/photivo/default.nix
@@ -1,8 +1,22 @@
-{ lib, stdenv, fetchhg, fetchpatch, cmake, qt4, fftw, graphicsmagick_q16,
- lcms2, lensfun, pkg-config, libjpeg, exiv2, liblqr1 }:
+{ lib
+, stdenv
+, fetchhg
+, fetchpatch
+, cmake
+, qt4
+, fftw
+, graphicsmagick_q16
+, lcms2
+, lensfun
+, pkg-config
+, libjpeg
+, exiv2
+, liblqr1
+}:
stdenv.mkDerivation {
- name = "photivo-2014-01-25";
+ pname = "photivo";
+ version = "2014-01-25";
src = fetchhg {
url = "http://code.google.com/p/photivo/";
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/pinta/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/pinta/default.nix
index 2635b2d3d8..c2704cbf26 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/pinta/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/pinta/default.nix
@@ -1,14 +1,18 @@
-{ lib, fetchFromGitHub, buildDotnetPackage, dotnetPackages, gtksharp,
- gettext }:
+{ lib
+, fetchFromGitHub
+, buildDotnetPackage
+, dotnetPackages
+, gtksharp
+, gettext
+}:
let
mono-addins = dotnetPackages.MonoAddins;
in
buildDotnetPackage rec {
- name = "pinta-1.6";
-
baseName = "Pinta";
- version = "1.6";
+ version = "1.7.1";
+
outputFiles = [ "bin/*" ];
buildInputs = [ gtksharp mono-addins gettext ];
xBuildFiles = [ "Pinta.sln" ];
@@ -17,7 +21,7 @@ buildDotnetPackage rec {
owner = "PintaProject";
repo = "Pinta";
rev = version;
- sha256 = "0vgswy981c7ys4q7js5k85sky7bz8v32wsfq3br4j41vg92pw97d";
+ sha256 = "sha256-yRp/dpJ9T4DieqHTj3vhyuASPGe4vjHw0rSXFrTNZVc=";
};
# Remove version information from nodes
@@ -37,23 +41,25 @@ buildDotnetPackage rec {
"Mono\\.Addins\\.Setup"
];
- stripVersion = name: file: let
+ stripVersion = name: file:
+ let
match = '' gimp != null;
-
stdenv.mkDerivation rec {
- name = "xsane-0.999";
+ pname = "xsane";
+ version = "0.999";
src = fetchurl {
- url = "http://www.xsane.org/download/${name}.tar.gz";
+ url = "http://www.xsane.org/download/xsane-${version}.tar.gz";
sha256 = "0jrb918sfb9jw3vmrz0z7np4q55hgsqqffpixs0ir5nwcwzd50jp";
};
@@ -19,14 +27,15 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ pkg-config ];
- buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 ]
- ++ (if libusb-compat-0_1 != null then [libusb-compat-0_1] else [])
+
+ buildInputs = [ libpng libusb-compat-0_1 sane-backends sane-frontends libX11 gtk2 ]
++ lib.optional gimpSupport gimp;
- meta = {
+ meta = with lib; {
homepage = "http://www.sane-project.org/";
description = "Graphical scanning frontend for sane";
- license = lib.licenses.gpl2Plus;
- platforms = with lib.platforms; linux;
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/scantailor/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
index 898cc3336a..a0e52ab5d3 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
+{ lib, stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
-stdenv.mkDerivation {
- name = "scantailor-0.9.12.1";
+stdenv.mkDerivation rec {
+ pname = "scantailor";
+ version = "0.9.12.1";
src = fetchurl {
- url = "https://github.com/scantailor/scantailor/archive/RELEASE_0_9_12_1.tar.gz";
+ url = "https://github.com/scantailor/scantailor/archive/RELEASE_${lib.replaceStrings ["."] ["_"] version}.tar.gz";
sha256 = "1pjx3a6hs16az6rki59bchy3biy7jndjx8r125q01aq7lbf5npgg";
};
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/shutter/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/shutter/default.nix
index c7e55be9f0..a6430f4889 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/shutter/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
index 6a835fb3c7..c82e22ae0c 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
@@ -1,15 +1,14 @@
-{ fetchurl, lib, stdenv, cmake, qt4, fftw }:
+{ lib, stdenv, fetchFromGitHub, cmake, qt4, fftw }:
-let
- rev = "9895036d26";
-in
stdenv.mkDerivation rec {
- name = "smartdeblur-git-${rev}";
+ pname = "smartdeblur";
+ version = "unstable-2013-01-09";
- src = fetchurl {
- url = "https://github.com/Y-Vladimir/SmartDeblur/tarball/${rev}";
- name = "${name}.tar.gz";
- sha256 = "126x9x1zhqdarjz9in0p1qhmqg3jwz7frizadjvx723g2ppi33s4";
+ src = fetchFromGitHub {
+ owner = "Y-Vladimir";
+ repo = "SmartDeblur";
+ rev = "9895036d26cbb823a9ade28cdcb26fd0ac37258e";
+ sha256 = "sha256-+EbqEpOG1fj2OKmlz8NRF/CGfT2OYGwY5/lwJHCHaMw=";
};
preConfigure = ''
@@ -21,11 +20,11 @@ stdenv.mkDerivation rec {
cmakeFlags = [ "-DUSE_SYSTEM_FFTW=ON" ];
- meta = {
+ meta = with lib; {
homepage = "https://github.com/Y-Vladimir/SmartDeblur";
description = "Tool for restoring blurry and defocused images";
- license = lib.licenses.gpl3;
- maintainers = with lib.maintainers; [ ];
- platforms = with lib.platforms; linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix b/third_party/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
index 49cf93835b..f78220d2f4 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive, pkg-config
-, leptonica, libpng, libtiff, icu, pango, opencl-headers }:
+, leptonica, libpng, libtiff, icu, pango, opencl-headers, fetchpatch }:
stdenv.mkDerivation rec {
pname = "tesseract";
@@ -12,6 +12,18 @@ stdenv.mkDerivation rec {
sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
};
+ patches = [
+ # https://github.com/tesseract-ocr/tesseract/issues/3447
+ (fetchpatch {
+ url = "https://github.com/tesseract-ocr/tesseract/commit/dbc79b09d195490dfa3f7d338eadac07ad6683f7.patch";
+ sha256 = "sha256-lGlg0etuU4RXfdq1QH2bYObdeGrFHKf9O8zMUAbfNIQ=";
+ })
+ (fetchpatch {
+ url = "https://github.com/tesseract-ocr/tesseract/commit/6dc4b184b1ebf2e68461f6b63f63a033bc7245f7.patch";
+ sha256 = "sha256-DwIX3r5NmeajI6WgIVHDbkhLH/ygJIjPO5XrbzWQhSw=";
+ })
+ ];
+
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config autoreconfHook autoconf-archive ];
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/tev/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/tev/default.nix
index 6c9cee8514..b82c3ff962 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/tev/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/tev/default.nix
@@ -5,19 +5,19 @@
stdenv.mkDerivation rec {
pname = "tev";
- version = "1.17";
+ version = "1.19";
src = fetchFromGitHub {
owner = "Tom94";
repo = pname;
rev = "v${version}";
fetchSubmodules = true;
- sha256 = "12wsy2zdfhg0ygkpvz58rk86qiy259fi9grb0jxiz8zcyd6x1ngk";
+ sha256 = "sha256-laP47xOND6PMA6dwTcCupcTIW+9zCaxO6rHzvDSL9JU=";
};
nativeBuildInputs = [ cmake wrapGAppsHook ];
buildInputs = [ libX11 libzip glfw libpng ]
- ++ (with xorg; [ libXrandr libXinerama libXcursor libXi libXxf86vm ]);
+ ++ (with xorg; [ libXrandr libXinerama libXcursor libXi libXxf86vm libXext ]);
dontWrapGApps = true; # We also need zenity (see below)
@@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/Tom94/tev/releases/tag/v${version}";
license = licenses.bsd3;
platforms = platforms.unix;
- maintainers = with maintainers; [ primeos ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix
new file mode 100644
index 0000000000..00b3d80adf
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix
@@ -0,0 +1,119 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+
+, cmake
+, pkg-config
+, ninja
+, python3
+, makeWrapper
+
+, glm
+, lua5_4
+, SDL2
+, SDL2_mixer
+, enet
+, libuv
+, libuuid
+, wayland-protocols
+, Carbon
+# optionals
+, opencl-headers
+, OpenCL
+
+, callPackage
+, nixosTests
+}:
+
+# cmake 3.21 inserts invalid `ldd` and `-Wl,--no-as-needed` calls, apparently
+# related to
+# https://cmake.org/cmake/help/v3.21/prop_tgt/LINK_WHAT_YOU_USE.html
+let cmake3_22 = cmake.overrideAttrs (old: {
+ version = "3.22.0";
+ src = fetchurl {
+ url = "https://cmake.org/files/v3.22/cmake-3.22.0.tar.gz";
+ sha256 = "sha256-mYx7o0d40t/bPfimlUaeJLEeK/oh++QbNho/ReHJNF4=";
+ };
+});
+
+in stdenv.mkDerivation rec {
+ pname = "vengi-tools";
+ version = "0.0.14";
+
+ src = fetchFromGitHub {
+ owner = "mgerhardy";
+ repo = "engine";
+ rev = "v${version}";
+ sha256 = "sha256-v82hKskTSwM0NDgLVHpHZNRQW6tWug4pPIt91MrUwUo=";
+ };
+
+ nativeBuildInputs = [
+ cmake3_22
+ pkg-config
+ ninja
+ python3
+ makeWrapper
+ ];
+
+ buildInputs = [
+ glm
+ lua5_4
+ SDL2
+ SDL2_mixer
+ enet
+ libuv
+ libuuid
+ # Only needed for the game
+ #postgresql
+ #libpqxx
+ #mosquitto
+ ] ++ lib.optional stdenv.isLinux wayland-protocols
+ ++ lib.optionals stdenv.isDarwin [ Carbon OpenCL ]
+ ++ lib.optional (!stdenv.isDarwin) opencl-headers;
+
+ cmakeFlags = [
+ # Disable tests due to a problem in linking gtest:
+ # ld: /build/vengi-tests-core.LDHlV1.ltrans0.ltrans.o: in function `main':
+ # :(.text.startup+0x3f): undefined reference to `testing::InitGoogleMock(int*, char**)'
+ "-DUNITTESTS=OFF"
+ "-DVISUALTESTS=OFF"
+ # We're only interested in the generic tools
+ "-DGAMES=OFF"
+ "-DMAPVIEW=OFF"
+ "-DAIDEBUG=OFF"
+ ];
+
+ # Set the data directory for each executable. We cannot set it at build time
+ # with the PKGDATADIR cmake variable because each executable needs a specific
+ # one.
+ # This is not needed on darwin, since on that platform data files are saved
+ # in *.app/Contents/Resources/ too, and are picked up automatically.
+ postInstall = lib.optionalString (!stdenv.isDarwin) ''
+ for prog in $out/bin/*; do
+ wrapProgram "$prog" \
+ --set CORE_PATH $out/share/$(basename "$prog")/
+ done
+ '';
+
+ passthru.tests = {
+ voxconvert-roundtrip = callPackage ./test-voxconvert-roundtrip.nix {};
+ run-voxedit = nixosTests.vengi-tools;
+ };
+
+ meta = with lib; {
+ description = "Tools from the vengi voxel engine, including a thumbnailer, a converter, and the VoxEdit voxel editor";
+ longDescription = ''
+ Tools from the vengi C++ voxel game engine. It includes a voxel editor
+ with character animation support and loading/saving into a lot of voxel
+ volume formats. There are other tools like e.g. a thumbnailer for your
+ filemanager and a command line tool to convert between several voxel
+ formats.
+ '';
+ homepage = "https://mgerhardy.github.io/engine/";
+ downloadPage = "https://github.com/mgerhardy/engine/releases";
+ license = [ licenses.mit licenses.cc-by-sa-30 ];
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix b/third_party/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
new file mode 100644
index 0000000000..27b0305615
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
@@ -0,0 +1,15 @@
+{ stdenv
+, vengi-tools
+}:
+
+stdenv.mkDerivation {
+ name = "vengi-tools-test-voxconvert-roundtrip";
+ meta.timeout = 10;
+ buildCommand = ''
+ ${vengi-tools}/bin/vengi-voxconvert ${vengi-tools}/share/vengi-voxedit/chr_knight.qb chr_knight.vox
+ ${vengi-tools}/bin/vengi-voxconvert chr_knight.vox chr_knight.qb
+ ${vengi-tools}/bin/vengi-voxconvert chr_knight.qb chr_knight1.vox
+ diff chr_knight.vox chr_knight1.vox
+ touch $out
+ '';
+}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/viewnior/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
index fc39306b75..2a1dbe44f3 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "viewnior";
- version = "1.7";
+ version = "1.8";
src = fetchFromGitHub {
owner = "hellosiyan";
repo = "Viewnior";
rev = "${pname}-${version}";
- sha256 = "0y4hk3vq8psba5k615w18qj0kbdfp5w0lm98nv5apy6hmcpwfyig";
+ sha256 = "sha256-LTahMmcAqgqviUxR624kTozJGTniAAGWKo1ZqXjoG5M=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/weylus/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/weylus/default.nix
index 54b86c0934..3c408ff5fc 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/weylus/default.nix
+++ b/third_party/nixpkgs/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;
};
@@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
description = "Use your tablet as graphic tablet/touch screen on your computer";
homepage = "https://github.com/H-M-H/Weylus";
license = with licenses; [ agpl3Only ];
- maintainers = with maintainers; [ legendofmiracles ];
+ maintainers = with maintainers; [ lom ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/graphics/wings/default.nix b/third_party/nixpkgs/pkgs/applications/graphics/wings/default.nix
index ef8d4b5096..53f6585907 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/wings/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/graphics/wings/default.nix
@@ -1,9 +1,11 @@
{ fetchurl, lib, stdenv, erlang, cl, libGL, libGLU, runtimeShell }:
stdenv.mkDerivation rec {
- name = "wings-2.2.4";
+ pname = "wings";
+ version = "2.2.4";
+
src = fetchurl {
- url = "mirror://sourceforge/wings/${name}.tar.bz2";
+ url = "mirror://sourceforge/wings/wings-${version}.tar.bz2";
sha256 = "1xcmifs4vq2810pqqvsjsm8z3lz24ys4c05xkh82nyppip2s89a3";
};
@@ -24,13 +26,13 @@ stdenv.mkDerivation rec {
# I did not test the *cl* part. I added the -pa just by imitation.
installPhase = ''
- mkdir -p $out/bin $out/lib/${name}/ebin
- cp ebin/* $out/lib/${name}/ebin
- cp -R textures shaders plugins $out/lib/$name
+ mkdir -p $out/bin $out/lib/wings-${version}/ebin
+ cp ebin/* $out/lib/wings-${version}/ebin
+ cp -R textures shaders plugins $out/lib/wings-${version}
cat << EOF > $out/bin/wings
#!${runtimeShell}
${erlang}/bin/erl \
- -pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
+ -pa $out/lib/wings-${version}/ebin -run wings_start start_halt "$@"
EOF
chmod +x $out/bin/wings
'';
@@ -39,7 +41,7 @@ stdenv.mkDerivation rec {
homepage = "http://www.wings3d.com/";
description = "Subdivision modeler inspired by Nendo and Mirai from Izware";
license = lib.licenses.tcltk;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/kde/fetch.sh b/third_party/nixpkgs/pkgs/applications/kde/fetch.sh
index 1d10789bcc..f4eb1b8596 100644
--- a/third_party/nixpkgs/pkgs/applications/kde/fetch.sh
+++ b/third_party/nixpkgs/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.3/src -A '*.tar.xz' )
diff --git a/third_party/nixpkgs/pkgs/applications/kde/kalarm.nix b/third_party/nixpkgs/pkgs/applications/kde/kalarm.nix
index 869a0f6ac6..87bc95a249 100644
--- a/third_party/nixpkgs/pkgs/applications/kde/kalarm.nix
+++ b/third_party/nixpkgs/pkgs/applications/kde/kalarm.nix
@@ -22,7 +22,7 @@ mkDerivation {
homepage = "https://apps.kde.org/kalarm/";
description = "Personal alarm scheduler";
license = with lib.licenses; [ gpl2 ];
- maintainers = [ lib.maintainers.rittelle ];
+ maintainers = [ ];
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/kde/kdebugsettings.nix b/third_party/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
index e73f6f13ce..6d407e0a50 100644
--- a/third_party/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
+++ b/third_party/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
@@ -12,7 +12,7 @@ mkDerivation {
homepage = "https://apps.kde.org/kdebugsettings/";
description = "KDE debug settings";
license = with lib.licenses; [ gpl2 ];
- maintainers = [ lib.maintainers.rittelle ];
+ maintainers = [ ];
broken = lib.versionOlder qtbase.version "5.13";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/third_party/nixpkgs/pkgs/applications/kde/marble.nix b/third_party/nixpkgs/pkgs/applications/kde/marble.nix
index 637ae3bc97..7fe3aa529f 100644
--- a/third_party/nixpkgs/pkgs/applications/kde/marble.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/kde/srcs.nix b/third_party/nixpkgs/pkgs/applications/kde/srcs.nix
index 4f4ab4464a..73032655fc 100644
--- a/third_party/nixpkgs/pkgs/applications/kde/srcs.nix
+++ b/third_party/nixpkgs/pkgs/applications/kde/srcs.nix
@@ -4,1811 +4,1811 @@
{
akonadi = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-21.08.3.tar.xz";
+ sha256 = "1yqlgzni7kj0n7k2wvi65wfz4il75j7qvmrdjw3a0ld6115j2vqs";
+ name = "akonadi-21.08.3.tar.xz";
};
};
akonadi-calendar = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-calendar-21.08.3.tar.xz";
+ sha256 = "17pl7viz89zn43iyp6hk9q2dix1mzfxmxf08jk5wcciphabyj2sc";
+ name = "akonadi-calendar-21.08.3.tar.xz";
};
};
akonadi-calendar-tools = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-calendar-tools-21.08.3.tar.xz";
+ sha256 = "0wc3yfb8riijmmwqbny7vpfav24w8id4s2ysbcljrvypv420ii2g";
+ name = "akonadi-calendar-tools-21.08.3.tar.xz";
};
};
akonadi-contacts = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-contacts-21.08.3.tar.xz";
+ sha256 = "1i5mwjf8vp40mmdfkafhhbcmvdd2sihd6aa4z1wnhnbg59cjvp8i";
+ name = "akonadi-contacts-21.08.3.tar.xz";
};
};
akonadi-import-wizard = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-import-wizard-21.08.3.tar.xz";
+ sha256 = "1splq2fgifk4mh00j4dd1lmgyc4bvz8sbsw0fznmafg76k1fvama";
+ name = "akonadi-import-wizard-21.08.3.tar.xz";
};
};
akonadi-mime = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-mime-21.08.3.tar.xz";
+ sha256 = "19dbgl9940wwsiyhysh1lm5ks9xb6a5m53p9qmdr5siid9karq64";
+ name = "akonadi-mime-21.08.3.tar.xz";
};
};
akonadi-notes = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-notes-21.08.3.tar.xz";
+ sha256 = "0g1kdhj4qjl29x70dl4fl30f4r67s6ldpmqrf0xnj7zwz008r0fn";
+ name = "akonadi-notes-21.08.3.tar.xz";
};
};
akonadi-search = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadi-search-21.08.3.tar.xz";
+ sha256 = "1fvfd1410zy9dbcjl21463wj91s5vly00l53ixaizylnjbj67lm0";
+ name = "akonadi-search-21.08.3.tar.xz";
};
};
akonadiconsole = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akonadiconsole-21.08.3.tar.xz";
+ sha256 = "1id1l6ifc1b8qsx16badhww33idk7c8qnn4lh3bg6mg1whmvy4k2";
+ name = "akonadiconsole-21.08.3.tar.xz";
};
};
akregator = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/akregator-21.08.3.tar.xz";
+ sha256 = "1jb2vd43pn7i1b7ylhm74q0jkk3hwbjxh6nc2hqpl9c0ic20arf2";
+ name = "akregator-21.08.3.tar.xz";
};
};
analitza = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/analitza-21.08.3.tar.xz";
+ sha256 = "04g1l9q80j5rigz0667js35zjm3as0dpfkjhcm997bna1yb0d92z";
+ name = "analitza-21.08.3.tar.xz";
};
};
ark = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ark-21.08.3.tar.xz";
+ sha256 = "1wrxv8csj1irrwcddkjgbcivpxi2v3nj06lvayzr32b29i85h637";
+ name = "ark-21.08.3.tar.xz";
};
};
artikulate = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/artikulate-21.08.3.tar.xz";
+ sha256 = "14g5wcw1bxxmbc9vvy07zbk2ma2cj1zbb5fdcwdf4ybaal9r43jq";
+ name = "artikulate-21.08.3.tar.xz";
};
};
audiocd-kio = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/audiocd-kio-21.08.3.tar.xz";
+ sha256 = "0fp29igj87pff8jya230j67vcz9pv7g27g4dv2pl3r6gm2kv8c9i";
+ name = "audiocd-kio-21.08.3.tar.xz";
};
};
baloo-widgets = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/baloo-widgets-21.08.3.tar.xz";
+ sha256 = "1pjlw22ivqhpd6bf50d8s9jaq6h2k0l2szwnh841qq7bwwkp9kcb";
+ name = "baloo-widgets-21.08.3.tar.xz";
};
};
blinken = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/blinken-21.08.3.tar.xz";
+ sha256 = "03s3pv61jhkx3lm5rik25fglhda9l4w43blpwh78rbdk3c3s3ijg";
+ name = "blinken-21.08.3.tar.xz";
};
};
bomber = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/bomber-21.08.3.tar.xz";
+ sha256 = "0h5iwpmpw8xnqh6xcm4zqqcp1ia5wir0ghwsbcgrz9ka59dfdh4z";
+ name = "bomber-21.08.3.tar.xz";
};
};
bovo = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/bovo-21.08.3.tar.xz";
+ sha256 = "0p5pi6rnnmikhg72gagld67r022bq3nsrhls0gglx14zfj6pgln3";
+ name = "bovo-21.08.3.tar.xz";
};
};
calendarsupport = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/calendarsupport-21.08.3.tar.xz";
+ sha256 = "1kial8x8sw0039n2s3nl9i0wadf8xda1bv2g9kws0kp29k58lyfy";
+ name = "calendarsupport-21.08.3.tar.xz";
};
};
cantor = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/cantor-21.08.3.tar.xz";
+ sha256 = "1l3z0aikrfjdpcfq6apmwla9k7dqymvysi275kpx0dqi5sfgi9lb";
+ name = "cantor-21.08.3.tar.xz";
};
};
cervisia = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/cervisia-21.08.3.tar.xz";
+ sha256 = "0a7g3g849vf0c0222944iwqhymnxcn9qj0v85m2b0bfxgdf0fgk7";
+ name = "cervisia-21.08.3.tar.xz";
};
};
dolphin = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/dolphin-21.08.3.tar.xz";
+ sha256 = "19yrgfliqabmymrh3sx2i5129rcc14nxb86f21wd616b3pcby5rv";
+ name = "dolphin-21.08.3.tar.xz";
};
};
dolphin-plugins = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/dolphin-plugins-21.08.3.tar.xz";
+ sha256 = "098i2zydzi95i860pk6p0g0wx1bryyxanawhcis5d5h3xra66s0p";
+ name = "dolphin-plugins-21.08.3.tar.xz";
};
};
dragon = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/dragon-21.08.3.tar.xz";
+ sha256 = "0zfh5kmw2mvnwpcbh9i6xzzdigkglr6y0y7acw2dw6bi2cqx5cc7";
+ name = "dragon-21.08.3.tar.xz";
};
};
elisa = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/elisa-21.08.3.tar.xz";
+ sha256 = "0w3sk52ghkka305hagld5ia6z6czavbqgc0abqdz442bgnk1f1vb";
+ name = "elisa-21.08.3.tar.xz";
};
};
eventviews = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/eventviews-21.08.3.tar.xz";
+ sha256 = "08bcw79iag71yiaf7ck27b2ja4pg18ah04rxa1c6g5fr9x6kkk46";
+ name = "eventviews-21.08.3.tar.xz";
};
};
ffmpegthumbs = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ffmpegthumbs-21.08.3.tar.xz";
+ sha256 = "10l9592f2l63rfak3f0knvzapsaa8nyx3dl82n724359qj43m530";
+ name = "ffmpegthumbs-21.08.3.tar.xz";
};
};
filelight = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/filelight-21.08.3.tar.xz";
+ sha256 = "0j5106x93ljkcxk90cs1yvd9dw3pnr007cd4plsw5z7kgmch3zww";
+ name = "filelight-21.08.3.tar.xz";
};
};
granatier = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/granatier-21.08.3.tar.xz";
+ sha256 = "1igia7fxll361np76763nw915d90f5hklgqii9iyld8si99amy4y";
+ name = "granatier-21.08.3.tar.xz";
};
};
grantlee-editor = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/grantlee-editor-21.08.3.tar.xz";
+ sha256 = "04yry04cdysh4a1y6nznxmfw2pww956xan0dnf77yjzssri9p2fq";
+ name = "grantlee-editor-21.08.3.tar.xz";
};
};
grantleetheme = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/grantleetheme-21.08.3.tar.xz";
+ sha256 = "11c72jp9ywpmsc3d92cj2c9xvwmqbilsfddmlxlwnpnp2rf8q933";
+ name = "grantleetheme-21.08.3.tar.xz";
};
};
gwenview = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/gwenview-21.08.3.tar.xz";
+ sha256 = "06hg20sygi6xfbifgi1d6s5zba5qqpm949xa7gyxi1vsq0kbvrq4";
+ name = "gwenview-21.08.3.tar.xz";
};
};
incidenceeditor = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/incidenceeditor-21.08.3.tar.xz";
+ sha256 = "0p45x5qkzbfklxk22kzp9zlvl8ggdjgniq889q8hzb1s89ia1cck";
+ name = "incidenceeditor-21.08.3.tar.xz";
};
};
itinerary = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/itinerary-21.08.3.tar.xz";
+ sha256 = "0w7kb4wvy1sfhlkikvq1ajckizf7k2bzy2wcjdz5is69rrd5cab5";
+ name = "itinerary-21.08.3.tar.xz";
};
};
juk = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/juk-21.08.3.tar.xz";
+ sha256 = "19g1dpvrssip8vysds3j4wa599ivapznz10p0p1254gkjyxdxdm3";
+ name = "juk-21.08.3.tar.xz";
};
};
k3b = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/k3b-21.08.3.tar.xz";
+ sha256 = "1k5xn33sggx3a7lns8y64sa3schqvg476q81rig9mylh68x8rr5y";
+ name = "k3b-21.08.3.tar.xz";
};
};
kaccounts-integration = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kaccounts-integration-21.08.3.tar.xz";
+ sha256 = "0hyaygrsdp6s96s4wa9z5l1w5w5hxwbw432zs6a2fkgq5dpa3wn4";
+ name = "kaccounts-integration-21.08.3.tar.xz";
};
};
kaccounts-providers = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kaccounts-providers-21.08.3.tar.xz";
+ sha256 = "0chajl87w3gp1a8l7h6bxf93js6jxdkx90ir82glgh45p5qhdhcr";
+ name = "kaccounts-providers-21.08.3.tar.xz";
};
};
kaddressbook = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kaddressbook-21.08.3.tar.xz";
+ sha256 = "1c16pcbjd5w04xbkjalvf697nqi751f4g8ldaing3k2rmdvhsqwg";
+ name = "kaddressbook-21.08.3.tar.xz";
};
};
kajongg = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kajongg-21.08.3.tar.xz";
+ sha256 = "15i5vdcwm7a5amrxxbi0f4c3ls7ly1ccg88hff2wc960wwc6nvqb";
+ name = "kajongg-21.08.3.tar.xz";
};
};
kalarm = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kalarm-21.08.3.tar.xz";
+ sha256 = "0zcmaf4x9jvpyri1kirnm2rij3886z9k1vx6wxxxmx6sbllpb669";
+ name = "kalarm-21.08.3.tar.xz";
};
};
kalarmcal = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kalarmcal-21.08.3.tar.xz";
+ sha256 = "03zmw8pxhfmrm7xl5h2k42xyqwn4cllhrp43sv7pjbym9ya41wyk";
+ name = "kalarmcal-21.08.3.tar.xz";
};
};
kalgebra = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kalgebra-21.08.3.tar.xz";
+ sha256 = "0w2n3nyds9069c4cj1ap2b14w8nw5dc3yb62j5y6yj9qz9ip7cdk";
+ name = "kalgebra-21.08.3.tar.xz";
};
};
kalzium = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kalzium-21.08.3.tar.xz";
+ sha256 = "0x7dn0f2bwzplzxal2wvnc3qh2qs522626ksp6ajgf16jwf7d4kl";
+ name = "kalzium-21.08.3.tar.xz";
};
};
kamera = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kamera-21.08.3.tar.xz";
+ sha256 = "1yv87rmb8k6yh5150915fsnh8rdj1d4k8zpc8k54hxa9gjw5wqm7";
+ name = "kamera-21.08.3.tar.xz";
};
};
kamoso = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kamoso-21.08.3.tar.xz";
+ sha256 = "1k2kis36a6dlsnh85qc01yd6qnz8kwrv4hvzpkpqvvp3m4ik17wx";
+ name = "kamoso-21.08.3.tar.xz";
};
};
kanagram = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kanagram-21.08.3.tar.xz";
+ sha256 = "1rxirjrw6dj23awv6gbypv0jlwfdh4baz86l32rx8pnmd9icg7s3";
+ name = "kanagram-21.08.3.tar.xz";
};
};
kapman = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kapman-21.08.3.tar.xz";
+ sha256 = "0v8ay2s868l7dxasq0rhy065rp9sfb4fzldcqs46lxy7jmk3ws93";
+ name = "kapman-21.08.3.tar.xz";
};
};
kapptemplate = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kapptemplate-21.08.3.tar.xz";
+ sha256 = "02dp4qwrv3gylri936c82imh4lv1a3vfzlphmwadyhiy7j9ic5fa";
+ name = "kapptemplate-21.08.3.tar.xz";
};
};
kate = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kate-21.08.3.tar.xz";
+ sha256 = "1gdz0wxkh34a2zi9vks9qw70g7dvkbvrbp6y68rjg7720sdb0gp2";
+ name = "kate-21.08.3.tar.xz";
};
};
katomic = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/katomic-21.08.3.tar.xz";
+ sha256 = "1sgrpqbv4zz22qijm00lzv1cv4rwjh7bbf4gz9xmnfmhyw0n88i1";
+ name = "katomic-21.08.3.tar.xz";
};
};
kbackup = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kbackup-21.08.3.tar.xz";
+ sha256 = "1cjb2invbc60i2lahn01kd28q3wb6s35grwglgmx2cgqqkmgl42s";
+ name = "kbackup-21.08.3.tar.xz";
};
};
kblackbox = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kblackbox-21.08.3.tar.xz";
+ sha256 = "1i4c5v5w42akf4b44sqrl9x4rhqgyjljr7k5i440ahch9qkf93pj";
+ name = "kblackbox-21.08.3.tar.xz";
};
};
kblocks = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kblocks-21.08.3.tar.xz";
+ sha256 = "0326fxv1nvh37h8xhvv5x4fy3l4gbrzmwsgcwslma1hakys9dhrs";
+ name = "kblocks-21.08.3.tar.xz";
};
};
kbounce = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kbounce-21.08.3.tar.xz";
+ sha256 = "00d9m7c564qrifpaldvjk6ahclrjk1aawhypjj9sls2sisx2mip4";
+ name = "kbounce-21.08.3.tar.xz";
};
};
kbreakout = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kbreakout-21.08.3.tar.xz";
+ sha256 = "1h3s4cr4bxi24j55anks946h7iba2wda5kbglsyfqw1ifrsq13vz";
+ name = "kbreakout-21.08.3.tar.xz";
};
};
kbruch = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kbruch-21.08.3.tar.xz";
+ sha256 = "15bfqxz4j5f5ix55fsk780p7ddrzqzmk55gmbjy796sgh8b71wcr";
+ name = "kbruch-21.08.3.tar.xz";
};
};
kcachegrind = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kcachegrind-21.08.3.tar.xz";
+ sha256 = "188m15y7sj17jyr9963gblgkknhgf32331kvzz4cwqzk14b9krr2";
+ name = "kcachegrind-21.08.3.tar.xz";
};
};
kcalc = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kcalc-21.08.3.tar.xz";
+ sha256 = "1d7716law49cwmis4w9ij1xmi4g2wrv4mnc78xcms8kmgba5gs7v";
+ name = "kcalc-21.08.3.tar.xz";
};
};
kcalutils = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kcalutils-21.08.3.tar.xz";
+ sha256 = "0l209pyi866mf1pr4rkq7g3pgjvyss5sqhpy9vb2b2w66w3f66ri";
+ name = "kcalutils-21.08.3.tar.xz";
};
};
kcharselect = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kcharselect-21.08.3.tar.xz";
+ sha256 = "0fk06whwi4h43sw3adcs4b2s9ycwjamzrwr23m33c31mlpcb3i8z";
+ name = "kcharselect-21.08.3.tar.xz";
};
};
kcolorchooser = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kcolorchooser-21.08.3.tar.xz";
+ sha256 = "07fvl4rfzhgz4kh9dhqkq6kf4913jv9cw9abfdb7k3pbr0r26qgz";
+ name = "kcolorchooser-21.08.3.tar.xz";
};
};
kcron = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kcron-21.08.3.tar.xz";
+ sha256 = "1374agj9qc5ifm0yckq8m94gq7sjd42n4wwb59p756736asan8k5";
+ name = "kcron-21.08.3.tar.xz";
};
};
kde-dev-scripts = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kde-dev-scripts-21.08.3.tar.xz";
+ sha256 = "152n6iir4xzx1a5d5bi4lb42rgl222pi6jz0hfkchk7swfgpvdfs";
+ name = "kde-dev-scripts-21.08.3.tar.xz";
};
};
kde-dev-utils = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kde-dev-utils-21.08.3.tar.xz";
+ sha256 = "1xs4fybbqlxji2py06hxabsisfb3bkvbfb3vy9lyj2k5vnnmpkf8";
+ name = "kde-dev-utils-21.08.3.tar.xz";
};
};
kdebugsettings = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdebugsettings-21.08.3.tar.xz";
+ sha256 = "1d47igv0xg1hlxzyfg10h5g7s79yq44d3ixpr82risyrslbwvll4";
+ name = "kdebugsettings-21.08.3.tar.xz";
};
};
kdeconnect-kde = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdeconnect-kde-21.08.3.tar.xz";
+ sha256 = "1gfsbg6rwqv3cpfxcayn3q9i99mnhjz666p9x9ih205idlrn6iij";
+ name = "kdeconnect-kde-21.08.3.tar.xz";
};
};
kdeedu-data = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdeedu-data-21.08.3.tar.xz";
+ sha256 = "15qqcl6gws6ddyv373dfql3wj2fryvr5b6d66q4l1xwc1mg6wnqs";
+ name = "kdeedu-data-21.08.3.tar.xz";
};
};
kdegraphics-mobipocket = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdegraphics-mobipocket-21.08.3.tar.xz";
+ sha256 = "1bli0ld2mymgppjsjjvkyk7ldpz787p30d7lf6lpafrf64di2bhm";
+ name = "kdegraphics-mobipocket-21.08.3.tar.xz";
};
};
kdegraphics-thumbnailers = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdegraphics-thumbnailers-21.08.3.tar.xz";
+ sha256 = "1hbjmkjymb3pi1lz43bl5clgdyy6kr928q7fniwiwmak3k1xrng5";
+ name = "kdegraphics-thumbnailers-21.08.3.tar.xz";
};
};
kdenetwork-filesharing = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdenetwork-filesharing-21.08.3.tar.xz";
+ sha256 = "19c3my0i9xb3salf7sk870nhv797wkk83dyrczw672skwl8xcnd9";
+ name = "kdenetwork-filesharing-21.08.3.tar.xz";
};
};
kdenlive = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdenlive-21.08.3.tar.xz";
+ sha256 = "00ss9i9gw112vc3bjayp193qnfd3dq47bij9mv429azl20ff0y0c";
+ name = "kdenlive-21.08.3.tar.xz";
};
};
kdepim-addons = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdepim-addons-21.08.3.tar.xz";
+ sha256 = "1ham9yzmj89lp3zwxwpyh0qy7fxrlhgmhphn9crrkx9gsy77ddsf";
+ name = "kdepim-addons-21.08.3.tar.xz";
};
};
kdepim-runtime = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdepim-runtime-21.08.3.tar.xz";
+ sha256 = "1d2208pwalc6mjfnn4gfq2f2fqgxp9w3g8igx6r6l9qsgybh1msx";
+ name = "kdepim-runtime-21.08.3.tar.xz";
};
};
kdesdk-kioslaves = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdesdk-kioslaves-21.08.3.tar.xz";
+ sha256 = "0frw2zxwckmqmffxn5gszdxz61zc0k8xpbhbiyfxsqprh3ck4a2y";
+ name = "kdesdk-kioslaves-21.08.3.tar.xz";
};
};
kdesdk-thumbnailers = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdesdk-thumbnailers-21.08.3.tar.xz";
+ sha256 = "06s7i85g5gpknxlrq59i5w8czpaz5wl1b8kfx9flzx0x6ibm5s9q";
+ name = "kdesdk-thumbnailers-21.08.3.tar.xz";
};
};
kdf = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdf-21.08.3.tar.xz";
+ sha256 = "061xclwkhmc9m8f113hlb46dwk5zvqlmgahz13yfbvyrpj810a7k";
+ name = "kdf-21.08.3.tar.xz";
};
};
kdialog = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdialog-21.08.3.tar.xz";
+ sha256 = "1ibqz8s8p90rxy843f1wn3jnyzrm54srhfpr4ix48amf86afj2gp";
+ name = "kdialog-21.08.3.tar.xz";
};
};
kdiamond = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kdiamond-21.08.3.tar.xz";
+ sha256 = "1vkflwvi1wa2kd6hq647g9skxg6c7jdk9hakzfphlq2jw6daml94";
+ name = "kdiamond-21.08.3.tar.xz";
};
};
keditbookmarks = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/keditbookmarks-21.08.3.tar.xz";
+ sha256 = "0v9grm385zyxpsqjp287cz8lvrvfzkk7b4blvdr1hi66sng7nr2n";
+ name = "keditbookmarks-21.08.3.tar.xz";
};
};
kfind = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kfind-21.08.3.tar.xz";
+ sha256 = "04qdxqa8gfipjm5akplxrjbnlaky2djkx8nkvcqzqfhvw5i9rxqp";
+ name = "kfind-21.08.3.tar.xz";
};
};
kfloppy = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kfloppy-21.08.3.tar.xz";
+ sha256 = "14l53a0mrzhnfrhalr71fv0j0ksz6c1zqj8j33nayhqz386yrccx";
+ name = "kfloppy-21.08.3.tar.xz";
};
};
kfourinline = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kfourinline-21.08.3.tar.xz";
+ sha256 = "0w2zdl0yfhwdwbnlqd4l9pdx7q9mr0xq7kw49h9wiajy1zmh8vls";
+ name = "kfourinline-21.08.3.tar.xz";
};
};
kgeography = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kgeography-21.08.3.tar.xz";
+ sha256 = "03wchz3bd4vlijywp9r2xilmhw4gc3ka54ilf2w60baazslhlnr3";
+ name = "kgeography-21.08.3.tar.xz";
};
};
kget = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kget-21.08.3.tar.xz";
+ sha256 = "0zpzh7bf65kz469viff794zdwc54aq84ndafx6g07nhqs3jhnmjp";
+ name = "kget-21.08.3.tar.xz";
};
};
kgoldrunner = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kgoldrunner-21.08.3.tar.xz";
+ sha256 = "0c566c83a7kdc4kvzn37q4kdmr373hfrjgmq7mvn9bji5gcaqzch";
+ name = "kgoldrunner-21.08.3.tar.xz";
};
};
kgpg = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kgpg-21.08.3.tar.xz";
+ sha256 = "0q8da9mzqxg0xmclcpgjh8c744l1sm180ga6hxbasan47wwq67as";
+ name = "kgpg-21.08.3.tar.xz";
};
};
khangman = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/khangman-21.08.3.tar.xz";
+ sha256 = "1iq4njq0fa7all8zm2q585i1grmv2nfb5qnpr8xpyn13np39q8sr";
+ name = "khangman-21.08.3.tar.xz";
};
};
khelpcenter = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/khelpcenter-21.08.3.tar.xz";
+ sha256 = "1pn5822yxqw62hynkf05a33gzs9xvrwwrxam024g6gs0y0v5nsfp";
+ name = "khelpcenter-21.08.3.tar.xz";
};
};
kidentitymanagement = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kidentitymanagement-21.08.3.tar.xz";
+ sha256 = "00fhw2c7jmv0xqyd1jlrlkahszw163a7cbljn83msws8m5mrnlcb";
+ name = "kidentitymanagement-21.08.3.tar.xz";
};
};
kig = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kig-21.08.3.tar.xz";
+ sha256 = "1l4zap7lm1pigyldbqy20jaqysid0r4a6y71qalxk3f565jsqfx5";
+ name = "kig-21.08.3.tar.xz";
};
};
kigo = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kigo-21.08.3.tar.xz";
+ sha256 = "1cdrmlwpzbkz1mi2f72z9dh1pvkdkjn885zqqybhqbqicn3w3qch";
+ name = "kigo-21.08.3.tar.xz";
};
};
killbots = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/killbots-21.08.3.tar.xz";
+ sha256 = "1mwa46r7yvxhavprc6yjh773gjhz5ks0znsvpzambn6hk23r11p8";
+ name = "killbots-21.08.3.tar.xz";
};
};
kimagemapeditor = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kimagemapeditor-21.08.3.tar.xz";
+ sha256 = "0vzy028cgq0ai4f9rgkc32w09yz5836y280nck2wxk2dajjc5k6x";
+ name = "kimagemapeditor-21.08.3.tar.xz";
};
};
kimap = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kimap-21.08.3.tar.xz";
+ sha256 = "11xwkgxm0ghbpcy6bmvkw1hlsfkdrlyyfbblv5m4s881ky7h4aim";
+ name = "kimap-21.08.3.tar.xz";
};
};
kio-extras = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kio-extras-21.08.3.tar.xz";
+ sha256 = "0lx0b9q68mfb96jfwsf0awcx9wn47nmnqqnk57wrbx8zx880q0j2";
+ name = "kio-extras-21.08.3.tar.xz";
};
};
kio-gdrive = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kio-gdrive-21.08.3.tar.xz";
+ sha256 = "1h781cksqq5qana80rlc0x3cfz5prl1g3il4282vf2yqihl3zgrd";
+ name = "kio-gdrive-21.08.3.tar.xz";
};
};
kipi-plugins = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kipi-plugins-21.08.3.tar.xz";
+ sha256 = "1vscmljcadz11m4jsbkkx5f8ywbyvmfxnw1g7x5ks8d8hqsrcgd0";
+ name = "kipi-plugins-21.08.3.tar.xz";
};
};
kirigami-gallery = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kirigami-gallery-21.08.3.tar.xz";
+ sha256 = "0d2psfq5q7zjmd4k1jz0fgwi3gnhi78jn10hrwvc7f8fb6pw4rzc";
+ name = "kirigami-gallery-21.08.3.tar.xz";
};
};
kiriki = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kiriki-21.08.3.tar.xz";
+ sha256 = "19qvbxc0dpjq0vb5kh3qsrkv1793bz5ii958a4yqfmmc8xb26v2x";
+ name = "kiriki-21.08.3.tar.xz";
};
};
kiten = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kiten-21.08.3.tar.xz";
+ sha256 = "0ly44w9y4ha5nw6lqpm5gavxc3ywqc4wh04nl7wpg0m2rm624mci";
+ name = "kiten-21.08.3.tar.xz";
};
};
kitinerary = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kitinerary-21.08.3.tar.xz";
+ sha256 = "066rq42g5l1rmzf5c7xg21p35ln60ir92d0sp2wg9s5li0l0azbf";
+ name = "kitinerary-21.08.3.tar.xz";
};
};
kjumpingcube = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kjumpingcube-21.08.3.tar.xz";
+ sha256 = "0iya370m6n9g6m6rzfkdsb9ypwdd0ksfddiy2g0yvjf1xdxr7im9";
+ name = "kjumpingcube-21.08.3.tar.xz";
};
};
kldap = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kldap-21.08.3.tar.xz";
+ sha256 = "1jb1k5xpicsmazc6c57z203w75h8klja7jp7p8934nvj9dgqqcd1";
+ name = "kldap-21.08.3.tar.xz";
};
};
kleopatra = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kleopatra-21.08.3.tar.xz";
+ sha256 = "1gpn0kpxrw4jn214k5swg2frkfgp9clr99n45z3mzjdccl8zfsbi";
+ name = "kleopatra-21.08.3.tar.xz";
};
};
klettres = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/klettres-21.08.3.tar.xz";
+ sha256 = "0w4fynbvnvlizz0qjkn2qcnn3xs1b0jjfmy9a01wff93a4nw2cj8";
+ name = "klettres-21.08.3.tar.xz";
};
};
klickety = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/klickety-21.08.3.tar.xz";
+ sha256 = "00dl0c6si302mprdwdngxa4361qmr27ii5kvk38vrdlq0cynzgzv";
+ name = "klickety-21.08.3.tar.xz";
};
};
klines = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/klines-21.08.3.tar.xz";
+ sha256 = "0n3mdnwlyl0q09bz7dkb3796ki3l181085rb2r1k2mjnjwmn8zya";
+ name = "klines-21.08.3.tar.xz";
};
};
kmag = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmag-21.08.3.tar.xz";
+ sha256 = "09jvp1hhdam31qwljzpflcnm1mczsai6xlxlks6q0qi2n52cxkhb";
+ name = "kmag-21.08.3.tar.xz";
};
};
kmahjongg = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmahjongg-21.08.3.tar.xz";
+ sha256 = "0afjg3svj1sg47xrz3fgvgkd74lvl71sy26br7jjyxjbq1ag9sin";
+ name = "kmahjongg-21.08.3.tar.xz";
};
};
kmail = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmail-21.08.3.tar.xz";
+ sha256 = "02kina7xn10f963xb7jgzrf15z6akzgl8ba4c9a7yb46ra4w2707";
+ name = "kmail-21.08.3.tar.xz";
};
};
kmail-account-wizard = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmail-account-wizard-21.08.3.tar.xz";
+ sha256 = "1wfzbkipdhmbsj1q5c79ssij1sz57mapg1kkypw10p0nlriklz89";
+ name = "kmail-account-wizard-21.08.3.tar.xz";
};
};
kmailtransport = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmailtransport-21.08.3.tar.xz";
+ sha256 = "0xn4imfb4085wx5czxb3yiigslwfxwdi2dmgv7ng01wbphpg0chw";
+ name = "kmailtransport-21.08.3.tar.xz";
};
};
kmbox = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmbox-21.08.3.tar.xz";
+ sha256 = "19dkc5l5h5x4h5nq924clc06vz5abll2ki70pc6r9py33rfjs11j";
+ name = "kmbox-21.08.3.tar.xz";
};
};
kmime = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmime-21.08.3.tar.xz";
+ sha256 = "1bmgnsslhfzyix85c5p3mym6r9f2sjw5ajd5kzw9yxzyvzyc7kv6";
+ name = "kmime-21.08.3.tar.xz";
};
};
kmines = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmines-21.08.3.tar.xz";
+ sha256 = "0x2ligjxam6aaxpzl1zj5circ0ssn9ycafl3ydvhk9pz9j3c9cx1";
+ name = "kmines-21.08.3.tar.xz";
};
};
kmix = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmix-21.08.3.tar.xz";
+ sha256 = "0smfvkw8svg4fd3sf3f3l5my516jjh2n203kffkg6nr2pgscfw58";
+ name = "kmix-21.08.3.tar.xz";
};
};
kmousetool = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmousetool-21.08.3.tar.xz";
+ sha256 = "0fyhni1m96xh7ir7zhggszfvn7rsf5dp8l065pzvla73w7l6iqwy";
+ name = "kmousetool-21.08.3.tar.xz";
};
};
kmouth = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmouth-21.08.3.tar.xz";
+ sha256 = "0d30r0kyq260pmbk4n9ild0zibwf1sdqwpszvi2j8y5v3gn2bg69";
+ name = "kmouth-21.08.3.tar.xz";
};
};
kmplot = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kmplot-21.08.3.tar.xz";
+ sha256 = "0az7krs0m7xly9v2aclfh4schw9hj99qmv6qmqwa1qvdhhhxd52p";
+ name = "kmplot-21.08.3.tar.xz";
};
};
knavalbattle = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/knavalbattle-21.08.3.tar.xz";
+ sha256 = "0ydbkfi1n1j9fv0rjxpvh6nsjp20zwmb5ii47pv77z6a3rk5sqf4";
+ name = "knavalbattle-21.08.3.tar.xz";
};
};
knetwalk = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/knetwalk-21.08.3.tar.xz";
+ sha256 = "0nplhxvqiw9ap12hxyk1z247f31jqwg59d5q75jiqi1xr1gf27n2";
+ name = "knetwalk-21.08.3.tar.xz";
};
};
knights = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/knights-21.08.3.tar.xz";
+ sha256 = "0ajnn8jaa1h97k89qj5c7i51c2wr3zgbsiiz9bxhhmb6gwrwjqpi";
+ name = "knights-21.08.3.tar.xz";
};
};
knotes = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/knotes-21.08.3.tar.xz";
+ sha256 = "0v5kg8gi2wmz4dhwg6pmq5pd6kh91ha9hg64z21p38b3nc4z07l4";
+ name = "knotes-21.08.3.tar.xz";
};
};
kolf = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kolf-21.08.3.tar.xz";
+ sha256 = "1mz30vzdcsa9nhwqmcr6kxwvi9843b876kzpmqrlrxc19ixqbyq4";
+ name = "kolf-21.08.3.tar.xz";
};
};
kollision = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kollision-21.08.3.tar.xz";
+ sha256 = "1m46xrik0ppp6nhrsx264zzy0fdvryamcj0w5m6bm0hnyj75c4rk";
+ name = "kollision-21.08.3.tar.xz";
};
};
kolourpaint = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kolourpaint-21.08.3.tar.xz";
+ sha256 = "11ciijpr8aa8nd3zgxrikdnx1gk1w78h1v1nhgqn399lxn3vkchi";
+ name = "kolourpaint-21.08.3.tar.xz";
};
};
kompare = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kompare-21.08.3.tar.xz";
+ sha256 = "1988y00mb5wz9c6h4kchkyda4vas44bhiqd1zc4i0fkyl5wi5vp0";
+ name = "kompare-21.08.3.tar.xz";
};
};
konqueror = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/konqueror-21.08.3.tar.xz";
+ sha256 = "1ls9avkwcf7c9qnmxasbi933sjw9q3hnjyys5zf69v7p5hqvg0dz";
+ name = "konqueror-21.08.3.tar.xz";
};
};
konquest = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/konquest-21.08.3.tar.xz";
+ sha256 = "0vsvzz47yn5wyl8zjnbfs1g97466l5ldxcc7mpg1q4y28fxb4jiv";
+ name = "konquest-21.08.3.tar.xz";
};
};
konsole = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/konsole-21.08.3.tar.xz";
+ sha256 = "1w802g95s8hrlpkilxs2mh7fsg7xq3x9vzw48766kpl9ri3ppx91";
+ name = "konsole-21.08.3.tar.xz";
};
};
kontact = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kontact-21.08.3.tar.xz";
+ sha256 = "0rwi34avk98m0jjbaij895ganfcz5c8l926nr399j5qnv9r6j82l";
+ name = "kontact-21.08.3.tar.xz";
};
};
kontactinterface = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kontactinterface-21.08.3.tar.xz";
+ sha256 = "1284f6cndf3l4il4mw1qrqvf9jmww6nmhh6fx7asw7mfc32r5zaj";
+ name = "kontactinterface-21.08.3.tar.xz";
};
};
kontrast = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kontrast-21.08.3.tar.xz";
+ sha256 = "1yy4gfckabb175apvm7fcj77nxdc2fdszz1f1zrikrss20r7dc79";
+ name = "kontrast-21.08.3.tar.xz";
};
};
konversation = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/konversation-21.08.3.tar.xz";
+ sha256 = "0wfjhp6scrq9a5llr5f9fcz2k7b5jnid8m8hrp520ai4wg4ll7zv";
+ name = "konversation-21.08.3.tar.xz";
};
};
kopeninghours = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kopeninghours-21.08.3.tar.xz";
+ sha256 = "090rp2qpsbsyqm4nipq398c3pkr0rx46rwmr4393wffzmnbiwcb9";
+ name = "kopeninghours-21.08.3.tar.xz";
};
};
kopete = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kopete-21.08.3.tar.xz";
+ sha256 = "105zwy4k7idkdmjjx754x7acszd4yw3y3r7lrf61f44wsm9dv2wr";
+ name = "kopete-21.08.3.tar.xz";
};
};
korganizer = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/korganizer-21.08.3.tar.xz";
+ sha256 = "00r7abidj71yqgx4g0kd09dfnq0ilqh3kyzq47ms912gp1dkr5b9";
+ name = "korganizer-21.08.3.tar.xz";
};
};
kosmindoormap = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kosmindoormap-21.08.3.tar.xz";
+ sha256 = "15qq6w14yxfprzzj3267z15zkalsb8y0igq772hwyz4v7f6xhydp";
+ name = "kosmindoormap-21.08.3.tar.xz";
};
};
kpat = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kpat-21.08.3.tar.xz";
+ sha256 = "0s8k8q12hvciz2c38gn5w7miz0i97pqn4jrs69sm294nw7wh1xi4";
+ name = "kpat-21.08.3.tar.xz";
};
};
kpimtextedit = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kpimtextedit-21.08.3.tar.xz";
+ sha256 = "18bjvhlvjn5a1gnzw478l15mgda4c7qba0qqk9rrbh2ryr1ksf7h";
+ name = "kpimtextedit-21.08.3.tar.xz";
};
};
kpkpass = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kpkpass-21.08.3.tar.xz";
+ sha256 = "0l6n358gng24fqhwjmfpxfmmcw8x80di120k72zahiqplk2arcf5";
+ name = "kpkpass-21.08.3.tar.xz";
};
};
kpmcore = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kpmcore-21.08.3.tar.xz";
+ sha256 = "0y9bpw71dn9c39rjsl44az3y2bdczrj833dvwmrwaz6jbnhxl1kj";
+ name = "kpmcore-21.08.3.tar.xz";
};
};
kpublictransport = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kpublictransport-21.08.3.tar.xz";
+ sha256 = "06jbc0qgi5dgx9jwhdnimw1k480whbqw5x75jrx9bspv5y5br16j";
+ name = "kpublictransport-21.08.3.tar.xz";
};
};
kqtquickcharts = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kqtquickcharts-21.08.3.tar.xz";
+ sha256 = "0kyznsq7bjzj5c091kpgn443zvkn3qbmn2b0sppj78a7b8ica5ca";
+ name = "kqtquickcharts-21.08.3.tar.xz";
};
};
krdc = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/krdc-21.08.3.tar.xz";
+ sha256 = "0jcbbq9vd4f1kp76fanwnp6q4hq10w3z7ygrb8makpa0daa96vx4";
+ name = "krdc-21.08.3.tar.xz";
};
};
kreversi = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kreversi-21.08.3.tar.xz";
+ sha256 = "1ifcckbf9lr4pr9n2ggqjvv6xz747k9hk7m43y5ij0bixi6cq474";
+ name = "kreversi-21.08.3.tar.xz";
};
};
krfb = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/krfb-21.08.3.tar.xz";
+ sha256 = "17q0hpwqbwqg4xbq5lmk5g1fl5jplzpx1acyhcbx7il0j06cfcn4";
+ name = "krfb-21.08.3.tar.xz";
};
};
kross-interpreters = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kross-interpreters-21.08.3.tar.xz";
+ sha256 = "0z9lmazpw5389sgvhsjsm1219ys3fybr7hg95nrz8a334vw39nqv";
+ name = "kross-interpreters-21.08.3.tar.xz";
};
};
kruler = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kruler-21.08.3.tar.xz";
+ sha256 = "0rjxy4ipxxk91wlzhrw9mg5avz18l4p01in29l1ccfz278b97lqm";
+ name = "kruler-21.08.3.tar.xz";
};
};
kshisen = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kshisen-21.08.3.tar.xz";
+ sha256 = "1fnd2qck51gxnw6ncq52rd1q08abh70azs0apjnh9qk0dyjk91wh";
+ name = "kshisen-21.08.3.tar.xz";
};
};
ksirk = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ksirk-21.08.3.tar.xz";
+ sha256 = "03v8sghnipkpca3c71s3008m3psawinj90a7637r19h7gyvlyws7";
+ name = "ksirk-21.08.3.tar.xz";
};
};
ksmtp = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ksmtp-21.08.3.tar.xz";
+ sha256 = "0diz01z8gczkwy8c8gvjd583w02vma7kpngzg1ax0wx640vbjq50";
+ name = "ksmtp-21.08.3.tar.xz";
};
};
ksnakeduel = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ksnakeduel-21.08.3.tar.xz";
+ sha256 = "0gmcn31dg3isv5dxv01rg8w6cbfdhwsz5rpp98lrr0qx4abphva7";
+ name = "ksnakeduel-21.08.3.tar.xz";
};
};
kspaceduel = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kspaceduel-21.08.3.tar.xz";
+ sha256 = "0099rc25zvbl2zg1gpmxdhnphl32bd0cxlgikyfvanigq3mx8zkd";
+ name = "kspaceduel-21.08.3.tar.xz";
};
};
ksquares = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ksquares-21.08.3.tar.xz";
+ sha256 = "1mgs9yapz8fm2nmv0zg2x9qfd0ijj518s43dqmss41zrjr0g3mv2";
+ name = "ksquares-21.08.3.tar.xz";
};
};
ksudoku = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ksudoku-21.08.3.tar.xz";
+ sha256 = "09s91xvkbybhwdkf80d7kvjj2jvii938vf650fqicypki2vf0zyx";
+ name = "ksudoku-21.08.3.tar.xz";
};
};
ksystemlog = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ksystemlog-21.08.3.tar.xz";
+ sha256 = "1m20nvvvfbgzd3aay7hsb5pm1bgjngc36ixqs0hrklhrcmwjq9g6";
+ name = "ksystemlog-21.08.3.tar.xz";
};
};
kteatime = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kteatime-21.08.3.tar.xz";
+ sha256 = "175vmcbhhlan6smhagli0jpa3ik0y0wwiijigfk2srm8cyk29ymn";
+ name = "kteatime-21.08.3.tar.xz";
};
};
ktimer = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktimer-21.08.3.tar.xz";
+ sha256 = "1nr116cxw81c2bh32l2xrzmrglk36qkzycbfcffxnm7ka4flwzbm";
+ name = "ktimer-21.08.3.tar.xz";
};
};
ktnef = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktnef-21.08.3.tar.xz";
+ sha256 = "0vfsy894hs3538ssbqky6nfnjzhyn8yjlmvh0mb6gg69952gcvqa";
+ name = "ktnef-21.08.3.tar.xz";
};
};
ktorrent = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktorrent-21.08.3.tar.xz";
+ sha256 = "0y1vpfc8xsm98lrf119r5clmb6xwq2a8adb347ksyvvr4l7rdkwm";
+ name = "ktorrent-21.08.3.tar.xz";
};
};
ktouch = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktouch-21.08.3.tar.xz";
+ sha256 = "0i0ph52k2zw6q37qam2s09msxsdxr5v8qiqwxirjab8ad7g9z0gf";
+ name = "ktouch-21.08.3.tar.xz";
};
};
ktp-accounts-kcm = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-accounts-kcm-21.08.3.tar.xz";
+ sha256 = "1ymq8cnvvw62xd4va969imm2g62fw7fhbs8rw3wqrc2lal9d5l1g";
+ name = "ktp-accounts-kcm-21.08.3.tar.xz";
};
};
ktp-approver = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-approver-21.08.3.tar.xz";
+ sha256 = "0z9kw2gamgdz425aw6li6nvv1g0b1ffil0rmjh0b0z89bbpbc6jx";
+ name = "ktp-approver-21.08.3.tar.xz";
};
};
ktp-auth-handler = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-auth-handler-21.08.3.tar.xz";
+ sha256 = "1z89ycwpq46w82hylwq1sizd7a563g5a22jdc1chhhlwp9dqmdc2";
+ name = "ktp-auth-handler-21.08.3.tar.xz";
};
};
ktp-call-ui = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-call-ui-21.08.3.tar.xz";
+ sha256 = "1nr064h0f4rqjka030xflhrmq0l8g87fwyi853plk7y0473fy6h2";
+ name = "ktp-call-ui-21.08.3.tar.xz";
};
};
ktp-common-internals = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-common-internals-21.08.3.tar.xz";
+ sha256 = "0ndfdggs4j2jc93pf998r0fyj7fjnc2pz98acc1l6laq8d8aawd2";
+ name = "ktp-common-internals-21.08.3.tar.xz";
};
};
ktp-contact-list = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-contact-list-21.08.3.tar.xz";
+ sha256 = "0pdl3w1vj6f4nms4cs91yagfyf5ssqms0bzmcnjf53pcpyf8rhjs";
+ name = "ktp-contact-list-21.08.3.tar.xz";
};
};
ktp-contact-runner = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-contact-runner-21.08.3.tar.xz";
+ sha256 = "0zjw9f66rn5nc37q3q54qy8m09qlama949ksfrvyyh3qhsxp17pm";
+ name = "ktp-contact-runner-21.08.3.tar.xz";
};
};
ktp-desktop-applets = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-desktop-applets-21.08.3.tar.xz";
+ sha256 = "1wlls0rhynfq9cfn48g31avviy067r409c5pcvasfwgzcv5hjan5";
+ name = "ktp-desktop-applets-21.08.3.tar.xz";
};
};
ktp-filetransfer-handler = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-filetransfer-handler-21.08.3.tar.xz";
+ sha256 = "1vnwgcmn3j18spcn2dl468n2y073mk9nsc3557hid5mmg7byp8ng";
+ name = "ktp-filetransfer-handler-21.08.3.tar.xz";
};
};
ktp-kded-module = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-kded-module-21.08.3.tar.xz";
+ sha256 = "0mgw2w812306w04w1xgv9ngd31zj0m4v9hv3cyyk2dz1hi97g9hz";
+ name = "ktp-kded-module-21.08.3.tar.xz";
};
};
ktp-send-file = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-send-file-21.08.3.tar.xz";
+ sha256 = "1c0yrir3z6p6ravizaqhdgjiwcj2cyzd61n4zcx2mrr4mfq7wr4l";
+ name = "ktp-send-file-21.08.3.tar.xz";
};
};
ktp-text-ui = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktp-text-ui-21.08.3.tar.xz";
+ sha256 = "0xk9lcdp99rd1n6gg9a4ix5bdfk229y1ddf115ldjsk30ksfv0r0";
+ name = "ktp-text-ui-21.08.3.tar.xz";
};
};
ktuberling = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/ktuberling-21.08.3.tar.xz";
+ sha256 = "1i0ykflfr2q3043z5j5h1m093n103la8zbax7cacid109d0kca5g";
+ name = "ktuberling-21.08.3.tar.xz";
};
};
kturtle = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kturtle-21.08.3.tar.xz";
+ sha256 = "1fw7hgx0zxsl1l9ymjhf3k3w5999ijj8vdagnyiz01y2i2hlnvhc";
+ name = "kturtle-21.08.3.tar.xz";
};
};
kubrick = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kubrick-21.08.3.tar.xz";
+ sha256 = "1fq2icsfbd6k4gm9w25aml2rigzami934vvkvb30222vbhs86qr4";
+ name = "kubrick-21.08.3.tar.xz";
};
};
kwalletmanager = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kwalletmanager-21.08.3.tar.xz";
+ sha256 = "0cbq0md317fipd4lfqvcgan1jm5n0zyilzbrkjymbnl7cy276ajq";
+ name = "kwalletmanager-21.08.3.tar.xz";
};
};
kwave = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kwave-21.08.3.tar.xz";
+ sha256 = "08qs33mi047jcqaavglgxk3i6gq4h73aygn6gj8xpcpqhq82kjl5";
+ name = "kwave-21.08.3.tar.xz";
};
};
kwordquiz = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/kwordquiz-21.08.3.tar.xz";
+ sha256 = "066v2w8i2fvrrqb1aakscwcd6rchlm4m5pwsql0s6k59mn7wab6b";
+ name = "kwordquiz-21.08.3.tar.xz";
};
};
libgravatar = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libgravatar-21.08.3.tar.xz";
+ sha256 = "0ni2lgrfpx8vx9mmm43gsn1kw4jj8j52yq4ylfam89q6mhpxcnix";
+ name = "libgravatar-21.08.3.tar.xz";
};
};
libkcddb = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkcddb-21.08.3.tar.xz";
+ sha256 = "00wivb6viw5w1ylcsx3m9ps7j00z7fzjh2s7nap95xnprraihcmv";
+ name = "libkcddb-21.08.3.tar.xz";
};
};
libkcompactdisc = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkcompactdisc-21.08.3.tar.xz";
+ sha256 = "1rsmibz9mamqvhppnxwn2db6jmsipvjx2kj8ikpsp9bx8h421n2g";
+ name = "libkcompactdisc-21.08.3.tar.xz";
};
};
libkdcraw = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkdcraw-21.08.3.tar.xz";
+ sha256 = "0gm8nfc6ayg1ipba4yvhy5nzfrpdwx6l434bg9y7yqvbm3lm1g86";
+ name = "libkdcraw-21.08.3.tar.xz";
};
};
libkdegames = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkdegames-21.08.3.tar.xz";
+ sha256 = "0ysc5g6ap207c5yq3ryiaxmvkrh6wzqzdgccdffs0lncd24g641a";
+ name = "libkdegames-21.08.3.tar.xz";
};
};
libkdepim = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkdepim-21.08.3.tar.xz";
+ sha256 = "1776fjzd88kj2crr8lcrwxmkvjsxxyll2gy21wlbmqy4h04bi130";
+ name = "libkdepim-21.08.3.tar.xz";
};
};
libkeduvocdocument = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkeduvocdocument-21.08.3.tar.xz";
+ sha256 = "1qyi5y5v1zp3qid58sdfpcp83rkmz2s1hsvir4f9j5ngir0czcq1";
+ name = "libkeduvocdocument-21.08.3.tar.xz";
};
};
libkexiv2 = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkexiv2-21.08.3.tar.xz";
+ sha256 = "15d8d3mzp0yhj6lm5799mfncqkxnw0cvfxcgpkz0lf9askv2cq8n";
+ name = "libkexiv2-21.08.3.tar.xz";
};
};
libkgapi = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkgapi-21.08.3.tar.xz";
+ sha256 = "101yb495k5bxq402qdvyqd0sdhzc5z3r8szymfmrlilgk35wy9rs";
+ name = "libkgapi-21.08.3.tar.xz";
};
};
libkipi = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkipi-21.08.3.tar.xz";
+ sha256 = "12qjvd7ynab33qid2d4j06z8fbfziaxdlrpq0h3ywd2drks0ykvf";
+ name = "libkipi-21.08.3.tar.xz";
};
};
libkleo = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkleo-21.08.3.tar.xz";
+ sha256 = "0ivyqmc1hv1cljbpxr5xrzyf9z96dbaa48ak54cxxpanphpialrl";
+ name = "libkleo-21.08.3.tar.xz";
};
};
libkmahjongg = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkmahjongg-21.08.3.tar.xz";
+ sha256 = "0rh61491dl90rrlmqmqjdj7vlrjhayhkk5i50zb6jfvrysq9axkc";
+ name = "libkmahjongg-21.08.3.tar.xz";
};
};
libkomparediff2 = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libkomparediff2-21.08.3.tar.xz";
+ sha256 = "0a3980kiigc5kqkyxf4glcxvgr3f4rnc43gcx9vj9mk2qhfcsiqy";
+ name = "libkomparediff2-21.08.3.tar.xz";
};
};
libksane = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libksane-21.08.3.tar.xz";
+ sha256 = "086zrddpammihia888nrx2p18if1fyzvhs3igkxq9q2p551vk9fy";
+ name = "libksane-21.08.3.tar.xz";
};
};
libksieve = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libksieve-21.08.3.tar.xz";
+ sha256 = "1snli2yvq2n567vgi1xs6iiqgn4zp31cid17aqpxllyw8a3xa0l7";
+ name = "libksieve-21.08.3.tar.xz";
};
};
libktorrent = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/libktorrent-21.08.3.tar.xz";
+ sha256 = "1zjnnxhd0mv9if61rr28h35wban7sif61dmgc3wsixp4dz1xfrm6";
+ name = "libktorrent-21.08.3.tar.xz";
};
};
lokalize = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/lokalize-21.08.3.tar.xz";
+ sha256 = "0m084mayd9b0iwm4j5cckw22ix1mc4zcwxjfk0cdapm3g2ls1rzd";
+ name = "lokalize-21.08.3.tar.xz";
};
};
lskat = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/lskat-21.08.3.tar.xz";
+ sha256 = "09l209fz82ibsxzg2f53lhbcsaq6zpwllpyklj2988xzn7h49cqg";
+ name = "lskat-21.08.3.tar.xz";
};
};
mailcommon = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/mailcommon-21.08.3.tar.xz";
+ sha256 = "0vpbp88pl462d1j9f3ww22zybrmz92zx3b5cj4gsl7gmb7ijwb19";
+ name = "mailcommon-21.08.3.tar.xz";
};
};
mailimporter = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/mailimporter-21.08.3.tar.xz";
+ sha256 = "00vm445i5c7vjfmbfgzdj3xildqbnlzpi5i16w4c47wyg5kvpj2c";
+ name = "mailimporter-21.08.3.tar.xz";
};
};
marble = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/marble-21.08.3.tar.xz";
+ sha256 = "0bapnmm2x0ihms5gd12brqb2yx7g5h4c8ky70l1czd4a8d95ha0a";
+ name = "marble-21.08.3.tar.xz";
};
};
markdownpart = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/markdownpart-21.08.3.tar.xz";
+ sha256 = "1cqkwvs1ssg203fkaiibcmqjm2viaq3iq880cjlkx9irh0bv9q9h";
+ name = "markdownpart-21.08.3.tar.xz";
};
};
mbox-importer = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/mbox-importer-21.08.3.tar.xz";
+ sha256 = "19i5a1rax3xfkcz0hv0vqq9iavggqrliwpqsqnx6zvwjzgjrvsif";
+ name = "mbox-importer-21.08.3.tar.xz";
};
};
messagelib = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/messagelib-21.08.3.tar.xz";
+ sha256 = "0q9mligkkvbwb92ghv5g66rkn0vpbw2xfbgsdnn4jajjxsixipg7";
+ name = "messagelib-21.08.3.tar.xz";
};
};
minuet = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/minuet-21.08.3.tar.xz";
+ sha256 = "1g2chj23dw9p2lgf094mn9cd26wnhwgslwdwzwax2a23p42j7kb8";
+ name = "minuet-21.08.3.tar.xz";
};
};
okular = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/okular-21.08.3.tar.xz";
+ sha256 = "00ghh7z39904d5x5sa39adkavkhl09hzib6fpwjn14f6sz925f9r";
+ name = "okular-21.08.3.tar.xz";
};
};
palapeli = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/palapeli-21.08.3.tar.xz";
+ sha256 = "084nvavgzkmrv77rsg2zf2vykfjwwsvn2i2y24jsh63hs7i5xqhb";
+ name = "palapeli-21.08.3.tar.xz";
};
};
parley = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/parley-21.08.3.tar.xz";
+ sha256 = "0wyv5qx4g0941kg870qb9rc9npdw39ggvndjk7ywaad9nkvdj73g";
+ name = "parley-21.08.3.tar.xz";
};
};
partitionmanager = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/partitionmanager-21.08.3.tar.xz";
+ sha256 = "0im782ggbnkyzcczxx3mv5qi4nlqmcyhwkbf0mzh8cz56qkfvzhr";
+ name = "partitionmanager-21.08.3.tar.xz";
};
};
picmi = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/picmi-21.08.3.tar.xz";
+ sha256 = "0h208sy2r2jzy7a6rmla349d8lydvfvdb2vahdfxrqql0m15s07s";
+ name = "picmi-21.08.3.tar.xz";
};
};
pim-data-exporter = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/pim-data-exporter-21.08.3.tar.xz";
+ sha256 = "0l6gkwh6pxp6px50n8i0374by3n7nv0gjkb2qy0s4hsvfz8nwlwk";
+ name = "pim-data-exporter-21.08.3.tar.xz";
};
};
pim-sieve-editor = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/pim-sieve-editor-21.08.3.tar.xz";
+ sha256 = "1z01c0wsxzl69kr0cxfq23l56dgi0xfjak5qbpfd9p4b2kr095s7";
+ name = "pim-sieve-editor-21.08.3.tar.xz";
};
};
pimcommon = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/pimcommon-21.08.3.tar.xz";
+ sha256 = "1hj49spfjwqrwh7h86kw7ydcx13rknagj54mhcn60kawz639533l";
+ name = "pimcommon-21.08.3.tar.xz";
};
};
poxml = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/poxml-21.08.3.tar.xz";
+ sha256 = "0yrn2dbdhm3ap55w401ma8z64b7pgs57lzgakzkdpcf69bww9xkw";
+ name = "poxml-21.08.3.tar.xz";
};
};
print-manager = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/print-manager-21.08.3.tar.xz";
+ sha256 = "0dmd1wp6c5f58fssnyc977d29gqcr6pmzplvq5pj97xq0i8fq15z";
+ name = "print-manager-21.08.3.tar.xz";
};
};
rocs = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/rocs-21.08.3.tar.xz";
+ sha256 = "0mdn58wbv5rhljp7ai0282h5z5j7m9yly6q9s6c8vm5kaxhbwg58";
+ name = "rocs-21.08.3.tar.xz";
};
};
signon-kwallet-extension = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/signon-kwallet-extension-21.08.3.tar.xz";
+ sha256 = "1m3wyyndlwk4snjzz45j377hz5plx01bl69y39aw1y53rsx0baln";
+ name = "signon-kwallet-extension-21.08.3.tar.xz";
};
};
skanlite = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/skanlite-21.08.3.tar.xz";
+ sha256 = "1llvq89vdsypbak8lmhnyfr61s72c4lra1yypxmgw0hwqvwqzyjk";
+ name = "skanlite-21.08.3.tar.xz";
};
};
spectacle = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/spectacle-21.08.3.tar.xz";
+ sha256 = "0l1p565y2d04fw9mz1ns11bwc9z5apkjd4llgdihz4qwq5j0ri5y";
+ name = "spectacle-21.08.3.tar.xz";
};
};
step = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/step-21.08.3.tar.xz";
+ sha256 = "1pznz6hxj1h0vcsidsyjm9zgzx4pla47yckykc3mxb9biraalhi5";
+ name = "step-21.08.3.tar.xz";
};
};
svgpart = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/svgpart-21.08.3.tar.xz";
+ sha256 = "1zpzmhgvxlyalq4nn446k7plz5fw2pl4r7zv7q3hjrzla1wgcqx8";
+ name = "svgpart-21.08.3.tar.xz";
};
};
sweeper = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/sweeper-21.08.3.tar.xz";
+ sha256 = "0sa8dfx26m9ry3pvqryx41w51l76r8l2xh16b783ixqln7x08z5j";
+ name = "sweeper-21.08.3.tar.xz";
};
};
umbrello = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/umbrello-21.08.3.tar.xz";
+ sha256 = "025qds7nahm6kpi94j4blk8xpv6vh2alrbgwby20vvn3h678z26x";
+ name = "umbrello-21.08.3.tar.xz";
};
};
yakuake = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/yakuake-21.08.3.tar.xz";
+ sha256 = "1za4vhnr495dadrarqqanavmyn1mmzm3y8jx05cpbjyqmlm353dk";
+ name = "yakuake-21.08.3.tar.xz";
};
};
zeroconf-ioslave = {
- version = "21.08.1";
+ version = "21.08.3";
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.3/src/zeroconf-ioslave-21.08.3.tar.xz";
+ sha256 = "1dkig267znwyw03fq6mpdb5g1xnkhr0brnvxskjm44a4d5ipbv2g";
+ name = "zeroconf-ioslave-21.08.3.tar.xz";
};
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/logging/humioctl/default.nix b/third_party/nixpkgs/pkgs/applications/logging/humioctl/default.nix
index b5d0578b12..8f0fe76108 100644
--- a/third_party/nixpkgs/pkgs/applications/logging/humioctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/1password/default.nix b/third_party/nixpkgs/pkgs/applications/misc/1password/default.nix
index 9e9e5c28e5..9dd439fe8e 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/1password/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/1password/default.nix
@@ -51,6 +51,6 @@ stdenv.mkDerivation rec {
downloadPage = "https://app-updates.agilebits.com/product_history/CLI";
maintainers = with maintainers; [ joelburget marsam ];
license = licenses.unfree;
- platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
index cc6b1eab5d..d88bc71348 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -1,42 +1,52 @@
-{ lib, stdenv, fetchurl, unzip, makeWrapper, dotnetCorePackages, jq }:
+{ lib
+, buildDotnetModule
+, fetchFromGitHub
+, dotnetCorePackages
+, libkrb5
+, zlib
+, openssl
+}:
-stdenv.mkDerivation rec {
- pname = "ArchiSteamFarm";
- version = "4.3.1.0";
+buildDotnetModule rec {
+ pname = "archisteamfarm";
+ version = "5.1.5.3";
- src = fetchurl {
- url = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/${version}/ASF-generic.zip";
- sha256 = "1q28byshh4wkfsfdb0sfdqq9a5da9k7i4nagsfpk0fzyajvzd4lx";
+ src = fetchFromGitHub {
+ owner = "justarchinet";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-H038maKHZujmbKhbi8fxsKR/tcSPrcl9L5xnr77yyXg=";
};
- nativeBuildInputs = [ unzip makeWrapper jq ];
+ dotnet-runtime = dotnetCorePackages.aspnetcore_5_0;
+ nugetDeps = ./deps.nix;
- sourceRoot = ".";
+ projectFile = "ArchiSteamFarm.sln";
+ executables = [ "ArchiSteamFarm" ];
- installPhase = ''
- dist=$out/opt/asf
- mkdir -p $dist
- cp -r * $dist
+ runtimeDeps = [ libkrb5 zlib openssl ];
- jq "del(.runtimeOptions.framework.version)" ArchiSteamFarm.runtimeconfig.json > $dist/ArchiSteamFarm.runtimeconfig.json
+ # Without this, it attempts to write to the store even though the `--path` flag is supplied.
+ patches = [ ./mutable-customdir.patch ];
- makeWrapper ${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet $out/bin/ArchiSteamFarm \
- --add-flags $dist/ArchiSteamFarm.dll \
- --add-flags "--path ~/.config/asf" \
- --run "mkdir -p ~/.config/asf" \
- --run "cd ~/.config/asf" \
- --run "[ -d config ] || cp --no-preserve=mode -r $dist/config ." \
- --run "[ -d logs ] || cp --no-preserve=mode -r $dist/logs ." \
- --run "[ -d plugins ] || cp --no-preserve=mode -r $dist/plugins ." \
- --run "ln -sf $dist/www ."
+ doCheck = true;
+
+ preInstall = ''
+ # A mutable path, with this directory tree must be set. By default, this would point at the nix store causing errors.
+ makeWrapperArgs+=(
+ --add-flags "--path ~/.config/archisteamfarm"
+ --run "mkdir -p ~/.config/archisteamfarm/{config,logs,plugins}"
+ --run "cd ~/.config/archisteamfarm"
+ )
'';
+ passthru.updateScript = ./updater.sh;
+
meta = with lib; {
description = "Application with primary purpose of idling Steam cards from multiple accounts simultaneously";
homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
license = licenses.asl20;
- platforms = dotnetCorePackages.aspnetcore_3_1.meta.platforms;
- maintainers = with maintainers; [ ];
- hydraPlatforms = [];
+ platforms = dotnetCorePackages.aspnetcore_5_0.meta.platforms;
+ maintainers = with maintainers; [ SuperSandro2000 lom ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/deps.nix b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/deps.nix
new file mode 100644
index 0000000000..3e6fa17614
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/deps.nix
@@ -0,0 +1,291 @@
+{ fetchNuGet }: [
+ (fetchNuGet { name = "AngleSharp"; version = "0.14.0"; sha256 = "1zgwhh1fp2mmaplvpgm86rpmslix3wqfxf0d3hxx1gxwfgr6wxm6"; })
+ (fetchNuGet { name = "AngleSharp.XPath"; version = "1.1.7"; sha256 = "0lrk002nizq973zdmcm0wmcq17j5gizwp03xdv84hiqqd8cyy538"; })
+ (fetchNuGet { name = "ConfigureAwaitChecker.Analyzer"; version = "5.0.0"; sha256 = "0sklcgan0w0afvmd4akq7wvdbx5j353ifbhg8z7bxs80yi6f9q17"; })
+ (fetchNuGet { name = "CryptSharpStandard"; version = "1.0.0"; sha256 = "0nikzb92z4a2n969sz747ginwxsbrap5741bcwwxr4r6m2na9jz7"; })
+ (fetchNuGet { name = "Humanizer"; version = "2.11.10"; sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; })
+ (fetchNuGet { name = "Humanizer.Core"; version = "2.11.10"; sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; })
+ (fetchNuGet { name = "Humanizer.Core.af"; version = "2.11.10"; sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; })
+ (fetchNuGet { name = "Humanizer.Core.ar"; version = "2.11.10"; sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; })
+ (fetchNuGet { name = "Humanizer.Core.az"; version = "2.11.10"; sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; })
+ (fetchNuGet { name = "Humanizer.Core.bg"; version = "2.11.10"; sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; })
+ (fetchNuGet { name = "Humanizer.Core.bn-BD"; version = "2.11.10"; sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; })
+ (fetchNuGet { name = "Humanizer.Core.cs"; version = "2.11.10"; sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; })
+ (fetchNuGet { name = "Humanizer.Core.da"; version = "2.11.10"; sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; })
+ (fetchNuGet { name = "Humanizer.Core.de"; version = "2.11.10"; sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; })
+ (fetchNuGet { name = "Humanizer.Core.el"; version = "2.11.10"; sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; })
+ (fetchNuGet { name = "Humanizer.Core.es"; version = "2.11.10"; sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; })
+ (fetchNuGet { name = "Humanizer.Core.fa"; version = "2.11.10"; sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; })
+ (fetchNuGet { name = "Humanizer.Core.fi-FI"; version = "2.11.10"; sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; })
+ (fetchNuGet { name = "Humanizer.Core.fr"; version = "2.11.10"; sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; })
+ (fetchNuGet { name = "Humanizer.Core.fr-BE"; version = "2.11.10"; sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; })
+ (fetchNuGet { name = "Humanizer.Core.he"; version = "2.11.10"; sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; })
+ (fetchNuGet { name = "Humanizer.Core.hr"; version = "2.11.10"; sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; })
+ (fetchNuGet { name = "Humanizer.Core.hu"; version = "2.11.10"; sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; })
+ (fetchNuGet { name = "Humanizer.Core.hy"; version = "2.11.10"; sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; })
+ (fetchNuGet { name = "Humanizer.Core.id"; version = "2.11.10"; sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; })
+ (fetchNuGet { name = "Humanizer.Core.it"; version = "2.11.10"; sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; })
+ (fetchNuGet { name = "Humanizer.Core.ja"; version = "2.11.10"; sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; })
+ (fetchNuGet { name = "Humanizer.Core.ko-KR"; version = "2.11.10"; sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; })
+ (fetchNuGet { name = "Humanizer.Core.ku"; version = "2.11.10"; sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; })
+ (fetchNuGet { name = "Humanizer.Core.lv"; version = "2.11.10"; sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; })
+ (fetchNuGet { name = "Humanizer.Core.ms-MY"; version = "2.11.10"; sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; })
+ (fetchNuGet { name = "Humanizer.Core.mt"; version = "2.11.10"; sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; })
+ (fetchNuGet { name = "Humanizer.Core.nb"; version = "2.11.10"; sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; })
+ (fetchNuGet { name = "Humanizer.Core.nb-NO"; version = "2.11.10"; sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; })
+ (fetchNuGet { name = "Humanizer.Core.nl"; version = "2.11.10"; sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; })
+ (fetchNuGet { name = "Humanizer.Core.pl"; version = "2.11.10"; sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; })
+ (fetchNuGet { name = "Humanizer.Core.pt"; version = "2.11.10"; sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; })
+ (fetchNuGet { name = "Humanizer.Core.ro"; version = "2.11.10"; sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; })
+ (fetchNuGet { name = "Humanizer.Core.ru"; version = "2.11.10"; sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; })
+ (fetchNuGet { name = "Humanizer.Core.sk"; version = "2.11.10"; sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; })
+ (fetchNuGet { name = "Humanizer.Core.sl"; version = "2.11.10"; sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; })
+ (fetchNuGet { name = "Humanizer.Core.sr"; version = "2.11.10"; sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; })
+ (fetchNuGet { name = "Humanizer.Core.sr-Latn"; version = "2.11.10"; sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; })
+ (fetchNuGet { name = "Humanizer.Core.sv"; version = "2.11.10"; sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; })
+ (fetchNuGet { name = "Humanizer.Core.th-TH"; version = "2.11.10"; sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; })
+ (fetchNuGet { name = "Humanizer.Core.tr"; version = "2.11.10"; sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; })
+ (fetchNuGet { name = "Humanizer.Core.uk"; version = "2.11.10"; sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; })
+ (fetchNuGet { name = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.11.10"; sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; })
+ (fetchNuGet { name = "Humanizer.Core.uz-Latn-UZ"; version = "2.11.10"; sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; })
+ (fetchNuGet { name = "Humanizer.Core.vi"; version = "2.11.10"; sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; })
+ (fetchNuGet { name = "Humanizer.Core.zh-CN"; version = "2.11.10"; sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; })
+ (fetchNuGet { name = "Humanizer.Core.zh-Hans"; version = "2.11.10"; sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; })
+ (fetchNuGet { name = "Humanizer.Core.zh-Hant"; version = "2.11.10"; sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; })
+ (fetchNuGet { name = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
+ (fetchNuGet { name = "Markdig.Signed"; version = "0.26.0"; sha256 = "1giwdvmy6n4vfb0g7sxmdf9bklb4r2vdfhm1xfxvqys8rfm15d4z"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.10"; sha256 = "1dmcccml0lwxkiplfisxc70877h3s6p589nml19pi07iypvyxxjh"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.12"; sha256 = "1cv7s0gh54jfrdgwa2cyarh1f6m59fpbfmqsszi27cdik0llh24s"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.10"; sha256 = "1r9rf1j5v3hfn299zk71bjbbzslnypyqy1pz2xc4mirghwg18pqw"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.12"; sha256 = "1hmr4l20fs8qqjvcfnlyb6ik6dh37mg0xa2wrvkn229pmiwp1rm9"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.10"; sha256 = "1zlcdqscbgqz5yqfgn21l711ybplid97c6wg0gqbbd6920qmpidd"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.10"; sha256 = "0ir75jh4qas1v70y63hvd0rbyprcf97l47b2pgljhxk138z96s4y"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "02kv8xh6xvpav7vqj281321ly1imghxcc18cdgadiq8dwgm87xwp"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.10"; sha256 = "0qhyrprvbhcn980ycqvkchd4qy5shydi7pl0lbcl9cljivn60if3"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "062zb8gqbzxq2xrmr8lbl215pnhw1fdidq43m975vsfgzmqrga8f"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.JsonPatch"; version = "5.0.0"; sha256 = "192mn6r73xjw8fvlss6vrv34iiavq7k8pg0w7advgj6khklw4dzx"; })
+ (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "5.0.0"; sha256 = "1q3z35pxgvpf6l6ywh5wb6gfly055rk99a80rjqisyrbmza1msd1"; })
+ (fetchNuGet { name = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
+ (fetchNuGet { name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+ (fetchNuGet { name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+ (fetchNuGet { name = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
+ (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
+ (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
+ (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+ (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
+ (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+ (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
+ (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.10"; sha256 = "12zz674g6289z44rynnbsarqdh6md0qdl4srkzkqz9dvm1f2k4yn"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.12"; sha256 = "0v3df0hdv02xr7gmc9fmnwfrxf8xbqp9bci31a55xwj16jia692x"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.10"; sha256 = "0v90w0cr8zjayj0w0rb5ds1kjg77n7za1nr9rr1pnszw2xs00fmq"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.12"; sha256 = "0jvfxnc743qcg1qwlvclh6ww612mnsk5pk459awz5rivp3mdkfsb"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.10"; sha256 = "1z8l02ypzbhbh0jp89ibc4dx61dvaa4l7cdn4s2zs0l492nz2ni8"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.12"; sha256 = "0950m6x86jp5dybzakfsp74qzrk4pk8wkazc178v36j14sqmj2zq"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.10"; sha256 = "07yr09al8cci38zmwqghpsf8jsg51a8qv6p156ph8b5714iq5jjq"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.12"; sha256 = "173zymcac00rjb0l4yvksglj32b6fnwxzi60kpi0ki3z3a2k8kd3"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.10"; sha256 = "12xw4czsnsy4nara23jbvbsi8id9lms17xfyv0w4wsqhrp5kqbxi"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.12"; sha256 = "197xfhk7rwpn5kgc59slclkd0rp53034mfrrpajn2xbgjnmb07sj"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.10"; sha256 = "0ccsk1baj0bx1k7jqm7pnw77ns3m6h50cl8kxikjcm74jsz0vyx1"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.12"; sha256 = "1bpzbivp0n9cl05vlnirigzbvjs25mq7w56bg9zrnzlzjnhcwry2"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.10"; sha256 = "1b3lm6dc31yl9r0rian7zcmhpn949dyp4yhw4fsl4bkdpp4id085"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.10"; sha256 = "1pphlbhs1swr14g07hnvvwj9p983qqf6vqaq455bhpn6lin3z81f"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "0z8l0gzy9dih0mn5a2rknyph1w73y4m03s250wghym1zp6rz910p"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.10"; sha256 = "0cn3nq7vmjwk8b5bh7hb5wzidz1msjmwyng6k1ngqdm49w9f0m2g"; })
+ (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "1s4klc4p5wiqiiqcfqyi56cci9f29b588h52vj7na7gfqry4b51l"; })
+ (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+ (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+ (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
+ (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+ (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+ (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+ (fetchNuGet { name = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
+ (fetchNuGet { name = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
+ (fetchNuGet { name = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
+ (fetchNuGet { name = "Microsoft.TestPlatform.TestHost"; version = "17.0.0"; sha256 = "06mn31cgpp7d8lwdyjanh89prc66j37dchn74vrd9s588rq0y70r"; })
+ (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+ (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+ (fetchNuGet { name = "MSTest.TestAdapter"; version = "2.2.4"; sha256 = "0yzdcxzaqj846y5x95wdin74bqjkifp2s7xlhqjgcg3x0m909p17"; })
+ (fetchNuGet { name = "MSTest.TestFramework"; version = "2.2.4"; sha256 = "1nmkygw0k74nn1hw6rg1gdwchfad7ns5p967kxfp7bvnhj259bq0"; })
+ (fetchNuGet { name = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+ (fetchNuGet { name = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+ (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+ (fetchNuGet { name = "Newtonsoft.Json.Bson"; version = "1.0.2"; sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35"; })
+ (fetchNuGet { name = "Nito.AsyncEx.Coordination"; version = "5.1.2"; sha256 = "0sxvmqnv8a94k3pq1w3lh1vgjb8l62h1qamxcjl3pkq634h2fwrl"; })
+ (fetchNuGet { name = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
+ (fetchNuGet { name = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
+ (fetchNuGet { name = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
+ (fetchNuGet { name = "NLog"; version = "4.7.11"; sha256 = "0vvgypqh6cxzkrfymjaghads5dg88l2xvbz6dxwwrnjg5hhpcjaw"; })
+ (fetchNuGet { name = "NLog.Extensions.Logging"; version = "1.7.4"; sha256 = "1lilk9sv3j9jg23hl0vhxd8w63bh6xvns42rkz5n582wpf5k2r24"; })
+ (fetchNuGet { name = "NLog.Web.AspNetCore"; version = "4.14.0"; sha256 = "1q2v44inp4xjynncxpv432k2qjkfara1bpipmv3p3in0yv14l3wg"; })
+ (fetchNuGet { name = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+ (fetchNuGet { name = "protobuf-net"; version = "3.0.101"; sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf"; })
+ (fetchNuGet { name = "protobuf-net.Core"; version = "3.0.101"; sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m"; })
+ (fetchNuGet { name = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+ (fetchNuGet { name = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+ (fetchNuGet { name = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+ (fetchNuGet { name = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+ (fetchNuGet { name = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+ (fetchNuGet { name = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+ (fetchNuGet { name = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+ (fetchNuGet { name = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+ (fetchNuGet { name = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+ (fetchNuGet { name = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+ (fetchNuGet { name = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+ (fetchNuGet { name = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+ (fetchNuGet { name = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+ (fetchNuGet { name = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+ (fetchNuGet { name = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+ (fetchNuGet { name = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+ (fetchNuGet { name = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+ (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+ (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+ (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+ (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+ (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+ (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+ (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+ (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+ (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+ (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+ (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+ (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+ (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+ (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+ (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+ (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+ (fetchNuGet { name = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+ (fetchNuGet { name = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+ (fetchNuGet { name = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+ (fetchNuGet { name = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+ (fetchNuGet { name = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+ (fetchNuGet { name = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+ (fetchNuGet { name = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+ (fetchNuGet { name = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+ (fetchNuGet { name = "runtime.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
+ (fetchNuGet { name = "runtime.win.System.Console"; version = "4.3.0"; sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc"; })
+ (fetchNuGet { name = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
+ (fetchNuGet { name = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
+ (fetchNuGet { name = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
+ (fetchNuGet { name = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
+ (fetchNuGet { name = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
+ (fetchNuGet { name = "SteamKit2"; version = "2.4.0-Alpha.3"; sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv"; })
+ (fetchNuGet { name = "Swashbuckle.AspNetCore"; version = "6.2.3"; sha256 = "1kx50vliqcqw72aygkm2cs2q82pxdxz17gvz4chz6k858qj4gv0l"; })
+ (fetchNuGet { name = "Swashbuckle.AspNetCore.Annotations"; version = "6.2.3"; sha256 = "189i1ziv3xkdxpxhkpfx3xfji3iw124s88sqn3ga2vh04fbdak8x"; })
+ (fetchNuGet { name = "Swashbuckle.AspNetCore.Newtonsoft"; version = "6.2.3"; sha256 = "1r4z1mmgihnmcqb8zd1q6jbz1g72y5ggl833qhmd1q0wnq8awbs8"; })
+ (fetchNuGet { name = "Swashbuckle.AspNetCore.Swagger"; version = "6.2.3"; sha256 = "0g3aw1lydq1xymd1f5rrs0dhl0fpl85gffs9jsm3khfqp7js31yz"; })
+ (fetchNuGet { name = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.2.3"; sha256 = "1cza3hzxhia81rmmdx9qixbm1ikavscddknpvbkrwmljzx2qmsv7"; })
+ (fetchNuGet { name = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.2.3"; sha256 = "0sbrymb73a2s9qhgm7i44ca08h4n62qfh751fwnvybmj8kb1gzsi"; })
+ (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+ (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+ (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+ (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+ (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+ (fetchNuGet { name = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
+ (fetchNuGet { name = "System.Composition"; version = "5.0.1"; sha256 = "07dr25p4kbh9hlrsnrqnlr920n7p39kfs0yj9sc7072j0icmxbg7"; })
+ (fetchNuGet { name = "System.Composition.AttributedModel"; version = "5.0.1"; sha256 = "1czq644gy2hfwcxkpgr7yw99r4cshyc7789slgkbc3znif81q975"; })
+ (fetchNuGet { name = "System.Composition.Convention"; version = "5.0.1"; sha256 = "086l0gjjb2j50iq176mbm6lx6wvcjh9rj6xwcd483958h774gyqg"; })
+ (fetchNuGet { name = "System.Composition.Hosting"; version = "5.0.1"; sha256 = "07ljg7qmx0pmck32rwci05cpnbsxpj48qmp8gp18mhqw977nycxx"; })
+ (fetchNuGet { name = "System.Composition.Runtime"; version = "5.0.1"; sha256 = "01m17rgn4n63mgcwkjnp4msvdh02h0y1wa7z74afnac4k1zqg5vy"; })
+ (fetchNuGet { name = "System.Composition.TypedParts"; version = "5.0.1"; sha256 = "0hjmma4bh7iwsgylcprnpmjkgp6zd6ff04gchnkq5lbapd26bx6v"; })
+ (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+ (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+ (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+ (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+ (fetchNuGet { name = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
+ (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+ (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+ (fetchNuGet { name = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
+ (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+ (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+ (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+ (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+ (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+ (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+ (fetchNuGet { name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+ (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+ (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+ (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+ (fetchNuGet { name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+ (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+ (fetchNuGet { name = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
+ (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+ (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+ (fetchNuGet { name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+ (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+ (fetchNuGet { name = "System.Linq.Async"; version = "5.0.0"; sha256 = "1bc1bfnahyk6y31mrxn7nd071436m94p4r9b2j835pghcqawqfbc"; })
+ (fetchNuGet { name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+ (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+ (fetchNuGet { name = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+ (fetchNuGet { name = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+ (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+ (fetchNuGet { name = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+ (fetchNuGet { name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+ (fetchNuGet { name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+ (fetchNuGet { name = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+ (fetchNuGet { name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+ (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+ (fetchNuGet { name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+ (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+ (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+ (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+ (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+ (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+ (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+ (fetchNuGet { name = "System.Reflection.Extensions"; 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"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+ (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+ (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+ (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+ (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+ (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+ (fetchNuGet { name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+ (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+ (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
+ (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+ (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+ (fetchNuGet { name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+ (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+ (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+ (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+ (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+ (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+ (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+ (fetchNuGet { name = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+ (fetchNuGet { name = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+ (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+ (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+ (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+ (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+ (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+ (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+ (fetchNuGet { name = "System.Security.Cryptography.ProtectedData"; version = "5.0.0"; sha256 = "0jq1rcj5af2ydswld8ga3dyw2yi4c63wvb986b5kqsvpkwwc8x1b"; })
+ (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+ (fetchNuGet { name = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+ (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+ (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+ (fetchNuGet { name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+ (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+ (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.5.0"; sha256 = "19x38911pawq4mrxrm04l2bnxwxxlzq8v8rj4cbxnfjj8pnd3vj3"; })
+ (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+ (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+ (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+ (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+ (fetchNuGet { name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+ (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+ (fetchNuGet { name = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
+ (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+ (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+ (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+ (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+ (fetchNuGet { name = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+ (fetchNuGet { name = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+ (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+ (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+ (fetchNuGet { name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+ (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+ (fetchNuGet { name = "zxcvbn-core"; version = "7.0.92"; sha256 = "1pbi0n3za8zsnkbvq19njy4h4hy12a6rv4rknf4a2m1kdhxb3cgx"; })
+]
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/mutable-customdir.patch b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/mutable-customdir.patch
new file mode 100644
index 0000000000..09bd43f264
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/mutable-customdir.patch
@@ -0,0 +1,13 @@
+diff --git a/ArchiSteamFarm/IPC/ArchiKestrel.cs b/ArchiSteamFarm/IPC/ArchiKestrel.cs
+index 371d305c..701eab3d 100644
+--- a/ArchiSteamFarm/IPC/ArchiKestrel.cs
++++ b/ArchiSteamFarm/IPC/ArchiKestrel.cs
+@@ -76,7 +76,7 @@ internal static class ArchiKestrel {
+ HostBuilder builder = new();
+ #endif
+
+- string customDirectory = Path.Combine(Directory.GetCurrentDirectory(), SharedInfo.WebsiteDirectory);
++ string customDirectory = AppContext.BaseDirectory;
+ string websiteDirectory = Directory.Exists(customDirectory) ? customDirectory : Path.Combine(AppContext.BaseDirectory, SharedInfo.WebsiteDirectory);
+
+ // Set default content root
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/updater.sh b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/updater.sh
new file mode 100755
index 0000000000..399ab975fd
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/updater.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_5
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath ./deps.nix)"
+
+new_version="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/JustArchiNET/ArchiSteamFarm/releases" | jq -r 'map(select(.prerelease == false)) | .[0].tag_name')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+
+if [[ "$new_version" == "$old_version" ]]; then
+ echo "Already up to date!"
+ exit 0
+fi
+
+cd ../../../..
+update-source-version ArchiSteamFarm "$new_version"
+store_src="$(nix-build -A ArchiSteamFarm.src --no-out-link)"
+src="$(mktemp -d /tmp/ArchiSteamFarm-src.XXX)"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+export DOTNET_NOLOGO=1
+export DOTNET_CLI_TELEMETRY_OPTOUT=1
+
+mkdir ./nuget_pkgs
+dotnet restore ArchiSteamFarm.sln --packages ./nuget_pkgs
+
+nuget-to-nix ./nuget_pkgs > "$deps_file"
+
+trap ''
+ popd
+ rm -r "$src"
+'' EXIT
diff --git a/third_party/nixpkgs/pkgs/applications/misc/abook/default.nix b/third_party/nixpkgs/pkgs/applications/misc/abook/default.nix
index 62cba4a5b7..de463cfd66 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/abook/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/abook/default.nix
@@ -1,19 +1,20 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, ncurses, readline, autoreconfHook }:
stdenv.mkDerivation rec {
- name = "abook-0.6.1";
+ pname = "abook";
+ version = "0.6.1";
src = fetchurl {
- url = "http://abook.sourceforge.net/devel/${name}.tar.gz";
+ url = "http://abook.sourceforge.net/devel/abook-${version}.tar.gz";
sha256 = "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh";
};
patches = [
(fetchpatch {
- url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc5.patch?h=packages/abook";
- name = "gcc5.patch";
- sha256 = "13n3qd6yy45i5n8ppjn9hj6y63ymjrq96280683xk7f7rjavw5nn";
- })
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc5.patch?h=packages/abook";
+ name = "gcc5.patch";
+ sha256 = "13n3qd6yy45i5n8ppjn9hj6y63ymjrq96280683xk7f7rjavw5nn";
+ })
];
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix b/third_party/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
index 8f1b3f5ca8..2bce30365f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
@@ -1,13 +1,23 @@
-{ lib, stdenv, fetchurl, libX11, cups, zlib, libxml2, pango, atk, gtk2, glib
-, gdk-pixbuf, gdk-pixbuf-xlib }:
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, cups
+, zlib
+, libxml2
+, pango
+, atk
+, gtk2
+, glib
+, gdk-pixbuf
+, gdk-pixbuf-xlib
+}:
-assert stdenv.hostPlatform.system == "i686-linux";
-
-let version = "9.5.5"; in
-
-stdenv.mkDerivation {
- name = "adobe-reader-${version}-1";
+stdenv.mkDerivation rec {
+ pname = "adobe-reader";
+ version = "9.5.5";
+ # TODO: convert to phases
builder = ./builder.sh;
src = fetchurl {
@@ -16,11 +26,8 @@ stdenv.mkDerivation {
};
# !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
- # We should probably remove those and use the regular Nixpkgs
- # versions.
-
- libPath = lib.makeLibraryPath
- [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
+ # We should probably remove those and use the regular Nixpkgs versions.
+ libPath = lib.makeLibraryPath [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
@@ -32,5 +39,6 @@ stdenv.mkDerivation {
"Numerous unresolved vulnerabilities"
"See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
];
+ platforms = [ "i686-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/anup/default.nix b/third_party/nixpkgs/pkgs/applications/misc/anup/default.nix
index 9c99c84eab..3eed2a7501 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/anup/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/anytype/default.nix b/third_party/nixpkgs/pkgs/applications/misc/anytype/default.nix
index c7428387d2..f1a46634cb 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/anytype/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
let
pname = "anytype";
- version = "0.20.9";
+ version = "0.21.9";
name = "Anytype-${version}";
nameExecutable = pname;
src = fetchurl {
url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
name = "Anytype-${version}.AppImage";
- sha256 = "sha256-dm3bdKbUHI0FFcyYeYd2XSuZuoPsUhk4KcEwzPHiHM8=";
+ sha256 = "sha256-By9rNvCY4voiePvYf47DMwPogUPTd5JdaINEE0ei1Is=";
};
appimageContents = appimageTools.extractType2 { inherit name src; };
in
diff --git a/third_party/nixpkgs/pkgs/applications/misc/appeditor/default.nix b/third_party/nixpkgs/pkgs/applications/misc/appeditor/default.nix
index f8e709e423..0643e33885 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/appeditor/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/apvlv/default.nix b/third_party/nixpkgs/pkgs/applications/misc/apvlv/default.nix
index 140d6eb7d0..d7dde2a77f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/apvlv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/apvlv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, pcre, libxkbcommon, epoxy
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, pcre, libxkbcommon, libepoxy
, gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence, wrapGAppsHook
}:
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- poppler pcre libxkbcommon epoxy
+ poppler pcre libxkbcommon libepoxy
freetype gtk3
libpthreadstubs libXdmcp libxshmfence # otherwise warnings in compilation
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/archiver/default.nix b/third_party/nixpkgs/pkgs/applications/misc/archiver/default.nix
index cf76eda272..7fb0de24c1 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/archiver/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/audio/sox/default.nix b/third_party/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
index 9baf2d4d2f..29a932f40d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
@@ -1,54 +1,72 @@
-{ config, lib, stdenv, fetchurl, pkg-config, CoreAudio
-, enableAlsa ? true, alsa-lib ? null
-, enableLibao ? true, libao ? null
-, enableLame ? config.sox.enableLame or false, lame ? null
-, enableLibmad ? true, libmad ? null
-, enableLibogg ? true, libogg ? null, libvorbis ? null
-, enableOpusfile ? true, opusfile ? null
-, enableFLAC ? true, flac ? null
-, enablePNG ? true, libpng ? null
-, enableLibsndfile ? true, libsndfile ? null
-, enableWavpack ? true, wavpack ? null
-# amrnb and amrwb are unfree, disabled by default
-, enableAMR ? false, amrnb ? null, amrwb ? null
-, enableLibpulseaudio ? true, libpulseaudio ? null
+{ config
+, lib
+, stdenv
+, fetchurl
+, pkg-config
+, CoreAudio
+, enableAlsa ? true
+, alsa-lib
+, enableLibao ? true
+, libao
+, enableLame ? config.sox.enableLame or false
+, lame
+, enableLibmad ? true
+, libmad
+, enableLibogg ? true
+, libogg
+, libvorbis
+, enableOpusfile ? true
+, opusfile
+, enableFLAC ? true
+, flac
+, enablePNG ? true
+, libpng
+, enableLibsndfile ? true
+, libsndfile
+, enableWavpack ? true
+, wavpack
+ # amrnb and amrwb are unfree, disabled by default
+, enableAMR ? false
+, amrnb
+, amrwb
+, enableLibpulseaudio ? stdenv.isLinux
+, libpulseaudio
}:
-with lib;
-
stdenv.mkDerivation rec {
- name = "sox-14.4.2";
+ pname = "sox";
+ version = "14.4.2";
src = fetchurl {
- url = "mirror://sourceforge/sox/${name}.tar.gz";
+ url = "mirror://sourceforge/sox/sox-${version}.tar.gz";
sha256 = "0v2znlxkxxcd3f48hf3dx9pq7i6fdhb62kgj7wv8xggz8f35jpxl";
};
# configure.ac uses pkg-config only to locate libopusfile
- nativeBuildInputs = optional enableOpusfile pkg-config;
+ nativeBuildInputs = lib.optional enableOpusfile pkg-config;
patches = [ ./0001-musl-rewind-pipe-workaround.patch ];
buildInputs =
- optional (enableAlsa && stdenv.isLinux) alsa-lib ++
- optional enableLibao libao ++
- optional enableLame lame ++
- optional enableLibmad libmad ++
- optionals enableLibogg [ libogg libvorbis ] ++
- optional enableOpusfile opusfile ++
- optional enableFLAC flac ++
- optional enablePNG libpng ++
- optional enableLibsndfile libsndfile ++
- optional enableWavpack wavpack ++
- optionals enableAMR [ amrnb amrwb ] ++
- optional enableLibpulseaudio libpulseaudio ++
- optional (stdenv.isDarwin) CoreAudio;
+ lib.optional (enableAlsa && stdenv.isLinux) alsa-lib
+ ++ lib.optional enableLibao libao
+ ++ lib.optional enableLame lame
+ ++ lib.optional enableLibmad libmad
+ ++ lib.optionals enableLibogg [ libogg libvorbis ]
+ ++ lib.optional enableOpusfile opusfile
+ ++ lib.optional enableFLAC flac
+ ++ lib.optional enablePNG libpng
+ ++ lib.optional enableLibsndfile libsndfile
+ ++ lib.optional enableWavpack wavpack
+ ++ lib.optionals enableAMR [ amrnb amrwb ]
+ ++ lib.optional enableLibpulseaudio libpulseaudio
+ ++ lib.optional stdenv.isDarwin CoreAudio;
- meta = {
+ meta = with lib; {
description = "Sample Rate Converter for audio";
homepage = "http://sox.sourceforge.net/";
- maintainers = [ lib.maintainers.marcweber ];
- license = if enableAMR then lib.licenses.unfree else lib.licenses.gpl2Plus;
- platforms = lib.platforms.linux ++ lib.platforms.darwin;
+ maintainers = with maintainers; [ marcweber ];
+ license = if enableAMR then licenses.unfree else licenses.gpl2Plus;
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix b/third_party/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
index 8460b4856d..f7c01ce464 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake }:
stdenv.mkDerivation rec {
- name = "soxr-0.1.3";
+ pname = "soxr";
+ version = "0.1.3";
src = fetchurl {
- url = "mirror://sourceforge/soxr/${name}-Source.tar.xz";
+ url = "mirror://sourceforge/soxr/soxr-${version}-Source.tar.xz";
sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di";
};
@@ -15,18 +16,20 @@ stdenv.mkDerivation rec {
outputs = [ "out" "doc" ]; # headers are just two and very small
- preConfigure = if stdenv.isDarwin then ''
- export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}"`pwd`/build/src
- '' else ''
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}"`pwd`/build/src
- '';
+ preConfigure =
+ if stdenv.isDarwin then ''
+ export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}"`pwd`/build/src
+ '' else ''
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}"`pwd`/build/src
+ '';
nativeBuildInputs = [ cmake ];
- meta = {
+ meta = with lib; {
description = "An audio resampling library";
homepage = "http://soxr.sourceforge.net";
- license = lib.licenses.lgpl21Plus;
- platforms = lib.platforms.unix;
+ license = licenses.lgpl21Plus;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix b/third_party/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
index 9c8a99a593..99cdc9ade2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, snack, tcl, tk, makeWrapper }:
-stdenv.mkDerivation {
- name = "wavesurfer-1.8.5";
+stdenv.mkDerivation rec {
+ pname = "wavesurfer";
+ version = "1.8.5";
src = fetchurl {
- url = "https://www.speech.kth.se/wavesurfer/wavesurfer-1.8.5.tar.gz";
+ url = "https://www.speech.kth.se/wavesurfer/wavesurfer-${version}.tar.gz";
sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix b/third_party/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
index 6b09a2e38d..10aac715b4 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation {
- name = "wavrsocvt-1.0.2.0";
+ pname = "wavrsocvt";
+ version = "1.0.2.0";
src = fetchurl {
url = "http://bricxcc.sourceforge.net/wavrsocvt.tgz";
@@ -10,23 +11,23 @@ stdenv.mkDerivation {
unpackPhase = ''
tar -zxf $src
- '';
+ '';
installPhase = ''
mkdir -p $out/bin
cp wavrsocvt $out/bin
- '';
+ '';
meta = with lib; {
description = "Convert .wav files into sound files for Lego NXT brick";
longDescription = ''
- wavrsocvt is a command-line utility which can be used from a
- terminal window or script to convert .wav files into sound
- files for the NXT brick (.rso files). It can also convert the
- other direction (i.e., .rso -> .wav). It can produce RSO files
- with a sample rate between 2000 and 16000 (the min/max range of
- supported sample rates in the standard NXT firmware).
- You can then upload these with e.g. nxt-python.
+ wavrsocvt is a command-line utility which can be used from a
+ terminal window or script to convert .wav files into sound
+ files for the NXT brick (.rso files). It can also convert the
+ other direction (i.e., .rso -> .wav). It can produce RSO files
+ with a sample rate between 2000 and 16000 (the min/max range of
+ supported sample rates in the standard NXT firmware).
+ You can then upload these with e.g. nxt-python.
'';
homepage = "http://bricxcc.sourceforge.net/";
license = licenses.mpl11;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix b/third_party/nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix
new file mode 100644
index 0000000000..5990bf91ea
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/avrdudess/default.nix b/third_party/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
index 61cab2b6a2..0a42e6f5e2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, runtimeShell, fetchurl, unzip, mono, avrdude, gtk2, xdg-utils }:
stdenv.mkDerivation {
- name = "avrdudess-2.2.20140102";
+ pname = "avrdudess";
+ version = "2.2.20140102";
src = fetchurl {
url = "http://blog.zakkemble.co.uk/download/avrdudess_20140102.zip";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix b/third_party/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
index fca1ad12fd..f7e3939660 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/barrier/default.nix b/third_party/nixpkgs/pkgs/applications/misc/barrier/default.nix
index b9dbcf529b..63a04d1811 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/barrier/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/third_party/nixpkgs/pkgs/applications/misc/bemenu/default.nix
index 123d839341..d230606a3c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/bemenu/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/binance/default.nix b/third_party/nixpkgs/pkgs/applications/misc/binance/default.nix
index db287cb37e..84a3b266ac 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/binance/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/binance/default.nix
@@ -1,16 +1,13 @@
-{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron_12,
-alsa-lib, gtk3, libxshmfence, mesa, nss, popt }:
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, gtk3, libxshmfence, mesa, nss, popt }:
-let
- electron = electron_12;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "binance";
- version = "1.25.0";
+ version = "1.27.0";
src = fetchurl {
url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
- sha256 = "sha256-oXXzrRhdaWP8GcWI/Ugl8BrDWomZ+hsy5Om0+ME+zY0=";
+ sha256 = "sha256-klOzCYI2vSkSV7O9WlKny2wt+etl1K8zFjGlUNIOZdI=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/bklk/default.nix b/third_party/nixpkgs/pkgs/applications/misc/bklk/default.nix
index 86b596d395..62aeb7c91a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/bklk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/bklk/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
sha256 = "sha256-R3H6tv6fzQG41Y2rui0K8fdQ/+Ywnc5hqTPFjktrhF8=";
};
+ makeFlags = [ "CC=$$CXX" ];
+
buildInputs = [ ncurses ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix b/third_party/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix
index 19c2f3b99a..d9c3f5bc2a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix
@@ -2,13 +2,13 @@
buildPythonApplication rec {
pname = "bluetooth_battery";
- version = "1.2.0";
+ version = "1.3.1";
src = fetchFromGitHub {
owner = "TheWeirdDev";
repo = "Bluetooth_Headset_Battery_Level";
rev = "v${version}";
- sha256 = "121pkaq9z8p2i35cqs32aygjvf82r961w0axirpmsrbmrwq2hh6g";
+ sha256 = "067qfxh228cy1x95bnjp88dx4k00ajj7ay7fz5vr1gkj2yfa203s";
};
propagatedBuildInputs = [ pybluez ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/calibre/default.nix b/third_party/nixpkgs/pkgs/applications/misc/calibre/default.nix
index a96be344b3..a991d7c0d1 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -27,21 +27,20 @@
mkDerivation rec {
pname = "calibre";
- version = "5.30.0";
+ version = "5.31.1";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
- sha256 = "058dqqxhc3pl4is1idlnc3pz80k4r681d5aj4a26v9acp8j7zy4f";
+ sha256 = "sha256-3LGEWuHms54ji9GWSyLl8cFWIRBqHY1Jf/CNPJOywrU=";
};
- # https://sources.debian.org/patches/calibre/5.30.0+dfsg-1
+ # https://sources.debian.org/patches/calibre/5.31.1+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/${version}%2Bdfsg-1/debian/patches/0001-only-plugin-update.patch";
- sha256 = "sha256-aGT8rJ/eQKAkmyHBWdY0ouZuWvDwtLVJU5xY6d3hY3k=";
+ name = "0001-only-plugin-update.patch";
+ url = "https://raw.githubusercontent.com/debian-calibre/calibre/debian/${version}%2Bdfsg-1/debian/patches/0001-only-plugin-update.patch";
+ sha256 = "sha256-dLzO1TWP7Q4nw2a3oN7qlhGCmcA0NKJrZidUnD6hUMA=";
})
]
++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/cardpeek/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cardpeek/default.nix
index 1d5baf9f6b..adabcdac95 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/cardpeek/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/cardpeek/default.nix
@@ -1,29 +1,50 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook,
- glib, gtk3, pcsclite, lua5_2, curl, readline }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, autoreconfHook
+, glib
+, gtk3
+, pcsclite
+, lua5_2
+, curl
+, readline
+, PCSC
+, xcbuild
+}:
let
version = "0.8.4";
in
- stdenv.mkDerivation {
- pname = "cardpeek";
- inherit version;
+stdenv.mkDerivation {
+ pname = "cardpeek";
+ inherit version;
- src = fetchFromGitHub {
- owner = "L1L1";
- repo = "cardpeek";
- rev = "cardpeek-${version}";
- sha256 = "1ighpl7nvcvwnsd6r5h5n9p95kclwrq99hq7bry7s53yr57l6588";
- };
+ src = fetchFromGitHub {
+ owner = "L1L1";
+ repo = "cardpeek";
+ rev = "cardpeek-${version}";
+ sha256 = "1ighpl7nvcvwnsd6r5h5n9p95kclwrq99hq7bry7s53yr57l6588";
+ };
- nativeBuildInputs = [ pkg-config autoreconfHook ];
- buildInputs = [ glib gtk3 pcsclite lua5_2 curl readline ];
+ postPatch = lib.optionalString stdenv.isDarwin ''
+ # replace xcode check and hard-coded PCSC framework path
+ substituteInPlace configure.ac \
+ --replace 'if test ! -e "/Applications/Xcode.app/"; then' 'if test yes != yes; then' \
+ --replace 'PCSC_HEADERS=`ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/*.sdk/System/Library/Frameworks/PCSC.framework/Versions/Current/Headers/ | sort | head -1`' 'PCSC_HEADERS=${PCSC}/Library/Frameworks/PCSC.framework/Headers'
+ '';
- enableParallelBuilding = true;
+ nativeBuildInputs = [ pkg-config autoreconfHook ];
+ buildInputs = [ glib gtk3 lua5_2 curl readline ]
+ ++ lib.optional stdenv.isDarwin PCSC
+ ++ lib.optional stdenv.isLinux pcsclite;
- meta = with lib; {
- homepage = "https://github.com/L1L1/cardpeek";
- description = "A tool to read the contents of ISO7816 smart cards";
- license = licenses.gpl3Plus;
- platforms = with platforms; linux ++ darwin;
- maintainers = with maintainers; [ embr ];
- };
- }
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://github.com/L1L1/cardpeek";
+ description = "A tool to read the contents of ISO7816 smart cards";
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ embr ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/catclock/default.nix b/third_party/nixpkgs/pkgs/applications/misc/catclock/default.nix
index 9c6b181268..768eb7b308 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/catclock/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/catclock/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, xlibsWrapper, motif }:
stdenv.mkDerivation {
- name = "catclock-2015-10-04";
+ pname = "catclock";
+ version = "unstable-2015-10-04";
src = fetchFromGitHub {
owner = "BarkyTheDog";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/cfm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cfm/default.nix
new file mode 100644
index 0000000000..4e56f376c8
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/cfm/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "cfm";
+ version = "0.6.6";
+
+ src = fetchFromGitHub {
+ owner = "willeccles";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-uXL0RO9P+NYSZ0xCv91KzjHOJJI500YUT8IJkFS86pE=";
+ };
+
+ makeFlags = [
+ "DESTDIR=${placeholder "out"}"
+ "PREFIX="
+ ];
+
+ meta = with lib; {
+ description = "Simple and fast TUI file manager with no dependencies";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ lom ];
+ homepage = "https://github.com/willeccles/cfm";
+ platforms = platforms.all;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/cheat/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cheat/default.nix
index f7a56a48fc..bda779dd54 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/cheat/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
index d4fc82b913..aaeecab528 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
@@ -13,19 +13,18 @@
, sqlite
, curl
, libuchardet
-, fmt
, spdlog
}:
stdenv.mkDerivation rec {
pname = "cherrytree";
- version = "0.99.41";
+ version = "0.99.43";
src = fetchFromGitHub {
owner = "giuspen";
repo = "cherrytree";
rev = version;
- sha256 = "sha256-Bhk5xpJiVDSTxP1wAFTL39MgAIOa6Is9NTF1WEh6S1A=";
+ sha256 = "sha256-KSIdA585WbmvHXituCJoHpVRobfCZ62m5t7BWI6jIYk=";
};
nativeBuildInputs = [
@@ -44,7 +43,6 @@ stdenv.mkDerivation rec {
sqlite
curl
libuchardet
- fmt
spdlog
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/cipher/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cipher/default.nix
index 5675676d95..fb373938d5 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/cipher/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/clipcat/default.nix b/third_party/nixpkgs/pkgs/applications/misc/clipcat/default.nix
index b28b33d56c..38c0c10394 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/clipcat/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/clipcat/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
];
buildInputs = [ xorg.libxcb ];
- cargoBuildFlags = [ "--features=all" ];
+ buildFeatures = [ "all" ];
postInstall = ''
installShellCompletion --bash completions/bash-completion/completions/*
diff --git a/third_party/nixpkgs/pkgs/applications/misc/cloak/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cloak/default.nix
index cb33aa595a..7b25018412 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/cloak/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/cloak/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, Security }:
rustPlatform.buildRustPackage rec {
pname = "cloak";
@@ -13,6 +13,8 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "0af38wgwmsamnx63dwfm2nrkd8wmky3ai7zwy0knmifgkn4b7yyj";
+ buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
meta = with lib; {
homepage = "https://github.com/evansmurithi/cloak";
description = "Command-line OTP authenticator application";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/colort/default.nix b/third_party/nixpkgs/pkgs/applications/misc/colort/default.nix
index a4283e5ebb..7a1ae7a9e2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/colort/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/colort/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
- name = "colort-unstable-2017-03-12";
+ pname = "colort";
+ version = "unstable-2017-03-12";
src = fetchFromGitHub {
owner = "neeasade";
@@ -10,7 +11,7 @@ stdenv.mkDerivation {
sha256 = "10n8rbr2h6hz86hcx73f86pjbbfiaw2rvxsk0yfajnma7bpxgdxw";
};
- makeFlags = ["PREFIX=$(out)"];
+ makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "A program for 'tinting' color values";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/corectrl/default.nix b/third_party/nixpkgs/pkgs/applications/misc/corectrl/default.nix
index dc692b6773..d5e2e6adf5 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/corectrl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/corectrl/default.nix
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec{
pname = "corectrl";
- version = "1.1.4";
+ version = "1.2.2";
src = fetchFromGitLab {
owner = "corectrl";
repo = "corectrl";
rev = "v${version}";
- sha256 = "sha256-o8u9WnkK/6VZ+wlJ9I5Ti6ADjV9VXraRGpSWkDQv5JQ=";
+ sha256 = "1zp523cgvmfjc42wx1f1jh5q3jnsnm833m2xnbbwmfrmhrzh5269";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/coreaction/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
similarity index 96%
rename from third_party/nixpkgs/pkgs/applications/misc/coreaction/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
index be9d02bf33..f17730cc7e 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/coreaction/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/tools/archivers/corearchiver/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
similarity index 92%
rename from third_party/nixpkgs/pkgs/tools/archivers/corearchiver/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
index 217520dde9..56a05bc434 100644
--- a/third_party/nixpkgs/pkgs/tools/archivers/corearchiver/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/corefm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix
similarity index 88%
rename from third_party/nixpkgs/pkgs/applications/misc/corefm/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix
index 9ad99e3aa0..3ec918db7a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/corefm/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/coregarage/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
similarity index 92%
rename from third_party/nixpkgs/pkgs/applications/misc/coregarage/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
index 6d66547976..719047c8de 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/coregarage/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/corehunt/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
similarity index 86%
rename from third_party/nixpkgs/pkgs/applications/misc/corehunt/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
index ad1fabb250..fb9bcd5e8e 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/corehunt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/graphics/coreimage/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
similarity index 86%
rename from third_party/nixpkgs/pkgs/applications/graphics/coreimage/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
index 1dcff1f6e8..224c946d11 100644
--- a/third_party/nixpkgs/pkgs/applications/graphics/coreimage/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
new file mode 100644
index 0000000000..d8df86abd8
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
new file mode 100644
index 0000000000..3d4e6ddc30
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix
new file mode 100644
index 0000000000..fcd1bfa4a4
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
new file mode 100644
index 0000000000..6410da3ba6
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
new file mode 100644
index 0000000000..bb93391c2a
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix
new file mode 100644
index 0000000000..80d3a096ff
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
new file mode 100644
index 0000000000..f92d532ba4
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/tools/misc/coreshot/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
similarity index 85%
rename from third_party/nixpkgs/pkgs/tools/misc/coreshot/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
index bb2404b1ed..bf9f5e49ae 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/coreshot/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix
new file mode 100644
index 0000000000..a6d71eaa6c
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
new file mode 100644
index 0000000000..57216f4710
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/terminal-emulators/coreterminal/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
similarity index 97%
rename from third_party/nixpkgs/pkgs/applications/terminal-emulators/coreterminal/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
index e358fae071..c2085686aa 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/coreterminal/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix
new file mode 100644
index 0000000000..af33d474e3
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/coretoppings/0001-fix-install-phase.patch b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/0001-fix-install-phase.patch
similarity index 100%
rename from third_party/nixpkgs/pkgs/applications/misc/coretoppings/0001-fix-install-phase.patch
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/0001-fix-install-phase.patch
diff --git a/third_party/nixpkgs/pkgs/applications/misc/coretoppings/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
similarity index 76%
rename from third_party/nixpkgs/pkgs/applications/misc/coretoppings/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
index eff253ffcc..154f4a3899 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/coretoppings/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
new file mode 100644
index 0000000000..0a6ccaf721
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/development/libraries/libcprime/0001-fix-application-dirs.patch b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/libcprime/0001-fix-application-dirs.patch
similarity index 100%
rename from third_party/nixpkgs/pkgs/development/libraries/libcprime/0001-fix-application-dirs.patch
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/libcprime/0001-fix-application-dirs.patch
diff --git a/third_party/nixpkgs/pkgs/development/libraries/libcprime/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
similarity index 93%
rename from third_party/nixpkgs/pkgs/development/libraries/libcprime/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
index d312c83224..00e297bf27 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/libcprime/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/development/libraries/libcsys/default.nix b/third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/libcsys/default.nix
similarity index 98%
rename from third_party/nixpkgs/pkgs/development/libraries/libcsys/default.nix
rename to third_party/nixpkgs/pkgs/applications/misc/cubocore-packages/libcsys/default.nix
index cec6e501bb..d1dde9942e 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/libcsys/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/curaengine/stable.nix b/third_party/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
index 148553da16..3c74aaaded 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
@@ -13,8 +13,6 @@ stdenv.mkDerivation {
postPatch = ''
substituteInPlace Makefile --replace "--static" ""
- '' + lib.optionalString stdenv.isi686 ''
- substituteInPlace Makefile --replace "-flto" ""
'';
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dasel/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dasel/default.nix
index d8c94c8838..870d3cceb0 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dasel/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dasel/default.nix
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "dasel";
- version = "1.21.2";
+ version = "1.22.1";
src = fetchFromGitHub {
owner = "TomWright";
- repo = pname;
+ repo = "dasel";
rev = "v${version}";
- sha256 = "sha256-HHeO8mbvD+PLMKjeacjIBNEVeOYjeHjXJHhTkbMMOG4=";
+ sha256 = "091s3hyz9p892garanm9zmkbsn6hn3bnnrz7h3dqsyi58806d5yr";
};
- vendorSha256 = "sha256-yP4iF3403WWgWAmBHiuOpDsIAUx4+KR8uKPfjy3qXt8=";
+ vendorSha256 = "1psyx8nqzpx3p1ya9y3q9h0hhfx4iqmix089b2h6bp9lgqbj5zn8";
ldflags = [
"-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}"
@@ -38,6 +38,7 @@ buildGoModule rec {
Comparable to jq / yq, but supports JSON, YAML, TOML and XML with zero runtime dependencies.
'';
homepage = "https://github.com/TomWright/dasel";
+ changelog = "https://github.com/TomWright/dasel/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ _0x4A6F ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index 1fec32d9f7..156cc7188d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -14,17 +14,19 @@
, libXtst
, zlib
, maven
+, webkitgtk
+, glib-networking
}:
stdenv.mkDerivation rec {
pname = "dbeaver";
- version = "21.2.3"; # When updating also update fetchedMavenDeps.sha256
+ version = "21.3.0"; # When updating also update fetchedMavenDeps.sha256
src = fetchFromGitHub {
owner = "dbeaver";
repo = "dbeaver";
rev = version;
- sha256 = "0xu/uMMloCUuhKs392kn6qJzlobDNuvwlHGdS/gGAB8=";
+ sha256 = "iKxnuMm5hpreP706N+XxaBrDVVwVFRWKNmiCyXkOUCQ=";
};
fetchedMavenDeps = stdenv.mkDerivation {
@@ -69,6 +71,9 @@ stdenv.mkDerivation rec {
libXrender
libXtst
zlib
+ ] ++ lib.optionals stdenv.isLinux [
+ webkitgtk
+ glib-networking
];
desktopItems = [
@@ -130,7 +135,8 @@ stdenv.mkDerivation rec {
makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \
--prefix PATH : ${jdk}/bin \
- --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk glib-networking ])} \
+ --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
mkdir -p $out/share/pixmaps
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
index 19cfa95a88..6a9453eb58 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
@@ -2,7 +2,7 @@
mkDerivation {
pname = "dfilemanager";
- version = "git-2020-09-04";
+ version = "unstable-2020-09-04";
src = fetchFromGitHub {
owner = "probonopd";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ding/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ding/default.nix
index 649fbe55fa..3c193d3f56 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ding/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/ding/default.nix
@@ -10,10 +10,11 @@ let
};
in
stdenv.mkDerivation rec {
- name = "ding-1.9";
+ pname = "ding";
+ version = "1.9";
src = fetchurl {
- url = "http://ftp.tu-chemnitz.de/pub/Local/urz/ding/${name}.tar.gz";
+ url = "http://ftp.tu-chemnitz.de/pub/Local/urz/ding/ding-${version}.tar.gz";
sha256 = "sha256-aabIH894WihsBTo1LzIBzIZxxyhRYVxLcHpDQwmwmOU=";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dmenu/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dmenu/default.nix
index 62f02ce671..42bc059986 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dmenu/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dmenu/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }:
stdenv.mkDerivation rec {
- name = "dmenu-5.0";
+ pname = "dmenu";
+ version = "5.0";
src = fetchurl {
- url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz";
sha256 = "1lvfxzg3chsgcqbc2vr0zic7vimijgmbvnspayx73kyvqi1f267y";
};
@@ -24,10 +25,10 @@ stdenv.mkDerivation rec {
makeFlags = [ "CC:=$(CC)" ];
meta = with lib; {
- description = "A generic, highly customizable, and efficient menu for the X Window System";
- homepage = "https://tools.suckless.org/dmenu";
- license = licenses.mit;
- maintainers = with maintainers; [ pSub globin ];
- platforms = platforms.all;
+ description = "A generic, highly customizable, and efficient menu for the X Window System";
+ homepage = "https://tools.suckless.org/dmenu";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pSub globin ];
+ platforms = platforms.all;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/downonspot/default.nix b/third_party/nixpkgs/pkgs/applications/misc/downonspot/default.nix
new file mode 100644
index 0000000000..4764fc4d5e
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/downonspot/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, makeWrapper
+, alsa-lib
+, lame
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "downonspot";
+ version = "unstable-2021-10-13";
+
+ src = fetchFromGitHub {
+ owner = "oSumAtrIX";
+ repo = "DownOnSpot";
+ rev = "9d78ea2acad4dfe653a895a1547ad0abe7c5b47a";
+ sha256 = "03g99yx9sldcg3i6hvpdxyk70f09f8kfj3kh283vl09b1a2c477w";
+ };
+
+ cargoSha256 = "0k200p6wgwb60ax1r8mjn3aq08zxpkqbfqpi3b25zi3xf83my44d";
+
+ # fixes: error: the option `Z` is only accepted on the nightly compiler
+ RUSTC_BOOTSTRAP = 1;
+
+ nativeBuildInputs = [
+ pkg-config
+ makeWrapper
+ ];
+
+ buildInputs = [
+ openssl
+ alsa-lib
+ lame
+ ];
+
+ meta = with lib; {
+ description = "A Spotify downloader written in rust";
+ homepage = "https://github.com/oSumAtrIX/DownOnSpot";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ onny ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dozenal/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dozenal/default.nix
index ae5dd170eb..c0bedb728a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dozenal/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dozenal/default.nix
@@ -21,6 +21,14 @@ stdenv.mkDerivation rec {
patches = [ ./lua-header.patch ];
preBuild = "cd dozenal";
buildInputs = [ ncurses hdate lua5_2 ];
+
+ # Parallel builds fail due to no dependencies between subdirs.
+ # As a result some subdirs are atempted to build twice:
+ # ../dec/dec.c:39:10: fatal error: conv.h: No such file or directory
+ # Let's disable parallelism until it's fixed upstream:
+ # https://gitlab.com/dgoodmaniii/dozenal/-/issues/8
+ enableParallelBuilding = false;
+
# I remove gdozdc, as I didn't figure all it's dependency yet.
postInstall = "rm $out/bin/gdozdc";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dunst/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dunst/default.nix
index 67753b6e37..4f0f98ba3a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dunst/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dunst/default.nix
@@ -1,29 +1,22 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, fetchpatch
+{ stdenv, lib, fetchFromGitHub, makeWrapper
, pkg-config, which, perl, libXrandr
, cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
, wayland, wayland-protocols
, libXinerama, libnotify, pango, xorgproto, librsvg
+, testVersion, dunst
}:
stdenv.mkDerivation rec {
pname = "dunst";
- version = "1.7.0";
+ version = "1.7.2";
src = fetchFromGitHub {
owner = "dunst-project";
repo = "dunst";
rev = "v${version}";
- sha256 = "sha256-BWbvGetXXCXbfPRY+u6gEfzBmX8PLSnI6a5vfCByiC0=";
+ sha256 = "LGLo+K0FxQQ3hrPYwvjApcOnNliZ5j0T6yEtcxZAFOU=";
};
- 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 = [
@@ -47,6 +40,8 @@ stdenv.mkDerivation rec {
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
'';
+ passthru.tests.version = testVersion { package = dunst; };
+
meta = with lib; {
description = "Lightweight and customizable notification daemon";
homepage = "https://dunst-project.org/";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/electrum/ltc.nix b/third_party/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
index bd015afdc5..a070bc321b 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
@@ -1,63 +1,180 @@
{ lib
+, stdenv
, fetchurl
-, python3Packages
+, fetchFromGitHub
, wrapQtAppsHook
+, python3
+, zbar
+, secp256k1
+, enableQt ? true
+# for updater.nix
+, writeScript
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
}:
-python3Packages.buildPythonApplication rec {
+let
+ version = "4.0.9.3";
+
+ libsecp256k1_name =
+ if stdenv.isLinux then "libsecp256k1.so.0"
+ else if stdenv.isDarwin then "libsecp256k1.0.dylib"
+ else "libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+ libzbar_name =
+ if stdenv.isLinux then "libzbar.so.0"
+ else "libzbar${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+ # Not provided in official source releases, which are what upstream signs.
+ tests = fetchFromGitHub {
+ owner = "pooler";
+ repo = "electrum-ltc";
+ rev = version;
+ sha256 = "sha256-oZjQnrnj8nCaQjrIz8bWNt6Ib8Wu2ZMXHEPfCCy2fjk=";
+
+ extraPostFetch = ''
+ mv $out ./all
+ mv ./all/electrum_ltc/tests $out
+ '';
+ };
+
+ py = python3.override {
+ packageOverrides = self: super: {
+
+ aiorpcx = super.aiorpcx.overridePythonAttrs (oldAttrs: rec {
+ version = "0.18.7";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "1rswrspv27x33xa5bnhrkjqzhv0sknv5kd7pl1vidw9d2z4rx2l0";
+ };
+ });
+ };
+ };
+
+in
+
+python3.pkgs.buildPythonApplication {
pname = "electrum-ltc";
- version = "3.3.8.1";
+ inherit version;
src = fetchurl {
url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";
- sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7";
+ sha256 = "sha256-+oox0BGqkvj0OGOKJF8tUoKdsZFeffNb6rTF8E8mo08=";
};
- nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
+ postUnpack = ''
+ # can't symlink, tests get confused
+ cp -ar ${tests} $sourceRoot/electrum_ltc/tests
+ '';
- propagatedBuildInputs = with python3Packages; [
- pyaes
- ecdsa
- pbkdf2
- requests
- qrcode
- py_scrypt
- pyqt5
- protobuf
+ prePatch = ''
+ substituteInPlace contrib/requirements/requirements.txt \
+ --replace "dnspython>=2.0,<2.1" "dnspython>=2.0"
+ '';
+
+ nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = with py.pkgs; [
+ aiohttp
+ aiohttp-socks
+ aiorpcx
+ attrs
+ bitstring
+ cryptography
dnspython
jsonrpclib-pelix
+ matplotlib
+ pbkdf2
+ protobuf
+ py_scrypt
pysocks
- trezor
+ qrcode
+ requests
+ tlslite-ng
+ # plugins
btchip
+ ckcc-protocol
+ keepkey
+ trezor
+ ] ++ lib.optionals enableQt [
+ pyqt5
+ qdarkstyle
];
preBuild = ''
sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
- pyrcc5 icons.qrc -o gui/qt/icons_rc.py
- # Recording the creation timestamps introduces indeterminism to the build
- sed -i '/Created: .*/d' gui/qt/icons_rc.py
+ substituteInPlace ./electrum_ltc/ecc_fast.py \
+ --replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
+ '' + (if enableQt then ''
+ substituteInPlace ./electrum_ltc/qrscanner.py \
+ --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
+ '' else ''
+ sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
+ '');
+
+ postInstall = lib.optionalString stdenv.isLinux ''
+ # Despite setting usr_share above, these files are installed under
+ # $out/nix ...
+ mv $out/${python3.sitePackages}/nix/store"/"*/share $out
+ rm -rf $out/${python3.sitePackages}/nix
+
+ substituteInPlace $out/share/applications/electrum-ltc.desktop \
+ --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum-ltc %u"' \
+ "Exec=$out/bin/electrum-ltc %u" \
+ --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum-ltc --testnet %u"' \
+ "Exec=$out/bin/electrum-ltc --testnet %u"
+
'';
- preFixup = ''
- makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ postFixup = lib.optionalString enableQt ''
+ wrapQtApp $out/bin/electrum-ltc
'';
- checkPhase = ''
+ checkInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
+
+ pytestFlagsArray = [ "electrum_ltc/tests" ];
+
+ disabledTests = [
+ "test_loop" # test tries to bind 127.0.0.1 causing permission error
+ "test_is_ip_address" # fails spuriously https://github.com/spesmilo/electrum/issues/7307
+ ];
+
+ postCheck = ''
$out/bin/electrum-ltc help >/dev/null
'';
+ passthru.updateScript = import ./update.nix {
+ inherit lib;
+ inherit
+ writeScript
+ common-updater-scripts
+ bash
+ coreutils
+ curl
+ gnupg
+ gnugrep
+ gnused
+ nix
+ ;
+ };
+
meta = with lib; {
- description = "Litecoin thin client";
+ description = "Lightweight Litecoin Client";
longDescription = ''
- Electrum-LTC is a simple, but powerful Litecoin wallet. A twelve-word
- security passphrase (or “seed”) leaves intruders stranded and your peace
- of mind intact. Keep it on paper, or in your head... and never worry
- about losing your litecoins to theft or hardware failure. No waiting, no
- lengthy blockchain downloads and no syncing to the network.
+ Electrum-LTC is a simple, but powerful Litecoin wallet. A unique secret
+ phrase (or “seed”) leaves intruders stranded and your peace of mind
+ intact. Keep it on paper, or in your head... and never worry about losing
+ your litecoins to theft or hardware failure.
'';
homepage = "https://electrum-ltc.org/";
license = licenses.mit;
- platforms = platforms.linux;
- maintainers = with maintainers; [ ];
+ platforms = platforms.all;
+ maintainers = with maintainers; [ lourkeur ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/far2l/default.nix b/third_party/nixpkgs/pkgs/applications/misc/far2l/default.nix
index 87eaed9753..3e74d04c51 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/far2l/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/far2l/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash
, xdg-utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick
-, libuchardet, spdlog, xercesc, fmt, openssl, libssh, samba, neon, libnfs, libarchive }:
+, libuchardet, spdlog, xercesc, openssl, libssh, samba, neon, libnfs, libarchive }:
stdenv.mkDerivation rec {
pname = "far2l";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config m4 makeWrapper imagemagick ];
- buildInputs = [ wxGTK30 glib pcre libuchardet spdlog xercesc fmt ] # base requirements of the build
+ buildInputs = [ wxGTK30 glib pcre libuchardet spdlog xercesc ] # base requirements of the build
++ [ openssl libssh samba neon libnfs libarchive ]; # optional feature packages, like protocol support for Network panel, or archive formats
#++ lib.optional stdenv.isDarwin Cocoa # Mac support -- disabled, see "meta.broken" below
diff --git a/third_party/nixpkgs/pkgs/applications/misc/fbreader/default.nix b/third_party/nixpkgs/pkgs/applications/misc/fbreader/default.nix
index c2347d5fbb..c684d273bc 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/fbreader/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/fbreader/default.nix
@@ -1,9 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config
-, bzip2, curl, expat, fribidi, libunibreak, sqlite, zlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, bzip2
+, curl
+, expat
+, fribidi
+, libunibreak
+, sqlite
+, zlib
, uiTarget ? if !stdenv.isDarwin then "desktop" else "macosx"
, uiType ? if !stdenv.isDarwin then "qt4" else "cocoa"
-, qt4, gtk2
-, AppKit, Cocoa
+, qt4
+, gtk2
+, AppKit
+, Cocoa
}:
with lib;
@@ -16,7 +28,8 @@ assert uiTarget == "macosx" -> uiType == "cocoa";
# which is way to old and no longer in nixpkgs.
stdenv.mkDerivation {
- name = "fbreader-${uiType}-0.99.6";
+ pname = "fbreader-${uiType}";
+ version = "0.99.6";
src = fetchFromGitHub {
owner = "geometer";
@@ -53,7 +66,13 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
- bzip2 curl expat fribidi libunibreak sqlite zlib
+ bzip2
+ curl
+ expat
+ fribidi
+ libunibreak
+ sqlite
+ zlib
]
++ optional (uiType == "qt4") qt4
++ optional (uiType == "gtk") gtk2
@@ -68,7 +87,7 @@ stdenv.mkDerivation {
homepage = "http://www.fbreader.org/";
license = licenses.gpl3;
broken = stdenv.isDarwin # untested, might work
- || uiType == "gtk"; # builds, but the result is unusable, hangs a lot
+ || uiType == "gtk"; # builds, but the result is unusable, hangs a lot
platforms = platforms.unix;
maintainers = [ maintainers.coroa ];
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/fehlstart/default.nix b/third_party/nixpkgs/pkgs/applications/misc/fehlstart/default.nix
index 992b627808..69050ca661 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/fehlstart/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/fehlstart/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, pkg-config, gtk2, keybinder, fetchFromGitLab }:
stdenv.mkDerivation {
- name = "fehlstart-9f4342d7";
+ pname = "fehlstart";
+ version = "unstable-2016-05-23";
src = fetchFromGitLab {
owner = "fehlstart";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/flavours/default.nix b/third_party/nixpkgs/pkgs/applications/misc/flavours/default.nix
index 94fc91dfdb..5eafa03907 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/flavours/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/fme/default.nix b/third_party/nixpkgs/pkgs/applications/misc/fme/default.nix
index 6f6a143ae8..03a9f875a7 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/fme/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/fme/default.nix
@@ -1,6 +1,6 @@
{ lib
, stdenv
-, fetchurl
+, fetchFromGitHub
, autoconf
, automake
, bc
@@ -17,9 +17,11 @@ stdenv.mkDerivation rec {
pname = "fme";
version = "1.1.3";
- src = fetchurl {
- url = "https://github.com/rdehouss/fme/archive/v${version}.tar.gz";
- hash = "sha256-0cgaajjA+q0ClDrWXW0DFL0gXG3oQWaaLv5D5MUD5j0=";
+ src = fetchFromGitHub {
+ owner = "rdehouss";
+ repo = "fme";
+ rev = "v${version}";
+ sha256 = "sha256-P67OmExBdWM6NZhDyYceVJOZiy8RC+njk/QvgQcWZeQ=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/formatter/default.nix b/third_party/nixpkgs/pkgs/applications/misc/formatter/default.nix
index 4532b766f4..440022da6e 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/formatter/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/fspy/default.nix b/third_party/nixpkgs/pkgs/applications/misc/fspy/default.nix
new file mode 100644
index 0000000000..4baf053d71
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/fspy/default.nix
@@ -0,0 +1,27 @@
+{ appimageTools, lib, fetchurl }:
+let
+ pname = "fspy";
+ version = "1.0.3";
+ name = "${pname}-v${version}";
+
+ src = fetchurl {
+ url = "https://github.com/stuffmatic/fSpy/releases/download/v${version}/${pname}-${version}-x86_64.AppImage";
+ sha256 = "sha256-L+qsSExuEkzZkjnV/J6rrZ3BXqWQd+IfsN6a3kvQF3A=";
+ };
+
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ '';
+
+ meta = with lib; {
+ description = "A cross platform app for quick and easy still image camera matching";
+ license = licenses.gpl3;
+ homepage = "https://fspy.io/";
+ maintainers = with maintainers; [ polygon ];
+ platforms = platforms.linux;
+ mainProgram = "fspy";
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/fuzzel/default.nix b/third_party/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
index e099414c0c..dbc66458a3 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
@@ -15,7 +15,7 @@
, enableCairo ? true
, withPNGBackend ? "libpng"
, withSVGBackend ? "librsvg"
-# Optional dependencies
+ # Optional dependencies
, cairo
, librsvg
, libpng
@@ -23,14 +23,14 @@
stdenv.mkDerivation rec {
pname = "fuzzel";
- version = "1.6.4";
+ version = "1.6.5";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fuzzel";
rev = version;
- sha256 = "sha256-wl3dO6EwLXWf0XtAIml1NlNRIvpIQJuq1pxLmo/pAUE=";
+ sha256 = "SWt46YSXI6Dsv0ed3H4sN8kbEzQDL4U6jxFSbMyspJ0=";
};
nativeBuildInputs = [
@@ -49,8 +49,8 @@ stdenv.mkDerivation rec {
tllist
fcft
] ++ lib.optional enableCairo cairo
- ++ lib.optional (withPNGBackend == "libpng") libpng
- ++ lib.optional (withSVGBackend == "librsvg") librsvg;
+ ++ lib.optional (withPNGBackend == "libpng") libpng
+ ++ lib.optional (withSVGBackend == "librsvg") librsvg;
mesonBuildType = "release";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
index 656a5f3bea..43ce94d5bf 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonApplication, fetchPypi, requests, pytestCheckHook }:
+{ lib, buildPythonApplication, fetchPypi, requests, yt-dlp, pytestCheckHook }:
buildPythonApplication rec {
pname = "gallery_dl";
- version = "1.19.1";
+ version = "1.19.3";
src = fetchPypi {
inherit pname version;
- sha256 = "ea1a7bf908507a87edffde6d6be93b8859ab0832ca788b61690a13aa5dd52216";
+ sha256 = "db3973a17f1074e4f4cb99b635b94c1926bdd549263e1df909498f3c6aa93484";
};
- propagatedBuildInputs = [ requests ];
+ propagatedBuildInputs = [ requests yt-dlp ];
checkInputs = [ pytestCheckHook ];
pytestFlagsArray = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix b/third_party/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
index c2c3a69140..c401b27225 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
@@ -1,26 +1,39 @@
-{ lib, stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }:
-stdenv.mkDerivation {
- name = "garmin-plugin-0.3.26";
- src = fetchurl {
- url = "https://github.com/adiesner/GarminPlugin/archive/V0.3.26.tar.gz";
- sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0";
+{ lib, stdenv, fetchFromGitHub, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "garmin-plugin";
+ version = "0.3.26";
+
+ src = fetchFromGitHub {
+ owner = "adiesner";
+ repo = "GarminPlugin";
+ rev = "V${version}";
+ sha256 = "sha256-l0WAbEsQl1dCADf5gTepYjsA1rQCJMLcrTxRR4PfUus=";
};
- sourceRoot = "GarminPlugin-0.3.26/src";
+
+ preConfigure = ''
+ cd src
+ '';
+
nativeBuildInputs = [ pkg-config ];
+
buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ];
+
configureFlags = [
"--with-libgcrypt-prefix=${libgcrypt.dev}"
"--with-garmintools-incdir=${garmintools}/include"
"--with-garmintools-libdir=${garmintools}/lib"
];
+
installPhase = ''
mkdir -p $out/lib/mozilla/plugins
cp npGarminPlugin.so $out/lib/mozilla/plugins
'';
- meta = {
- homepage = "http://www.andreas-diesner.de/garminplugin";
- license = lib.licenses.gpl3;
- maintainers = [ ];
- platforms = lib.platforms.linux;
+
+ meta = with lib; {
+ homepage = "https://adiesner.github.io/GarminPlugin/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gitit/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gitit/default.nix
index a4ffd3bf88..365b3f6acd 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gitit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gitit/default.nix
@@ -14,13 +14,13 @@ let
plugins =
if pluginSupport
then plain
- else haskell.lib.disableCabalFlag plain "plugins";
- static = haskell.lib.justStaticExecutables plugins;
+ else haskell.lib.compose.disableCabalFlag "plugins" plain;
+ static = haskell.lib.compose.justStaticExecutables plugins;
in
- (haskell.lib.overrideCabal static (drv: {
+ (haskell.lib.compose.overrideCabal (drv: {
buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
- })).overrideAttrs (drv: {
+ }) static).overrideAttrs (drv: {
# These libraries are still referenced, because they generate
# a `Paths_*` module for figuring out their version.
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gkrellm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
index aaaab255c7..0a62ce4ea5 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
@@ -1,20 +1,32 @@
-{ lib, fetchurl, stdenv, gettext, pkg-config, glib, gtk2, libX11, libSM, libICE, which
-, IOKit, copyDesktopItems, makeDesktopItem, wrapGAppsHook
+{ lib
+, fetchurl
+, stdenv
+, gettext
+, pkg-config
+, glib
+, gtk2
+, libX11
+, libSM
+, libICE
+, which
+, IOKit
+, copyDesktopItems
+, makeDesktopItem
+, wrapGAppsHook
}:
-with lib;
-
stdenv.mkDerivation rec {
- name = "gkrellm-2.3.11";
+ pname = "gkrellm";
+ version = "2.3.11";
src = fetchurl {
- url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2";
+ url = "http://gkrellm.srcbox.net/releases/gkrellm-${version}.tar.bz2";
sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y";
};
nativeBuildInputs = [ copyDesktopItems pkg-config which wrapGAppsHook ];
- buildInputs = [gettext glib gtk2 libX11 libSM libICE]
- ++ optionals stdenv.isDarwin [ IOKit ];
+ buildInputs = [ gettext glib gtk2 libX11 libSM libICE ]
+ ++ lib.optionals stdenv.isDarwin [ IOKit ];
hardeningDisable = [ "format" ];
@@ -48,7 +60,7 @@ stdenv.mkDerivation rec {
})
];
- meta = {
+ meta = with lib; {
description = "Themeable process stack of system monitors";
longDescription = ''
GKrellM is a single process stack of system monitors which
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
index b35319c386..04526ec346 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/goldendict/default.nix b/third_party/nixpkgs/pkgs/applications/misc/goldendict/default.nix
index 03668e5861..f0eed5c1e2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/goldendict/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix b/third_party/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix
index e7cfe04da6..950cb236ec 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/gpa/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gpa/default.nix
index af204b2350..0d567dd79a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gpa/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gpa/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, gpgme, libgpg-error, libassuan }:
stdenv.mkDerivation rec {
- name = "gpa-0.10.0";
+ pname = "gpa";
+ version = "0.10.0";
src = fetchurl {
- url = "mirror://gnupg/gpa/${name}.tar.bz2";
+ url = "mirror://gnupg/gpa/gpa-${version}.tar.bz2";
sha256 = "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gpxlab/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
index c8d6eb3b84..8d2b95ea4f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
index f008ea439e..84651b7812 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "gpxsee";
- version = "9.6";
+ version = "9.12";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
- sha256 = "sha256-Yj8lR8zgIV+gshea7rzLbMF84n1nyN3DytiIkr3B274=";
+ sha256 = "sha256-hIDphwmS4UNSTvE+Icupipo6AmT2fiPdaufT/I3EeJ4=";
};
patches = (substituteAll {
@@ -23,10 +23,9 @@ mkDerivation rec {
lrelease gpxsee.pro
'';
- postInstall = with stdenv; lib.optionalString isDarwin ''
+ postInstall = lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv GPXSee.app $out/Applications
- wrapQtApp $out/Applications/GPXSee.app/Contents/MacOS/GPXSee
'';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/grip/default.nix b/third_party/nixpkgs/pkgs/applications/misc/grip/default.nix
index 557cd45c42..6a6666763c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/grip/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/grip/default.nix
@@ -15,10 +15,11 @@
}:
stdenv.mkDerivation rec {
- name = "grip-4.2.2";
+ pname = "grip";
+ version = "4.2.2";
src = fetchurl {
- url = "mirror://sourceforge/grip/${name}.tar.gz";
+ url = "mirror://sourceforge/grip/grip-${version}.tar.gz";
sha256 = "sha256-nXtGgJeNYM8lyllNi9UdmsnVcHOCXfryWmKGZ9QFTHE=";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gv/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gv/default.nix
index aa07058dc8..851f2d80c9 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gv/default.nix
@@ -1,13 +1,11 @@
{ lib, stdenv, fetchurl, Xaw3d, ghostscriptX, perl, pkg-config, libiconv }:
-let
- name = "gv-3.7.4";
-in
-stdenv.mkDerivation {
- inherit name;
+stdenv.mkDerivation rec {
+ pname = "gv";
+ version = "3.7.4";
src = fetchurl {
- url = "mirror://gnu/gv/${name}.tar.gz";
+ url = "mirror://gnu/gv/gv-${version}.tar.gz";
sha256 = "0q8s43z14vxm41pfa8s5h9kyyzk1fkwjhkiwbf2x70alm6rv6qi1";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/gxkb/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gxkb/default.nix
index 16268bc76c..e496d78645 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gxkb/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/gxneur/default.nix b/third_party/nixpkgs/pkgs/applications/misc/gxneur/default.nix
index 9e8c5ddaef..7c32cec721 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/gxneur/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/gxneur/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, intltool, gtk2, xorg, glib, xneur, libglade, GConf, libappindicator-gtk2, pcre }:
-stdenv.mkDerivation {
- name = "gxneur-0.20.0";
+stdenv.mkDerivation rec {
+ pname = "gxneur";
+ version = "0.20.0";
src = fetchurl {
- url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/gxneur_0.20.0.orig.tar.gz";
+ url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/${version}/gxneur_${version}.orig.tar.gz";
sha256 = "0avmhdcj0hpr55fc0iih8fjykmdhn34c8mwdnqvl8jh4nhxxchxr";
};
@@ -13,8 +14,17 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config intltool ];
buildInputs = [
- xorg.libX11 glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur
- libglade GConf pcre libappindicator-gtk2
+ xorg.libX11
+ glib
+ gtk2
+ xorg.libXpm
+ xorg.libXt
+ xorg.libXext
+ xneur
+ libglade
+ GConf
+ pcre
+ libappindicator-gtk2
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/haxor-news/default.nix b/third_party/nixpkgs/pkgs/applications/misc/haxor-news/default.nix
index f5a723f590..43c2eb2422 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/haxor-news/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/heimer/default.nix b/third_party/nixpkgs/pkgs/applications/misc/heimer/default.nix
index d3d369368a..0aff0c6bbd 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/heimer/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/hstr/default.nix b/third_party/nixpkgs/pkgs/applications/misc/hstr/default.nix
index 3cda6d0a31..888c789251 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/hstr/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/hstr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, readline, ncurses
+{ lib, stdenv, fetchFromGitHub, fetchpatch, readline, ncurses
, autoreconfHook, pkg-config, gettext }:
stdenv.mkDerivation rec {
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
sha256 = "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y";
};
+ patches = [
+ # pull pending upstream inclusion fix for ncurses-6.3:
+ # https://github.com/dvorka/hstr/pull/435
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/dvorka/hstr/commit/7fbd852c464ae3cfcd2f4fed9c62a21fb84c5439.patch";
+ sha256 = "15f0ja4bsh4jnchcg0ray8ijpdraag7k07ss87a6ymfs1rg6i0jr";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ readline ncurses gettext ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/hubstaff/default.nix b/third_party/nixpkgs/pkgs/applications/misc/hubstaff/default.nix
index 797dfe504c..ad40f6c838 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/hubstaff/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/hubstaff/default.nix
@@ -4,9 +4,9 @@
, curl, writeShellScript, common-updater-scripts }:
let
- url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.2-328c666b/Hubstaff-1.6.2-328c666b.sh";
- version = "1.6.2-328c666b";
- sha256 = "0fmlblw19qk9s9xsl0dl705cnns825wrlc7navii4bvbsn6ycl5v";
+ url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.3-b75e2da6/Hubstaff-1.6.3-b75e2da6.sh";
+ version = "1.6.3-b75e2da6";
+ sha256 = "0p77182p5rqbng8j6ndijq5br9hiwcmblpw8j5nc26m5w45jfspw";
rpath = lib.makeLibraryPath
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
diff --git a/third_party/nixpkgs/pkgs/applications/misc/hugo/default.nix b/third_party/nixpkgs/pkgs/applications/misc/hugo/default.nix
index 2153553c54..67bbd2b947 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/hugo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/hugo/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "hugo";
- version = "0.88.1";
+ version = "0.89.4";
src = fetchFromGitHub {
owner = "gohugoio";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-yuFFp/tgyziR4SXul2PlMhKmRl7C7OSrW8/kCCUpzI0=";
+ sha256 = "sha256-yXOe+SCMvr3xi0kd2AuWm1CzzBuODCED6p7kaWGXvpM=";
};
- vendorSha256 = "sha256-VX+oIz5wAyEQ4nky3kXmJZbMF0MvfAKdEAMLnS0hXc8=";
+ vendorSha256 = "sha256-NqWi9n8H5IeMmkBwTX3HN1RLLtWA5sM1iy1L2BZCH7M=";
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/hunter/default.nix b/third_party/nixpkgs/pkgs/applications/misc/hunter/default.nix
deleted file mode 100644
index 6c0c9b2955..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
index 8b72647574..af7e9888c1 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perlPackages, gettext, makeWrapper, ImageMagick, which, highlight
+{ lib, stdenv, fetchurl, fetchpatch, perlPackages, gettext, makeWrapper, ImageMagick, which, highlight
, gitSupport ? false, git
, docutilsSupport ? false, python, docutils
, monotoneSupport ? false, monotone
@@ -23,7 +23,10 @@ stdenv.mkDerivation rec {
TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
RpcXML XMLSimple ImageMagick YAML YAMLLibYAML HTMLTree AuthenPassphrase
NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ])
- ++ lib.optionals docutilsSupport [python docutils]
+ ++ lib.optionals docutilsSupport [
+ (python.withPackages (pp: with pp; [ pygments ]))
+ docutils
+ ]
++ lib.optionals gitSupport [git]
++ lib.optionals monotoneSupport [monotone]
++ lib.optionals bazaarSupport [breezy]
@@ -31,9 +34,17 @@ stdenv.mkDerivation rec {
++ lib.optionals subversionSupport [subversion]
++ lib.optionals mercurialSupport [mercurial];
- # A few markdown tests fail, but this is expected when using Text::Markdown
- # instead of Text::Markdown::Discount.
- patches = [ ./remove-markdown-tests.patch ];
+ patches = [
+ # A few markdown tests fail, but this is expected when using Text::Markdown
+ # instead of Text::Markdown::Discount.
+ ./remove-markdown-tests.patch
+
+ (fetchpatch {
+ name = "Catch-up-to-highlight-4.0-API-change";
+ url = "http://source.ikiwiki.branchable.com/?p=source.git;a=patch;h=9ea3f9dfe7c0341f4e002b48728b8139293e19d0";
+ sha256 = "16s4wvsfclx0a5cm2awr69dvw2vsi8lpm0d7kyl5w0kjlmzfc7h9";
+ })
+ ];
postPatch = ''
sed -i s@/usr/bin/perl@${perlPackages.perl}/bin/perl@ pm_filter mdwn2man
@@ -42,6 +53,9 @@ stdenv.mkDerivation rec {
# State the gcc dependency, and make the cgi use our wrapper
sed -i -e 's@$0@"'$out/bin/ikiwiki'"@' \
-e "s@'cc'@'${stdenv.cc}/bin/gcc'@" IkiWiki/Wrapper.pm
+ # Without patched plugin shebangs, some tests like t/rst.t fail
+ # (with docutilsSupport enabled)
+ patchShebangs plugins/*
'';
configurePhase = "perl Makefile.PL PREFIX=$out";
@@ -74,5 +88,6 @@ stdenv.mkDerivation rec {
homepage = "http://ikiwiki.info/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
+ maintainers = [ maintainers.wentasah ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/index-fm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/index-fm/default.nix
index b4f6b0ca4b..3165b3d34d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/index-fm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/index-fm/default.nix
@@ -17,14 +17,14 @@
mkDerivation rec {
pname = "index";
- version = "2.0.0";
+ version = "2.1.0";
src = fetchFromGitLab {
domain = "invent.kde.org";
owner = "maui";
repo = "index-fm";
rev = "v${version}";
- sha256 = "sha256-aY8JBCIh6VyCDOGQIMWhO6asGMo6I6ZTgzpDnnDy9eo=";
+ sha256 = "sha256-Os/5igKGYBeY/FxO6I+7mpFohuk3yHGLd7vE2GewFpU=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/jigdo/default.nix b/third_party/nixpkgs/pkgs/applications/misc/jigdo/default.nix
index b4573a8163..9e07193cdb 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/jigdo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/jigdo/default.nix
@@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, db, gtk2, bzip2 }:
-stdenv.mkDerivation {
- name = "jigdo-0.7.3";
+stdenv.mkDerivation rec {
+ pname = "jigdo";
+ version = "0.7.3";
- # Debian sources
src = fetchurl {
- url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3.orig.tar.gz";
+ url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_${version}.orig.tar.gz";
sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv";
};
@@ -21,10 +21,11 @@ stdenv.mkDerivation {
configureFlags = [ "--without-libdb" ];
- meta = {
+ meta = with lib; {
description = "Download utility that can fetch files from several sources simultaneously";
- homepage = "http://atterer.net/jigdo/";
- license = lib.licenses.gpl2;
- platforms = lib.platforms.unix;
+ homepage = "http://atterer.org/jigdo/";
+ license = licenses.gpl2Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
index 4701fe0b54..9d3b751fcd 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
let
pname = "joplin-desktop";
- version = "2.4.6";
+ version = "2.5.12";
name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
sha256 = {
- x86_64-linux = "sha256-BMpRWtfx5fXEJy3hp/+q86sd+Yd/QPJbSqi2nWE2dcQ=";
- x86_64-darwin = "sha256-4UNKdoGtQSN5/m+xQZrY77ZE5A7jvpDOUCRvwrS5e6g=";
+ x86_64-linux = "sha256-/S/paqMKVerSQFjA4wQ9fLV0WaqKm4CzQfy+0OdH7c8=";
+ x86_64-darwin = "sha256-5eKTfZRpW7IYwFt8TeJiytrwEpiHBgN4k9kth+Lh0Bo=";
}.${system} or throwSystem;
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/joshuto/default.nix b/third_party/nixpkgs/pkgs/applications/misc/joshuto/default.nix
index 5497d37ef0..7d4ec87b9f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/joshuto/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/joshuto/default.nix
@@ -1,20 +1,17 @@
-{ fetchFromGitHub, lib, rustPlatform, stdenv, SystemConfiguration }:
+{ lib, rustPlatform, fetchFromGitHub, stdenv, SystemConfiguration }:
rustPlatform.buildRustPackage rec {
pname = "joshuto";
- version = "0.9.1";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = pname;
rev = version;
- sha256 = "sha256-+qKOvFoEF/gZL4ijL8lIRWE9ZWJM2eBlk29Lk46jAfQ=";
+ sha256 = "sha256-9TGHSGYCzU6uAIO4zZ/6+B4oVPE6SD9Phl4dShylW5o=";
};
- # upstream includes an outdated Cargo.lock that stops cargo from compiling
- cargoPatches = [ ./fix-cargo-lock.patch ];
-
- cargoSha256 = "sha256-JlekxU9pMkHNsIcH3+7b2I6MYUlxRqNX+0wwyVrQMAE=";
+ cargoSha256 = "sha256-g8YYOk2RW4GPdkWlvAxd5KFdV4S1l5yKEzNm9OAc8RI=";
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/joshuto/fix-cargo-lock.patch b/third_party/nixpkgs/pkgs/applications/misc/joshuto/fix-cargo-lock.patch
deleted file mode 100644
index 023c824add..0000000000
--- a/third_party/nixpkgs/pkgs/applications/misc/joshuto/fix-cargo-lock.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -512,7 +512,7 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
- [[package]]
- name = "joshuto"
--version = "0.9.0"
-+version = "0.9.1"
- dependencies = [
- "alphanumeric-sort",
- "chrono",
diff --git a/third_party/nixpkgs/pkgs/applications/misc/josm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/josm/default.nix
index 93e08b6607..fa93e72571 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/josm/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/jrnl/default.nix b/third_party/nixpkgs/pkgs/applications/misc/jrnl/default.nix
index 967d4931c3..494329ecab 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/jrnl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/jrnl/default.nix
@@ -16,6 +16,11 @@ python3.pkgs.buildPythonApplication rec {
sha256 = "sha256-+kPr7ndY6u1HMw6m0UZJ5jxVIPNjlTfQt7OYEdZkHBE=";
};
+ postPatch = ''
+ substituteInPlace pyproject.toml \
+ --replace 'tzlocal = ">2.0, <3.0"' 'tzlocal = ">2.0, !=3.0"'
+ '';
+
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/charactercopy/default.nix b/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/charactercopy/default.nix
new file mode 100644
index 0000000000..dbe203566f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/charactercopy/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, buildEnv, fetchurl, mono }:
+
+let
+ version = "1.0.0";
+
+ drv = stdenv.mkDerivation {
+ pname = "keepass-charactercopy";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/SketchingDev/Character-Copy/releases/download/v${version}/CharacterCopy.plgx";
+ sha256 = "f8a81a60cd1aacc04c92a242479a8e4210452add019c52ebfbb1810b58d8800a";
+ };
+
+ dontUnpack = true;
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $src $out/lib/dotnet/keepass/
+ '';
+
+ meta = with lib; {
+ description = "Enables KeePass to copy individual characters by index";
+ longDescription = ''
+ Character Copy is a lightweight KeePass plugin that integrates into KeePass' entry menu and
+ allows users to securely copy individual characters from
+ an entry's protected string fields, such as the password field
+ '';
+ homepage = "https://github.com/SketchingDev/Character-Copy";
+ platforms = [
+ "aarch64-linux"
+ "i686-linux"
+ "x86_64-linux"
+ ];
+ # licensing info was found in source files https://github.com/SketchingDev/Character-Copy/search?q=license
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ nazarewk ];
+ };
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix b/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix
new file mode 100644
index 0000000000..52cd719ca5
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, buildEnv, fetchurl, mono }:
+
+let
+ version = "0.108.0";
+
+ drv = stdenv.mkDerivation {
+ pname = "keepass-keetraytotp";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/KeeTrayTOTP/KeeTrayTOTP/releases/download/v${version}/KeeTrayTOTP.plgx";
+ sha256 = "4f7251a9bbb79cad04aee96d1809c6b36d43285a9f3834fef5330fc97ae8bc09";
+ };
+
+ dontUnpack = true;
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $src $out/lib/dotnet/keepass/
+ '';
+
+ meta = with lib; {
+ description = "Augments KeePass with TOTP user interface";
+ longDescription = ''
+ This KeePass2 plugin adds advanced support for generating Time-based One-Time Passwords (TOTPs)
+ from the KeePass tray icon. It also provides a column in the main entry list to display and/or use TOTPs.
+ TOTPs can also be sent by auto-type. The plugin is compatible with Google, Dropbox, Steam, and many more services.
+ '';
+ homepage = "https://github.com/KeeTrayTOTP/KeeTrayTOTP";
+ platforms = [
+ "aarch64-linux"
+ "i686-linux"
+ "x86_64-linux"
+ ];
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ nazarewk ];
+ };
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix b/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix
new file mode 100644
index 0000000000..8e7ee2a499
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, buildEnv, fetchurl, mono }:
+
+let
+ version = "1.0.4";
+
+ drv = stdenv.mkDerivation {
+ pname = "keepass-qrcodeview";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/JanisEst/KeePassQRCodeView/releases/download/v${version}/KeePassQRCodeView.plgx";
+ sha256 = "e13c9f02bb0d79b479ca0e92490b822b5b88f49bb18ba2954d3bbe0808f46e6d";
+ };
+
+ dontUnpack = true;
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $src $out/lib/dotnet/keepass/
+ '';
+
+ meta = with lib; {
+ description = "Enables KeePass to display data as QR code images";
+ longDescription = ''
+ KeePassQRCodeView is a plugin for KeePass 2.x which shows QR codes for entry fields.
+ These codes can be scanned to copy the encoded data to the scanner (smartphone, ...)
+ '';
+ homepage = "https://github.com/JanisEst/KeePassQRCodeView";
+ platforms = [
+ "aarch64-linux"
+ "i686-linux"
+ "x86_64-linux"
+ ];
+ license = licenses.mit;
+ maintainers = with maintainers; [ nazarewk ];
+ };
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/third_party/nixpkgs/pkgs/applications/misc/keepass/default.nix b/third_party/nixpkgs/pkgs/applications/misc/keepass/default.nix
index f2846de37d..7e5665bafd 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/keepass/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/keepass/default.nix
@@ -3,11 +3,11 @@
with builtins; buildDotnetPackage rec {
baseName = "keepass";
- version = "2.48.1";
+ version = "2.49";
src = fetchurl {
url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
- sha256 = "sha256-HkAgKPvf8TUgUlgsGWVgjuYJaRPGi8obOFQEtmzDtLE=";
+ sha256 = "sha256-1hg4bRuQSG+UzEQGeQcSURTmTxt5ITGQqfg0IS7RWt0=";
};
sourceRoot = ".";
@@ -76,7 +76,11 @@ with builtins; buildDotnetPackage rec {
];
};
- outputFiles = [ "Build/KeePass/Release/*" "Build/KeePassLib/Release/*" ];
+ outputFiles = [
+ "Build/KeePass/Release/*"
+ "Build/KeePassLib/Release/*"
+ "Ext/KeePass.config.xml" # contains true
+ ];
dllFiles = [ "KeePassLib.dll" ];
exeFiles = [ "KeePass.exe" ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/third_party/nixpkgs/pkgs/applications/misc/keepassx/community.nix
index fdd606c892..a8548f2c5c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/keepassx/community.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/khard/default.nix b/third_party/nixpkgs/pkgs/applications/misc/khard/default.nix
index 64e41eaa3d..f098cd6dbf 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/khard/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/khard/default.nix
@@ -17,10 +17,9 @@ python3.pkgs.buildPythonApplication rec {
propagatedBuildInputs = with python3.pkgs; [
atomicwrites
configobj
- vobject
- ruamel_yaml
- ruamel_base
+ ruamel-yaml
unidecode
+ vobject
];
postInstall = ''
@@ -32,6 +31,8 @@ python3.pkgs.buildPythonApplication rec {
export COLUMNS=80
'';
+ pythonImportsCheck = [ "khard" ];
+
meta = {
homepage = "https://github.com/scheibler/khard";
description = "Console carddav client";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/koreader/default.nix b/third_party/nixpkgs/pkgs/applications/misc/koreader/default.nix
index af66e2282b..471f3f0429 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/koreader/default.nix
+++ b/third_party/nixpkgs/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.11";
src = fetchurl {
url =
"https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
- sha256 = "1q2mbmczx2y5ylriq4k3lbjlpw4pwfq2vvcx06ymax31fsrvix84";
+ sha256 = "sha256-5DNC0MlLB+2JBV2TADSvO40rPlvsPehfv+YE/45P2MA=";
};
sourceRoot = ".";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/kratos/default.nix b/third_party/nixpkgs/pkgs/applications/misc/kratos/default.nix
index a616378e98..a0b67042ec 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/kratos/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/kratos/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kratos";
- version = "0.7.6-alpha.1";
+ version = "0.8.0-alpha.3";
src = fetchFromGitHub {
owner = "ory";
repo = "kratos";
rev = "v${version}";
- sha256 = "1412jckfsm0d5gn7fhjpj212xbsf43sfpd8hgcz3pxc0q37dzfgh";
+ sha256 = "0ihq2kxjackicxg0hrpmx6bsgz056xbaq3j8py37z2w6mwszarcg";
};
- vendorSha256 = "1gcdahs8x26kpwlng3wijqi12yjwj19v413wyyviim4vn1r4c0m7";
+ vendorSha256 = "175pckj30cm5xkbvsdvwzarvwapsylyjgj4ss8v5r1sa0fjpj008";
subPackages = [ "." ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix b/third_party/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix
index 533d3757a6..f6071978b8 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/lifelines/default.nix b/third_party/nixpkgs/pkgs/applications/misc/lifelines/default.nix
index 50827355ca..f7f6c5fa2a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/lifelines/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/lifelines/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gettext, libiconv, bison, ncurses, perl, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, gettext, libiconv, bison, ncurses, perl, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "lifelines";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "1agszzlmkxmznpc1xj0vzxkskrcfagfjvqsdyw1yp5yg6bsq272y";
};
+ patches = [
+ # Fix pending upstream inclusion for ncurses-6.3 support:
+ # https://github.com/lifelines/lifelines/pull/437
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/lifelines/lifelines/commit/e04ce2794d458c440787c191877fbbc0784447bd.patch";
+ sha256 = "1smnz4z5hfjas79bfvlnpw9x8199a5g0p9cvhf17zpcnz1432kg7";
+ })
+ ];
+
buildInputs = [
gettext
libiconv
diff --git a/third_party/nixpkgs/pkgs/applications/misc/limesctl/default.nix b/third_party/nixpkgs/pkgs/applications/misc/limesctl/default.nix
index 24a16eeb8b..d7f0624ad3 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/limesctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/logseq/default.nix b/third_party/nixpkgs/pkgs/applications/misc/logseq/default.nix
index 7e34ec0a36..3dca98c2cc 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/logseq/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/logseq/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "logseq";
- version = "0.4.2";
+ version = "0.4.6";
src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
- sha256 = "BEDScQtGfkp74Gx3RKK8ItNQ9JD8AJkl1zdS/gZqyXk=";
+ sha256 = "fGRPuv98sr3wcVbkVCJr2yKxBZ/IiQP854T9NBf/vCk=";
name = "${pname}-${version}.AppImage";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/loxodo/default.nix b/third_party/nixpkgs/pkgs/applications/misc/loxodo/default.nix
index 65f9a9f0f1..2e7a1365f4 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/loxodo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/loxodo/default.nix
@@ -1,18 +1,17 @@
-{ lib, python27Packages, fetchgit }:
-let
- py = python27Packages;
- python = py.python;
-in
-py.buildPythonApplication {
- name = "loxodo-0.20150124";
+{ lib, python2, fetchFromGitHub }:
- src = fetchgit {
- url = "https://github.com/sommer/loxodo.git";
+python2.pkgs.buildPythonApplication {
+ pname = "loxodo";
+ version = "unstable-2015-01-24";
+
+ src = fetchFromGitHub {
+ owner = "sommer";
+ repo = "loxodo";
rev = "6c56efb4511fd6f645ad0f8eb3deafc8071c5795";
sha256 = "1cg0dfcv57ps54f1a0ksib7hgkrbdi9q699w302xyyfyvjcb5dd2";
};
- propagatedBuildInputs = with py; [ wxPython ];
+ propagatedBuildInputs = with python2.pkgs; [ wxPython ];
postInstall = ''
mv $out/bin/loxodo.py $out/bin/loxodo
@@ -21,7 +20,7 @@ py.buildPythonApplication {
[Desktop Entry]
Type=Application
Exec=$out/bin/loxodo
- Icon=$out/lib/${python.libPrefix}/site-packages/resources/loxodo-icon.png
+ Icon=$out/lib/${python2.libPrefix}/site-packages/resources/loxodo-icon.png
Name=Loxodo
GenericName=Password Vault
Categories=Application;Other;
@@ -33,5 +32,6 @@ py.buildPythonApplication {
homepage = "https://www.christoph-sommer.de/loxodo/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/lscolors/default.nix b/third_party/nixpkgs/pkgs/applications/misc/lscolors/default.nix
index f29fdfda6c..70804ef1fd 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/lscolors/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/lscolors/default.nix
@@ -2,19 +2,22 @@
rustPlatform.buildRustPackage rec {
pname = "lscolors";
- version = "0.8.0";
+ version = "0.8.1";
src = fetchCrate {
inherit version pname;
- sha256 = "sha256-dwtrs9NlhJ+km2/146HMnDirWRB5Ur5LTmWdKAK03v0=";
+ sha256 = "sha256-74KNnERhyiZamVyS9yzDNVf33KMqDiSfPb5BCTKFuHA=";
};
- cargoSha256 = "sha256-vQnrLt+VSDPr61VMkYFtjSDnEt+NmWBZUd4qLzPzQBU=";
+ cargoSha256 = "sha256-mjGZ/q9BByndwfnFGk6k5KD9ctY0X0/oaEugiOJY8Ms=";
+
+ # setid is not allowed in the sandbox
+ checkFlags = [ "--skip=tests::style_for_setid" ];
meta = with lib; {
description = "Rust library and tool to colorize paths using LS_COLORS";
homepage = "https://github.com/sharkdp/lscolors";
- license = with licenses; [ asl20 mit ];
+ license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ SuperSandro2000 ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix b/third_party/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix
index 8c88430527..2dfbaeb994 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix b/third_party/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
index bd35d44b7c..88b3d25311 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
@@ -67,8 +67,6 @@ in buildFHSUserEnv {
# Redream // "redream is not available for the x86_64 architecture"
- # ResidualVM
- flac
# rpcs3 // TODO: "error while loading shared libraries: libz.so.1..."
llvm
@@ -76,8 +74,11 @@ in buildFHSUserEnv {
# ScummVM
nasm sndio
+ # ResidualVM is now merged with ScummVM and therefore does not exist anymore
+ flac
+
# Snes9x
- epoxy minizip
+ libepoxy minizip
# Vice
bison flex
diff --git a/third_party/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix b/third_party/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix
new file mode 100644
index 0000000000..6a6e66f293
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix
@@ -0,0 +1,68 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+
+, at-spi2-atk
+, at-spi2-core
+, libepoxy
+, gtk3
+, libdatrie
+, libselinux
+, libsepol
+, libthai
+, pcre
+, util-linux
+, wayland
+, xorg
+
+, cmake
+, doxygen
+, pkg-config
+, wayland-protocols
+}:
+
+mkDerivation rec {
+ pname = "maliit-framework";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "maliit";
+ repo = "framework";
+ rev = version;
+ sha256 = "138jyvw130kmrldksbk4l38gvvahh3x51zi4vyplad0z5nxmbazb";
+ };
+
+ buildInputs = [
+ at-spi2-atk
+ at-spi2-core
+ libepoxy
+ gtk3
+ libdatrie
+ libselinux
+ libsepol
+ libthai
+ pcre
+ util-linux
+ wayland
+ xorg.libXdmcp
+ xorg.libXtst
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ doxygen
+ pkg-config
+ wayland-protocols
+ ];
+
+ preConfigure = ''
+ cmakeFlags+="-DQT5_PLUGINS_INSTALL_DIR=$out/$qtPluginPrefix"
+ '';
+
+ meta = with lib; {
+ description = "Core libraries of Maliit and server";
+ homepage = "http://maliit.github.io/";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix b/third_party/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix
new file mode 100644
index 0000000000..fcbd6cbff1
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix
@@ -0,0 +1,82 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, fetchpatch
+
+, anthy
+, hunspell
+, libchewing
+, libpinyin
+, maliit-framework
+, pcre
+, presage
+, qtfeedback
+, qtmultimedia
+, qtquickcontrols2
+, qtgraphicaleffects
+
+, cmake
+, pkg-config
+, wrapGAppsHook
+}:
+
+mkDerivation rec {
+ pname = "maliit-keyboard";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "maliit";
+ repo = "keyboard";
+ rev = version;
+ sha256 = "10dh0abxq90024dqq3fs8mjxww3igb4l09d19i2fq9f3flvh11hc";
+ };
+
+ patches = [
+ (fetchpatch {
+ # https://github.com/maliit/keyboard/pull/34
+ url = "https://github.com/maliit/keyboard/commit/9848a73b737ad46b5790ebf713a559d340c91b82.patch";
+ sha256 = "0qrsga0npahjrgbl6mycvl6d6vjm0d17i5jadcn7y6khbhq2y6rg";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace data/schemas/org.maliit.keyboard.maliit.gschema.xml \
+ --replace /usr/share "$out/share"
+ '';
+
+ buildInputs = [
+ anthy
+ hunspell
+ libchewing
+ libpinyin
+ maliit-framework
+ pcre
+ presage
+ qtfeedback
+ qtmultimedia
+ qtquickcontrols2
+ qtgraphicaleffects
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ wrapGAppsHook
+ ];
+
+ postInstall = ''
+ glib-compile-schemas "$out"/share/glib-2.0/schemas
+ '';
+
+ meta = with lib; {
+ description = "Virtual keyboard";
+ homepage = "http://maliit.github.io/";
+ license = with licenses; [ lgpl3Only bsd3 cc-by-30 ];
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/markmind/default.nix b/third_party/nixpkgs/pkgs/applications/misc/markmind/default.nix
new file mode 100644
index 0000000000..e44b7fe54a
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/marktext/default.nix b/third_party/nixpkgs/pkgs/applications/misc/marktext/default.nix
index c98d40ab2e..1e71493e5f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/marktext/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/marktext/default.nix
@@ -2,16 +2,21 @@
let
pname = "marktext";
- version = "v0.16.2";
-in
-appimageTools.wrapType2 rec {
+ version = "v0.16.3";
name = "${pname}-${version}-binary";
src = fetchurl {
url = "https://github.com/marktext/marktext/releases/download/${version}/marktext-x86_64.AppImage";
- sha256 = "0ivf9lvv2jk7dvxmqprzcsxgya3617xmx5bppjvik44z14b5x8r7";
+ sha256 = "0s93c79vy2vsi7b6xq4hvsvjjad8bdkhl1q135vp98zmbf7bvm9b";
};
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in
+appimageTools.wrapType2 rec {
+ inherit name src;
+
profile = ''
export LC_ALL=C.UTF-8
''
@@ -28,8 +33,16 @@ appimageTools.wrapType2 rec {
p.xorg.libxkbfile
];
- # Strip version from binary name.
- extraInstallCommands = "mv $out/bin/${name} $out/bin/${pname}";
+ extraInstallCommands = ''
+ # Strip version from binary name.
+ mv $out/bin/${name} $out/bin/${pname}
+
+ install -m 444 -D ${appimageContents}/marktext.desktop $out/share/applications/marktext.desktop
+ substituteInPlace $out/share/applications/marktext.desktop \
+ --replace "Exec=AppRun" "Exec=${pname} --"
+
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
meta = with lib; {
description = "A simple and elegant markdown editor, available for Linux, macOS and Windows";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/mdzk/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mdzk/default.nix
index fb1923d932..17365e009b 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mdzk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mdzk/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "mdzk";
- version = "0.4.2";
+ version = "0.4.3";
src = fetchFromGitHub {
owner = "mdzk-rs";
repo = "mdzk";
rev = version;
- sha256 = "sha256-yz8lLFAP2/16fixknqGziyrUJKs3Qo1+whV82kUPuAE=";
+ sha256 = "sha256-VUvV1XA9Bd3ugYHcKOcAQLUt0etxS/Cw2EgnFGxX0z0=";
};
- cargoSha256 = "sha256-TGNzi8fMU7RhX2SJyxpYfJLgGYxpO/XkmDXzMdlX/2o=";
+ cargoSha256 = "sha256-lZ4fc/94ESlhpfa5ylg45oZNeaF1mZPxQUSLZrl2V3o=";
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/megasync/default.nix b/third_party/nixpkgs/pkgs/applications/misc/megasync/default.nix
index 438a468afa..4b273981fa 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/megasync/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/megasync/default.nix
@@ -7,7 +7,8 @@
, curl
, doxygen
, fetchFromGitHub
-#, ffmpeg
+, ffmpeg
+, freeimage
, libmediainfo
, libraw
, libsodium
@@ -27,13 +28,13 @@
}:
mkDerivation rec {
pname = "megasync";
- version = "4.5.3.0";
+ version = "4.6.1.0";
src = fetchFromGitHub {
owner = "meganz";
repo = "MEGAsync";
rev = "v${version}_Linux";
- sha256 = "1lwjmdbqyxx5wd8nx4mc830fna37jad4h93viwfh5x7sxn104js7";
+ sha256 = "0v2fvji9hs7valya0wx5qjx01c7yjld6nnp6m9gpxfkr30h5s5wb";
fetchSubmodules = true;
};
@@ -52,8 +53,8 @@ mkDerivation rec {
c-ares
cryptopp
curl
- # temporarily disable until patched for ffmpeg 4.4
- #ffmpeg
+ ffmpeg
+ freeimage
libmediainfo
libraw
libsodium
@@ -71,6 +72,7 @@ mkDerivation rec {
./noinstall-distro-version.patch
# megasync target is not part of the install rule thanks to a commented block
./install-megasync.patch
+ ./ffmpeg_44.patch
];
postPatch = ''
@@ -95,9 +97,8 @@ mkDerivation rec {
"--with-cares"
"--with-cryptopp"
"--with-curl"
- # temporarily disable until patched for ffmpeg 4.4
- #"--with-ffmpeg"
- "--without-freeimage" # unreferenced even when found
+ "--with-ffmpeg"
+ "--with-freeimage"
"--without-readline"
"--without-termcap"
"--with-sodium"
diff --git a/third_party/nixpkgs/pkgs/applications/misc/megasync/ffmpeg_44.patch b/third_party/nixpkgs/pkgs/applications/misc/megasync/ffmpeg_44.patch
new file mode 100644
index 0000000000..901635e43f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/megasync/ffmpeg_44.patch
@@ -0,0 +1,14 @@
+Index: megasync-4.6.1.0/src/MEGASync/mega/src/gfx/freeimage.cpp
+===================================================================
+--- megasync-4.6.1.0.orig/src/MEGASync/mega/src/gfx/freeimage.cpp
++++ megasync-4.6.1.0/src/MEGASync/mega/src/gfx/freeimage.cpp
+@@ -253,7 +253,8 @@ bool GfxProcFreeImage::readbitmapFfmpeg(
+
+ // Force seeking to key frames
+ formatContext->seek2any = false;
+- videoStream->skip_to_keyframe = true;
++ // no longer exposed in ffmpeg 4.4; the line above should be sufficient
++ //videoStream->skip_to_keyframe = true;
+ if (decoder->capabilities & CAP_TRUNCATED)
+ {
+ codecContext->flags |= CAP_TRUNCATED;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/mencal/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mencal/default.nix
index 806d6a53cf..c4973b2755 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mencal/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mencal/default.nix
@@ -1,17 +1,18 @@
{ lib, stdenv, fetchurl, perl }:
stdenv.mkDerivation rec {
- name = "mencal-3.0";
+ pname = "mencal";
+ version = "3.0";
src = fetchurl {
- url = "http://kyberdigi.cz/projects/mencal/files/${name}.tar.gz";
+ url = "http://kyberdigi.cz/projects/mencal/files/mencal-${version}.tar.gz";
sha256 = "9328d0b2f3f57847e8753c5184531f4832be7123d1b6623afdff892074c03080";
};
installPhase = ''
- mkdir -p $out/bin
- cp mencal $out/bin/
- '';
+ mkdir -p $out/bin
+ cp mencal $out/bin/
+ '';
buildInputs = [ perl ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/merkaartor/default.nix b/third_party/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
index 90d91583a2..eda540427b 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix b/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
index 46da03b8a8..d869164f66 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -5,8 +5,9 @@
, desktop-file-utils
, glib
, gobject-introspection
-, gtk3
-, libhandy
+, gtk4
+, itstool
+, libadwaita
, librsvg
, meson
, ninja
@@ -17,7 +18,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "metadata-cleaner";
- version = "1.0.7";
+ version = "2.0.1";
format = "other";
@@ -25,14 +26,15 @@ python3.pkgs.buildPythonApplication rec {
owner = "rmnvgr";
repo = "metadata-cleaner";
rev = "v${version}";
- sha256 = "sha256-HlP/QahVFCAct06pKanjozFqeyTdHoHanIemq5ID2CQ=";
+ sha256 = "sha256-iTKs3DEZSzqRARXJKPPygvCS5JNUMbQBkfjacwd168Y=";
};
nativeBuildInputs = [
appstream
desktop-file-utils
glib
- gtk3
+ gtk4
+ itstool
meson
ninja
pkg-config
@@ -41,8 +43,8 @@ python3.pkgs.buildPythonApplication rec {
buildInputs = [
gobject-introspection
- gtk3
- libhandy
+ gtk4
+ libadwaita
librsvg
poppler_gi
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/metar/default.nix b/third_party/nixpkgs/pkgs/applications/misc/metar/default.nix
index d9e1922f1c..07ac41f728 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/metar/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/metar/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv, fetchgit, curl }:
+{ lib, stdenv, fetchFromGitHub, curl }:
stdenv.mkDerivation {
- name = "metar-20161013.1";
+ pname = "metar";
+ version = "unstable-2017-02-17";
- src = fetchgit {
- url = "https://github.com/keesL/metar.git";
+ src = fetchFromGitHub {
+ owner = "keesL";
+ repo = "metar";
rev = "20e9ca69faea330f6c2493b6829131c24cb55147";
sha256 = "1fgrlnpasqf1ihh9y6zy6mzzybqx0lxvh7gmv03rjdb55dr42dxj";
};
@@ -13,8 +15,6 @@ stdenv.mkDerivation {
meta = with lib; {
homepage = "https://github.com/keesL/metar";
- license = licenses.gpl2;
- maintainers = [ maintainers.zalakain ];
description = "Downloads weather reports and optionally decodes them";
longDescription = ''
METAR reports are meteorogical weather reports for aviation. Metar is a small
@@ -26,5 +26,7 @@ stdenv.mkDerivation {
more work in the area of clouds need to be done, as support for Cumulus or
Cumulunimbus is not yet decoded.
'';
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ zalakain ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/minder/default.nix b/third_party/nixpkgs/pkgs/applications/misc/minder/default.nix
index 607eeb5eaa..63840b3f0b 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/minder/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/mkgmap/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
index c88ac932e4..840ee02917 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
@@ -14,11 +14,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mkgmap";
- version = "4810";
+ version = "4827";
src = fetchurl {
url = "https://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
- sha256 = "j21WTEu+MTmnFrRH5B8Eb1tS2elFR715R8jhgKZ5Gmw=";
+ sha256 = "2vK52NXE0LJq3nqFi08zliwRQwWFiQSsiAU412zjkQM=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix b/third_party/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix
index 22b5410d6b..68cd5a79fe 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
index 1bd8b58992..564867712a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
@@ -13,11 +13,11 @@ let
in
stdenv.mkDerivation rec {
pname = "splitter";
- version = "642";
+ version = "645";
src = fetchurl {
url = "https://www.mkgmap.org.uk/download/splitter-r${version}-src.tar.gz";
- sha256 = "zMuMutkk0RsbEH+5undcMmZRCGYJ7LRvdK1pxAgQRYk=";
+ sha256 = "Y9feRNDjmwUbSOwxfMIaYIycCvOBMihq5LkuKbALVDY=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/mob/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mob/default.nix
index e9e0559b0d..f558e520da 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mob/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/mobilecoin-wallet/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mobilecoin-wallet/default.nix
new file mode 100644
index 0000000000..0ef26eea45
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/mobilecoin-wallet/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+ pname = "mobilecoin-wallet";
+ version = "1.4.1";
+ name = "${pname}-${version}";
+ src = fetchurl {
+ url = "https://github.com/mobilecoinofficial/desktop-wallet/releases/download/v${version}/MobileCoin-Wallet-${version}.AppImage";
+ sha256 = "sha256-x5frHgkEz77pqSB6YANRtZmCzaK/RxRzMElLu49lxPk=";
+ };
+ appimageContents = appimageTools.extractType2 { inherit name src; };
+
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+
+ mkdir -p $out/share/${pname}
+ cp -a ${appimageContents}/locales $out/share/${pname}
+ cp -a ${appimageContents}/resources $out/share/${pname}
+ cp -a ${appimageContents}/usr/share/icons $out/share/
+
+ install -Dm 644 ${appimageContents}/${pname}.desktop -t $out/share/applications/
+
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace "AppRun" "${pname}"
+ '';
+
+ meta = with lib; {
+ description = "A user-friendly desktop wallet with support for transaction history, encrypted contact book, gift codes, and payments";
+ homepage = "https://github.com/mobilecoinofficial/desktop-wallet";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/moz-phab/default.nix b/third_party/nixpkgs/pkgs/applications/misc/moz-phab/default.nix
new file mode 100644
index 0000000000..886e06a382
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/moz-phab/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, mercurial
+# build inputs
+, distro
+, glean-sdk
+, python-hglib
+, sentry-sdk
+, setuptools
+}:
+
+buildPythonApplication rec {
+ pname = "moz-phab";
+ version = "0.1.99";
+
+ src = fetchPypi {
+ pname = "MozPhab";
+ inherit version;
+ sha256 = "sha256-uKoMMSp5AIvB1qTRYAh7n1+2dDLneFbssfkfTTshfcs=";
+ };
+
+ # Relax python-hglib requirement
+ # https://phabricator.services.mozilla.com/D131618
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "==" ">="
+ '';
+
+ propagatedBuildInputs = [
+ distro
+ glean-sdk
+ python-hglib
+ sentry-sdk
+ setuptools
+ ];
+ checkInputs = [
+ mercurial
+ ];
+
+ preCheck = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ meta = with lib; {
+ description = "Phabricator CLI from Mozilla to support submission of a series of commits";
+ longDescription = ''
+ moz-phab is a custom command-line tool, which communicates to
+ Phabricator’s API, providing several conveniences, including support for
+ submitting series of commits.
+ '';
+ homepage = "https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html";
+ license = licenses.mpl20;
+ maintainers = [ maintainers.kvark ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/mpvc/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mpvc/default.nix
index 69aca239d3..bfdfeebae2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mpvc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mpvc/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, socat, fetchFromGitHub, makeWrapper }:
stdenv.mkDerivation {
- name = "mpvc-unstable-2017-03-18";
+ pname = "mpvc";
+ version = "unstable-2017-03-18";
src = fetchFromGitHub {
owner = "wildefyr";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/multibootusb/default.nix b/third_party/nixpkgs/pkgs/applications/misc/multibootusb/default.nix
index 1d625a67b7..3890246a63 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/multibootusb/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
index 63dde76fab..9ba9f36040 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
@@ -33,7 +33,7 @@
, proj
, cairo
, libxkbcommon
-, epoxy
+, libepoxy
, wrapGAppsHook
, at-spi2-core
, dbus
@@ -126,7 +126,7 @@ in stdenv.mkDerivation rec {
libpthreadstubs
libXdmcp
libxkbcommon
- epoxy
+ libepoxy
at-spi2-core
dbus
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/navipowm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/navipowm/default.nix
index 0727f86729..6527a4f574 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/navipowm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/navipowm/default.nix
@@ -1,9 +1,10 @@
{ lib, stdenv, fetchurl, qt4, qmake4Hook }:
stdenv.mkDerivation rec {
- name = "navipowm-0.2.4";
+ pname = "navipowm";
+ version = "0.2.4";
src = fetchurl {
- url = "mirror://sourceforge/navipowm/NaviPOWM-0.2.4.tar.gz";
+ url = "mirror://sourceforge/navipowm/NaviPOWM-${version}.tar.gz";
sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b";
};
@@ -12,10 +13,10 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
- mkdir -p $out/bin $out/share/${name}/Icons
+ mkdir -p $out/bin $out/share/navipowm-${version}/Icons
cp bin/NaviPOWM $out/bin
- cp ../../common/Config/navipowm.ini $out/share/${name}
- cp ../../common/Images/* $out/share/${name}
+ cp ../../common/Config/navipowm.ini $out/share/navipowm-${version}
+ cp ../../common/Images/* $out/share/navipowm-${version}
'';
buildInputs = [ qt4 ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix b/third_party/nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix
new file mode 100644
index 0000000000..6807cd9024
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/nnn/default.nix b/third_party/nixpkgs/pkgs/applications/misc/nnn/default.nix
index 8999c3b8f9..8ea024320c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/nnn/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/nnn/default.nix
@@ -20,13 +20,13 @@ assert withNerdIcons -> withIcons == false;
stdenv.mkDerivation rec {
pname = "nnn";
- version = "4.3";
+ version = "4.4";
src = fetchFromGitHub {
owner = "jarun";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-kiLmdEyOnD1wPS2GuFF5nTK9tgUOI6PVCzCRZXdObEo=";
+ sha256 = "sha256-g9GaCc/IWKtih0/A2AZEPImjj7ymJIdYwC5I/6GUh5c=";
};
configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
diff --git a/third_party/nixpkgs/pkgs/applications/misc/noice/default.nix b/third_party/nixpkgs/pkgs/applications/misc/noice/default.nix
index 73648d896d..e67346c517 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/noice/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/noice/default.nix
@@ -12,6 +12,12 @@ stdenv.mkDerivation rec {
sha256 = "0975j4m93s9a21pazwdzn4gqhkngwq7q6ghp0q8a75r6c4fb7aar";
};
+ postPatch = ''
+ # Add support for ncurses-6.3. Can be dropped with 0.9 release.
+ # Fixed upstream at: https://git.2f30.org/noice/commit/53c35e6b340b7c135038e00057a198f03cb7d7cf.html
+ substituteInPlace noice.c --replace 'printw(str);' 'printw("%s", str);'
+ '';
+
configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/notejot/default.nix b/third_party/nixpkgs/pkgs/applications/misc/notejot/default.nix
index 435bbda24d..aad182bd18 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/notejot/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/numberstation/default.nix b/third_party/nixpkgs/pkgs/applications/misc/numberstation/default.nix
index 9809a2a620..41467e0c58 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/numberstation/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/numberstation/default.nix
@@ -15,7 +15,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "numberstation";
- version = "0.5.0";
+ version = "1.0.1";
format = "other";
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "~martijnbraam";
repo = "numberstation";
rev = version;
- sha256 = "1hh66i0rfm85a97iajxlh965wk68hn0kkfgi9cljjkqf98xiy0bb";
+ sha256 = "sha256-8q5cEpQRnevY98PKaTUW10bqRAr5NVG/rU24+nx27rw=";
};
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix b/third_party/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
index 3f82db1242..24deebce17 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "nwg-launchers";
- version = "0.5.0";
+ version = "0.6.3";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-ZtlAs7McVQKH626h2iOhjpVaiEHeaqs9ncZ6/KnGibg=";
+ sha256 = "sha256-QWDYy0TBxoYxfRAOtAEVM8wsPUi2SnzMXsu38guAURU=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix b/third_party/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix
index 043ea23e3a..770227186f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonPackage rec {
pname = "nwg-wrapper";
- version = "0.0.2";
+ version = "0.1.0";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-LkAB0MrwQxP3X7glfSnI0GZMv8tjaeSOz7WSOW33wuo=";
+ sha256 = "0xkxyfbj8zljx7k5wbniz3x9jg0l4jnbbjv8hy5y5p4l10m0vpjs";
};
nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/third_party/nixpkgs/pkgs/applications/misc/octoprint/default.nix
index 85ddbdccef..e8f28479a3 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/octoprint/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/octoprint/default.nix
@@ -2,7 +2,7 @@
, stdenv
, lib
, fetchFromGitHub
-, python38
+, python3
, substituteAll
, nix-update-script
# To include additional plugins, pass them here as an overlay.
@@ -21,7 +21,7 @@ let
);
};
- py = python38.override {
+ py = python3.override {
self = py;
packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) (
[
@@ -33,17 +33,15 @@ let
(mkOverride "jinja2" "2.11.3" "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6")
(mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a")
(mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b")
- (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s")
- (mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409")
# Requires flask<2, cannot mkOverride because tests need to be disabled
(
self: super: {
flask = super.flask.overridePythonAttrs (oldAttrs: rec {
- version = "1.1.2";
+ version = "1.1.4";
src = oldAttrs.src.override {
inherit version;
- sha256 = "4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060";
+ sha256 = "15ni4xlm57a15f5hipp8w0c9zba20179bvfns2392fiq1lcbdghg";
};
doCheck = false;
});
@@ -84,13 +82,18 @@ let
self: super: {
websocket-client = super.websocket-client.overridePythonAttrs (
oldAttrs: rec {
- version = "0.58.0";
+ version = "0.59.0";
src = oldAttrs.src.override {
- pname = "websocket_client";
inherit version;
- sha256 = "63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f";
+ sha256 = "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk";
};
- propagatedBuildInputs = [ self.six ];
+ propagatedBuildInputs = with self; [
+ six
+ pysocks
+ ];
+ disabledTests = [
+ "testConnect" # requires network access
+ ];
}
);
}
@@ -142,13 +145,13 @@ let
self: super: {
octoprint-firmwarecheck = self.buildPythonPackage rec {
pname = "OctoPrint-FirmwareCheck";
- version = "2021.8.11";
+ version = "2021.10.11";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-FirmwareCheck";
rev = version;
- sha256 = "sha256-WzVjHgjF12iJ642AFaFd86GSU90XyPzKhi1CSreynW4=";
+ sha256 = "0hl0612x0h4pcwsrga5il5x3m04j37cmyzh2dg1kl971cvrw79n2";
};
doCheck = false;
};
@@ -159,14 +162,14 @@ let
self: super: {
octoprint-pisupport = self.buildPythonPackage rec {
pname = "OctoPrint-PiSupport";
- version = "2021.8.2";
+ version = "2021.10.28";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-PiSupport";
rev = version;
- sha256 = "07akx61wadxhs0545pqa9gzjnaz9742bq710f8f4zs5x6sacjzbc";
+ sha256 = "01bpvv1sn3113fdpw6b90c2rj8lqay118x609yy64z9ccm93khl9";
};
# requires octoprint itself during tests
@@ -179,19 +182,20 @@ let
self: super: {
octoprint = self.buildPythonPackage rec {
pname = "OctoPrint";
- version = "1.6.1";
+ version = "1.7.2";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint";
rev = version;
- sha256 = "sha256-3b3k9h8H9Spf/P3/pXpCANnSGOgbUw/EWISJbrSoPBM=";
+ sha256 = "sha256-jCfzUx3LQ7TlXKQU8qbhyS1P4Wew/SSgJHVSc1VLdx4=";
};
propagatedBuildInputs = with super; [
blinker
cachelib
click
+ colorlog
emoji
feedparser
filetype
@@ -211,6 +215,7 @@ let
octoprint-filecheck
octoprint-firmwarecheck
octoprint-pisupport
+ pathvalidate
pkginfo
pip
psutil
@@ -252,10 +257,14 @@ let
postPatch = let
ignoreVersionConstraints = [
+ "cachelib"
+ "colorlog"
"emoji"
"immutabledict"
"sentry-sdk"
"watchdog"
+ "wrapt"
+ "zeroconf"
];
in
''
diff --git a/third_party/nixpkgs/pkgs/applications/misc/openbrf/default.nix b/third_party/nixpkgs/pkgs/applications/misc/openbrf/default.nix
index 663a7bf43e..c0fb436b7f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/openbrf/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/openbrf/default.nix
@@ -2,7 +2,8 @@
mkDerivation {
- name = "openbrf-unstable-2016-01-09";
+ pname = "openbrf";
+ version = "unstable-2016-01-09";
src = fetchFromGitHub {
owner = "cfcohen";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix b/third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix
index c044e76c59..9e8440a4c8 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix b/third_party/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix
index a3815dae00..d604155470 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix
@@ -1,6 +1,6 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkg-config
, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation
-, libosmscout, mapnik, valhalla, libpostal, osrm-backend, protobuf
+, libosmscout, valhalla, libpostal, osrm-backend, protobuf
, libmicrohttpd_0_9_70, sqlite, marisa, kyotocabinet, boost
}:
@@ -41,7 +41,7 @@ mkDerivation rec {
nativeBuildInputs = [ qmake pkg-config qttools ];
buildInputs = [
kirigami2 qtquickcontrols2 qtlocation
- mapnik valhalla libosmscout osrm-backend libmicrohttpd_0_9_70
+ valhalla libosmscout osrm-backend libmicrohttpd_0_9_70
libpostal sqlite marisa kyotocabinet boost protobuf date
];
@@ -52,8 +52,10 @@ mkDerivation rec {
mv data/valhalla.json-3.1 data/valhalla.json
'';
- # Choose to build the kirigami UI variant
- qmakeFlags = [ "SCOUT_FLAVOR=kirigami" ];
+ qmakeFlags = [
+ "SCOUT_FLAVOR=kirigami" # Choose to build the kirigami UI variant
+ "CONFIG+=disable_mapnik" # Disable the optional mapnik backend
+ ];
meta = with lib; {
description = "Maps server providing tiles, geocoder, and router";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix
index 932fa588d2..12f8935797 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix
@@ -19,9 +19,8 @@ python3.pkgs.buildPythonApplication rec {
# /etc/ in check phase.
postPatch = ''
substituteInPlace Makefile \
- --replace \
- "dbus-run-session" \
- "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf"
+ --replace "dbus-run-session" "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf" \
+ --replace '-p $(relpassstore)' '-p $(PASSWORD_STORE_DIR)'
'';
propagatedBuildInputs = with python3.pkgs; [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
index a8b407dd7b..deb9a98a51 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
@@ -1,5 +1,18 @@
-{ lib, stdenv, fetchurl, glib, intltool, libfm, libX11, pango, pkg-config
-, wrapGAppsHook, gnome, withGtk3 ? true, gtk2, gtk3 }:
+{ lib
+, stdenv
+, fetchurl
+, glib
+, intltool
+, libfm
+, libX11
+, pango
+, pkg-config
+, wrapGAppsHook
+, gnome
+, withGtk3 ? true
+, gtk2
+, gtk3
+}:
let
libfm' = libfm.override { inherit withGtk3; };
@@ -7,9 +20,11 @@ let
inherit (lib) optional;
in
stdenv.mkDerivation rec {
- name = "pcmanfm-1.3.2";
+ pname = "pcmanfm";
+ version = "1.3.2";
+
src = fetchurl {
- url = "mirror://sourceforge/pcmanfm/${name}.tar.xz";
+ url = "mirror://sourceforge/pcmanfm/pcmanfm-${version}.tar.xz";
sha256 = "sha256-FMt7JHSTxMzmX7tZAmEeOtAKeocPvB5QrcUEKMUUDPc=";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
index 5657c7f7e1..dd7d3f4768 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
@@ -5,13 +5,13 @@
python3Packages.buildPythonApplication rec {
pname = "pdfarranger";
- version = "1.7.1";
+ version = "1.8.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "1c2mafnz8pv32wzkc2wx4q8y2x7xffpn6ag12dj7ga5n772fb6s3";
+ sha256 = "0xfxcwb24rp0kni2b4wdk6fvhqnhd6fh559ag6wdr4sspzkqwdjf";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
index fac17c978d..9aed6daa5c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/phoc/default.nix b/third_party/nixpkgs/pkgs/applications/misc/phoc/default.nix
index 97613b2195..1a590af946 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/phoc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/phoc/default.nix
@@ -32,11 +32,24 @@ let
url = "https://github.com/swaywm/wlroots/commit/e18599b05e0f0cbeba11adbd489e801285470eab.patch";
sha256 = "17ax4dyk0584yhs3lq8ija5bkainjf7psx9c9r50cr4jm9c0i37l";
})
+
+ # xwayland: Allow to retrieve _NET_STARTUP_ID
+ (fetchpatch {
+ name = "allow-to-retrieve-net-startup-id.patch";
+ url = "https://github.com/swaywm/wlroots/commit/66593071bc90a1cccaeedc636eb6f33c973f5362.patch";
+ sha256 = "sha256-yKf/twdUzrII5IakH7AH6LGyPDo9Nl/gIB0pTThSTfY=";
+ })
+ # xwayland: Allow to retrieve startup-id via _NET_STARTUP_INFO
+ (fetchpatch {
+ name = "allow-to-retrieve-startup-id-via-net-startup-info.patch";
+ url = "https://github.com/swaywm/wlroots/commit/235bb6f2fcb8ee4174215ba74b5bc2f191c5960a.patch";
+ sha256 = "sha256-7AWBq12tF/781CmgvTaOvTIiiJMywxRn6eWp+jacdak=";
+ })
];
});
in stdenv.mkDerivation rec {
pname = "phoc";
- version = "0.8.0";
+ version = "0.9.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
@@ -44,7 +57,7 @@ in stdenv.mkDerivation rec {
owner = "Phosh";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-QAnJlpFjWJvwxGyenmN4IaI9VFn2jwdXpa8VqAmH7Xw=";
+ sha256 = "sha256-qd1ZETM2/AjU5nKQIqh0Q+SboLNr+NncvSHgLv2S3KI=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pinfo/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pinfo/default.nix
index b0fc64a1a5..179af6ca87 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pinfo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/pinfo/default.nix
@@ -1,6 +1,7 @@
{ lib
, autoreconfHook
, fetchFromGitHub
+, fetchpatch
, gettext
, ncurses
, readline
@@ -19,6 +20,31 @@ stdenv.mkDerivation rec {
sha256 = "173d2p22irwiabvr4z6qvr6zpr6ysfkhmadjlyhyiwd7z62larvy";
};
+ patches = [
+ # Pull upstream fix for -fno-common toolchains
+ (fetchpatch {
+ name = "fno-common.patch";
+ url = "https://github.com/baszoetekouw/pinfo/commit/16dba5978146b6d3a540ac7c8f415eda49280847.patch";
+ sha256 = "148fm32chvq8x9ayq9cnhgszh10g5v0cv0xph67fa7sp341p09wy";
+ })
+
+ # Fix pending upstream inclusion for build on ncurses-6.3:
+ # https://github.com/baszoetekouw/pinfo/pull/27
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/baszoetekouw/pinfo/commit/fc67ceacd81f0c74fcab85447c23a532ae482827.patch";
+ sha256 = "08phmng8vgfqjjazys05acpd5gh110malhw3sx29dg86nsrg2khs";
+ })
+
+ # Fix pending upstream inclusion for build on gcc-11:
+ # https://github.com/baszoetekouw/pinfo/pull/27
+ (fetchpatch {
+ name = "gcc-11.patch";
+ url = "https://github.com/baszoetekouw/pinfo/commit/ab604fdb67296dad27f3a25f3c9aabdd2fb8c3fa.patch";
+ sha256 = "09g8msgan2x48hxcbm7l6j3av6n8i0bsd4g0vf5xd8bxwzynb13m";
+ })
+ ];
+
nativeBuildInputs = [
autoreconfHook
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pipr/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pipr/default.nix
index 96627f5ccc..2f5ba3e6d9 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pipr/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/posterazor/default.nix b/third_party/nixpkgs/pkgs/applications/misc/posterazor/default.nix
index 602ac3e5e3..77e5e34899 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/posterazor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/posterazor/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake, unzip, pkg-config, libXpm, fltk13, freeimage }:
-stdenv.mkDerivation {
- name = "posterazor-1.5.1";
+stdenv.mkDerivation rec {
+ pname = "posterazor";
+ version = "1.5.1";
src = fetchurl {
- url = "mirror://sourceforge/posterazor/1.5.1/PosteRazor-1.5.1-Source.zip";
+ url = "mirror://sourceforge/posterazor/${version}/PosteRazor-${version}-Source.zip";
sha256 = "1dqpdk8zl0smdg4fganp3hxb943q40619qmxjlga9jhjc01s7fq5";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/privacyidea/default.nix b/third_party/nixpkgs/pkgs/applications/misc/privacyidea/default.nix
index b8e4ebf841..6757cd3f7f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/privacyidea/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/privacyidea/default.nix
@@ -22,18 +22,21 @@ let
});
werkzeug = self.callPackage ../../../development/python-modules/werkzeug/1.nix { };
flask = self.callPackage ../../../development/python-modules/flask/1.nix { };
+ sqlsoup = super.sqlsoup.overrideAttrs ({ meta ? {}, ... }: {
+ meta = meta // { broken = false; };
+ });
};
};
in
python3'.pkgs.buildPythonPackage rec {
pname = "privacyIDEA";
- version = "3.6.2";
+ version = "3.6.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-kv6XqsbGkaGEhfNxSOjCe6JbFOJnuqwM8CR/J9lJjks=";
+ sha256 = "sha256-SsOEmbyEAKU3pdzsyqi5SwDgJMGEAzyCywoio9iFQAA=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/procmail/default.nix b/third_party/nixpkgs/pkgs/applications/misc/procmail/default.nix
index 1244347cc5..dafc73925b 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/procmail/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/procmail/default.nix
@@ -1,7 +1,13 @@
{ lib, stdenv, fetchurl }:
-stdenv.mkDerivation {
- name = "procmail-3.22";
+stdenv.mkDerivation rec {
+ pname = "procmail";
+ version = "3.22";
+
+ src = fetchurl {
+ url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-${version}.tar.gz";
+ sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
+ };
patches = [
./CVE-2014-3618.patch
@@ -15,20 +21,16 @@ stdenv.mkDerivation {
# getline is defined differently in glibc now. So rename it.
# Without the .PHONY target "make install" won't install anything on Darwin.
postPatch = ''
- sed -e "s%^RM.*$%#%" -i Makefile
- sed -e "s%^BASENAME.*%\BASENAME=$out%" -i Makefile
- sed -e "s%^LIBS=.*%LIBS=-lm%" -i Makefile
+ sed -i Makefile \
+ -e "s%^RM.*$%#%" \
+ -e "s%^BASENAME.*%\BASENAME=$out%" \
+ -e "s%^LIBS=.*%LIBS=-lm%"
sed -e "s%getline%thisgetline%g" -i src/*.c src/*.h
sed -e "3i\
-.PHONY: install
-" -i Makefile
+ .PHONY: install
+ " -i Makefile
'';
- src = fetchurl {
- url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz";
- sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
- };
-
meta = with lib; {
description = "Mail processing and filtering utility";
homepage = "http://www.procmail.org/";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/third_party/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index 479e497e34..9762927166 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -6,7 +6,7 @@ let
versions = {
stable = { version = "2.3.56.9"; sha256 = "sha256-vv01wGQkrasKKjpGSDeDqZbd1X5/iTfGXYN5Jwz+FKE="; };
- staging = { version = "2.3.57.0"; sha256 = "sha256-7o0AqgQcKYc6c+Hi3x5pC/pKJZPlEsYOYk9sC21+mvM="; };
+ latest = { version = "2.3.57.6"; sha256 = "sha256-ZCOtVmvNXDWLo9UMzxARCp+iyRTcy/ogd5sV0k86JG8="; };
};
override = { version, sha256 }: super: {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ptask/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ptask/default.nix
index b243f19418..7390037204 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ptask/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/ptask/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, makeWrapper, gtk3, json_c, taskwarrior }:
stdenv.mkDerivation rec {
- name = "ptask-1.0.0";
+ pname = "ptask";
+ version = "1.0.0";
src = fetchurl {
- url = "https://wpitchoune.net/ptask/files/${name}.tar.gz";
+ url = "https://wpitchoune.net/ptask/files/ptask-${version}.tar.gz";
sha256 = "13nirr7b29bv3w2zc8zxphhmc9ayhs61i11jl4819nabk7vy1kdq";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pueue/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pueue/default.nix
index ac79f5be84..4771666cc2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pueue/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/pueue/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "pueue";
- version = "1.0.3";
+ version = "1.0.4";
src = fetchFromGitHub {
owner = "Nukesor";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-1iAXLs3O7EV7LfbXnajlDm75tQtanFInfNWZmnittlk=";
+ sha256 = "sha256-tNTKX++LrWwuVGdmAjvBStNYp4p1ai12JwJmozo1GV0=";
};
- cargoSha256 = "sha256-x/qRNxZS++DBq5B9+/9eXN95QZN/FSLi+3XyJ06Y1hg=";
+ cargoSha256 = "sha256-t1d8K0v7kHPjH78lYCRCa4pyPCvyQT1kaQtVpoROZIE=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/pytrainer/default.nix b/third_party/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
index 05cc834591..d796915537 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/q4wine/default.nix b/third_party/nixpkgs/pkgs/applications/misc/q4wine/default.nix
new file mode 100644
index 0000000000..cb4014684f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/q4wine/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, mkDerivation, cmake, sqlite
+, qtbase, qtsvg, qttools, wrapQtAppsHook
+, icoutils # build and runtime deps.
+, wget, fuseiso, wine, sudo, which # runtime deps.
+}:
+
+mkDerivation rec {
+ pname = "q4wine";
+ version = "1.3.13";
+
+ src = fetchFromGitHub {
+ owner = "brezerk";
+ repo = "q4wine";
+ rev = "v${version}";
+ sha256 = "04gw5y3dxdpivm2xqacqq85fdzx7xkl0c3h3hdazljb0c3cxxs6h";
+ };
+
+ buildInputs = [
+ sqlite icoutils qtbase qtsvg qttools
+ ];
+
+ nativeBuildInputs = [ cmake wrapQtAppsHook ];
+
+ # Add runtime deps.
+ postInstall = ''
+ wrapProgram $out/bin/q4wine \
+ --prefix PATH : ${lib.makeBinPath [ icoutils wget fuseiso wine which ]}
+ '';
+
+ meta = with lib; {
+ homepage = "https://q4wine.brezblock.org.ua/";
+ description = "A Qt GUI for Wine to manage prefixes and applications";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ rkitover ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix b/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix
index bddcfa497d..8e19a311fc 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix b/third_party/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
index f2ce2bd441..c383baaaa9 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
@@ -5,22 +5,21 @@
, ffmpeg-full
, fetchFromGitHub
, openssh
+, netcat
, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "restream";
- version = "1.1";
+ version = "1.2.0";
src = fetchFromGitHub {
owner = "rien";
repo = pname;
rev = version;
- sha256 = "18z17chl7r5dg12xmr3f9gbgv97nslm8nijigd03iysaj6dhymp3";
+ sha256 = "0vyj0kng8c9inv2rbw1qdr43ic15s5x8fvk9mbw0vpc6g723x99g";
};
- nativeBuildInputs = [ makeWrapper ];
-
dontConfigure = true;
dontBuild = true;
@@ -33,10 +32,22 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
- postInstall = ''
- # `ffmpeg-full` is used here to bring in `ffplay`, which is used to display
- # the reMarkable framebuffer
- wrapProgram "$out/bin/restream" --suffix PATH ":" "${lib.makeBinPath [ ffmpeg-full lz4 openssh ]}"
+ postInstall = let
+ deps = [
+ # `ffmpeg-full` is used here to bring in `ffplay`, which is used
+ # to display the reMarkable framebuffer
+ ffmpeg-full
+ lz4
+ openssh
+ # Libressl netcat brings in `nc` which used for --uncompressed mode.
+ netcat
+ ];
+ in ''
+ # This `sed` command has the same effect as `wrapProgram`, except
+ # without .restream-wrapped store paths appearing everywhere.
+ sed -i \
+ '2i export PATH=$PATH''${PATH:+':'}${lib.makeBinPath deps}' \
+ "$out/bin/restream"
'';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix b/third_party/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
index 11373756f8..6a4beec6a5 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "rmapi";
- version = "0.0.15";
+ version = "0.0.18";
src = fetchFromGitHub {
owner = "juruen";
repo = "rmapi";
rev = "v${version}";
- sha256 = "sha256-ju54JSd3Zyye5YGLPEOkhY93ONh0b7eDSnvJlIawizE=";
+ sha256 = "sha256-Yrq21eiyNem9P219FxuQMHpagKQDaNsASwi2REaDAgk=";
};
- vendorSha256 = "sha256-SE/0a8QUJsWoGwkSiZqYx1eXuOIL3avJujyg8iSdcBU=";
+ vendorSha256 = "sha256-gu+BU2tL/xZ7D6lZ1ueO/9IB9H3NNm4mloCZaGqZskU=";
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/robo3t/default.nix b/third_party/nixpkgs/pkgs/applications/misc/robo3t/default.nix
index 41f3475a64..1499cfc40d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/robo3t/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/robo3t/default.nix
@@ -15,7 +15,7 @@
}:
let
- curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+ curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
in
stdenv.mkDerivation rec {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix b/third_party/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix
index 6c9e5f6fef..569ae6ef4c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix
@@ -1,24 +1,28 @@
{ lib, stdenv, fetchFromGitHub, rofi, gnused }:
stdenv.mkDerivation rec {
- rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
- name = "rofi-menugen-2015-12-28-${builtins.substring 0 7 rev}";
+ pname = "rofi-menugen";
+ version = "unstable-2015-12-28";
+
src = fetchFromGitHub {
owner = "octotep";
repo = "menugen";
- inherit rev;
+ rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
sha256 = "09fk9i6crw772qlc5zld35pcff1jq4jcag0syial2q000fbpjx5m";
};
- patchPhase = ''
+
+ postPatch = ''
sed -i -e "s|menugenbase|$out/bin/rofi-menugenbase|" menugen
sed -i -e "s|rofi |${rofi}/bin/rofi |" menugen
sed -i -e "s|sed |${gnused}/bin/sed |" menugenbase
'';
+
installPhase = ''
mkdir -p $out/bin
cp menugen $out/bin/rofi-menugen
cp menugenbase $out/bin/rofi-menugenbase
'';
+
meta = with lib; {
description = "Generates menu based applications using rofi";
homepage = "https://github.com/octotep/menugen";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/sbagen/default.nix b/third_party/nixpkgs/pkgs/applications/misc/sbagen/default.nix
index 215447ed4e..4ddfa6f9cf 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/sbagen/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/sbagen/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "sbagen-1.4.4";
+ pname = "sbagen";
+ version = "1.4.4";
src = fetchurl {
- url = "https://uazu.net/sbagen/${name}.tgz";
+ url = "https://uazu.net/sbagen/sbagen-${version}.tgz";
sha256 = "0w62yk1b0hq79kl0angma897yqa8p1ww0dwydf3zlwav333prkd2";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/scli/default.nix b/third_party/nixpkgs/pkgs/applications/misc/scli/default.nix
index 3605e7c416..3809283e62 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/scli/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/seatd/default.nix b/third_party/nixpkgs/pkgs/applications/misc/seatd/default.nix
index 0565c8add3..e142ec47af 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/seatd/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/sequeler/default.nix b/third_party/nixpkgs/pkgs/applications/misc/sequeler/default.nix
index 123e01fe79..7ba7d15478 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/sequeler/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/sfm/default.nix b/third_party/nixpkgs/pkgs/applications/misc/sfm/default.nix
index 355c5915db..800ea9419c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/sfm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/sfm/default.nix
@@ -2,19 +2,21 @@
stdenv.mkDerivation rec {
pname = "sfm";
- version = "0.3.1";
+ version = "0.4";
src = fetchFromGitHub {
owner = "afify";
repo = pname;
rev = "v${version}";
- hash = "sha256-NmafUezwKK9bYPAWDNhegyjqkb4GY/i1WEtQ9puIaig=";
+ hash = "sha256-VwPux6n+azpR4qDkzZJia95pJJOaFDBBoz6/VwlC0zw=";
};
configFile = lib.optionalString (conf!=null) (writeText "config.def.h" conf);
postPatch = lib.optionalString (conf!=null) "cp ${configFile} config.def.h";
+ makeFlags = [ "CC:=$(CC)" ];
+
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/slade/git.nix b/third_party/nixpkgs/pkgs/applications/misc/slade/git.nix
index f263c4ee74..124ae206c8 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/slade/git.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/slade/git.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
, cmake
, pkg-config
, wxGTK
@@ -15,7 +17,8 @@
}:
stdenv.mkDerivation {
- name = "slade-git-3.2.0.2021.05.13";
+ pname = "slade";
+ version = "unstable-2021-05-13";
src = fetchFromGitHub {
owner = "sirjuddington";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix b/third_party/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix
index bf8a9efb9f..94c47c23af 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/slides/default.nix b/third_party/nixpkgs/pkgs/applications/misc/slides/default.nix
index 23605f683a..a7c0f6f704 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/slides/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/slides/default.nix
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "slides";
- version = "0.6.2";
+ version = "0.7.2";
src = fetchFromGitHub {
owner = "maaslalani";
repo = "slides";
rev = "v${version}";
- sha256 = "sha256-D2ex9/XN5JMKwn+g1cB77UMquYW9NdTzhCCvVtTOBfU=";
+ sha256 = "02zdgn0pnjqharvmn9rww45yrja8dzww64s3fryxx4pm8g5km9nf";
};
checkInputs = [
@@ -21,7 +21,7 @@ buildGoModule rec {
go
];
- vendorSha256 = "sha256-pI5/1LJVP/ZH64Dy2rUoOXM21oqJ8KA0/L8ClGRb5UY=";
+ vendorSha256 = "06vb5xnss6ibgbsny6cadphfkzw8z3np5qgn3hp2wpf3hxgcnnvs";
ldflags = [
"-s"
diff --git a/third_party/nixpkgs/pkgs/applications/misc/slstatus/default.nix b/third_party/nixpkgs/pkgs/applications/misc/slstatus/default.nix
index 613d2f8e78..5badb7f1b3 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/slstatus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/slstatus/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libX11 ];
+ makeFlags = [ "CC:=$(CC)" ];
+
installFlags = [ "PREFIX=$(out)" ];
meta = {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/smos/default.nix b/third_party/nixpkgs/pkgs/applications/misc/smos/default.nix
index aa2f53b5a2..1039deb43a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/smos/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/smos/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A comprehensive self-management system";
- homepage = https://smos.online;
+ homepage = "https://smos.online";
license = licenses.mit;
maintainers = with maintainers; [ norfair ];
platforms = platforms.linux ++ platforms.darwin;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/smpq/default.nix b/third_party/nixpkgs/pkgs/applications/misc/smpq/default.nix
new file mode 100644
index 0000000000..fd6b5937b8
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/smpq/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, cmake, StormLib }:
+
+stdenv.mkDerivation rec {
+ pname = "smpq";
+ version = "1.6";
+
+ src = fetchurl {
+ url = "https://launchpad.net/smpq/trunk/${version}/+download/${pname}_${version}.orig.tar.gz";
+ sha256 = "1jqq5x3b17jy66x3kkf5hs5l322dx2v14djxxrqrnqp8bn5drlmm";
+ };
+
+ cmakeFlags = [
+ "-DWITH_KDE=OFF"
+ ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ StormLib ];
+
+ meta = with lib; {
+ description = "StormLib MPQ archiving utility";
+ homepage = "https://launchpad.net/smpq";
+ license = licenses.gpl3Only;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ aanderse karolchmist ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/snapmaker-luban/default.nix b/third_party/nixpkgs/pkgs/applications/misc/snapmaker-luban/default.nix
new file mode 100644
index 0000000000..84ad34637f
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/solaar/default.nix b/third_party/nixpkgs/pkgs/applications/misc/solaar/default.nix
index 641353f53d..e4e149df0e 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/solaar/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/solaar/default.nix
@@ -13,13 +13,13 @@
# logitech-udev-rules instead of adding this to services.udev.packages on NixOS
python3Packages.buildPythonApplication rec {
pname = "solaar";
- version = "1.0.6";
+ version = "1.1.0";
src = fetchFromGitHub {
owner = "pwr-Solaar";
repo = "Solaar";
rev = version;
- sha256 = "sha256-Ys0005hIQ+fT4oMeU5iFtbLNqn1WM6iLdIKGwdyn7BM=";
+ sha256 = "sha256-rNz296pKw2/WaryxHekWHSAS1jdTviZxXDgO/L/PJCU=";
};
nativeBuildInputs = [ wrapGAppsHook gdk-pixbuf ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/speedread/default.nix b/third_party/nixpkgs/pkgs/applications/misc/speedread/default.nix
index a7b9cb591a..451382cda3 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/speedread/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/speedread/default.nix
@@ -1,12 +1,13 @@
{ lib, stdenv, fetchFromGitHub, perl }:
stdenv.mkDerivation rec {
- name = "speedread-unstable-2016-09-21";
+ pname = "speedread";
+ version = "unstable-2016-09-21";
src = fetchFromGitHub {
- owner = "pasky";
- repo = "speedread";
- rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
+ owner = "pasky";
+ repo = "speedread";
+ rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
sha256 = "1h94jx3v18fdlc64lfmj2g5x63fjyqb8c56k5lihl7bva0xgdkxd";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix b/third_party/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
index e20b95922f..7bbe658115 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/sqls/default.nix b/third_party/nixpkgs/pkgs/applications/misc/sqls/default.nix
index d3ecfcbde2..2c89d31df3 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/sqls/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/sqls/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "sqls";
- version = "0.2.19";
+ version = "0.2.20";
src = fetchFromGitHub {
owner = "lighttiger2505";
repo = pname;
rev = "v${version}";
- sha256 = "1myypq9kdfbhl5h9h8d30a3pi89mix48wm1c38648ky9vhx0s4az";
+ sha256 = "sha256-QYxiWxgzuD+JymlXlVmzZOtex70JC93VmWljAFQJMPQ=";
};
- vendorSha256 = "13c7nv0anj260z34bd7w1hz0rkmsj9r1zz55qiwcr1vdgmvy84cz";
+ vendorSha256 = "sha256-fo5g6anMcKqdzLG8KCJ/T4uTOp1Z5Du4EtCHYkLgUpo=";
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.revision=${src.rev}" ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ssh-tools/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ssh-tools/default.nix
index 8740633262..2e79f69656 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ssh-tools/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/stag/default.nix b/third_party/nixpkgs/pkgs/applications/misc/stag/default.nix
index 03c90af236..f9c91d28f1 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/stag/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/stag/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv, fetchgit, curses }:
+{ lib, stdenv, fetchFromGitHub, curses }:
stdenv.mkDerivation {
- name = "stag-1.0";
+ pname = "stag";
+ version = "1.0";
- src = fetchgit {
- url = "https://github.com/seenaburns/stag.git";
+ src = fetchFromGitHub {
+ owner = "seenaburns";
+ repo = "stag";
rev = "90e2964959ea8242349250640d24cee3d1966ad6";
sha256 = "1yrzjhcwrxrxq5jj695wvpgb0pz047m88yq5n5ymkcw5qr78fy1v";
};
@@ -15,11 +17,11 @@ stdenv.mkDerivation {
make install PREFIX=$out
'';
- meta = {
+ meta = with lib; {
homepage = "https://github.com/seenaburns/stag";
description = "Terminal streaming bar graph passed through stdin";
- license = lib.licenses.bsdOriginal;
- maintainers = [ lib.maintainers.matthiasbeyer ];
- platforms = lib.platforms.unix;
+ license = licenses.bsdOriginal;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/stretchly/default.nix b/third_party/nixpkgs/pkgs/applications/misc/stretchly/default.nix
index 9c0cc7d08e..d333640fc5 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/stretchly/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/stretchly/default.nix
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "stretchly";
- version = "1.7.0";
+ version = "1.8.1";
src = fetchurl {
url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
- sha256 = "sha256-F6p+g0yuDMpNq+cVgA3ZhUwCIiIU1QfYM90lmaNnRWw=";
+ sha256 = "sha256-/v74vDGxD5iiOPeBXPAaV42JpyBjeJSO/Lk88pCkDng=";
};
icon = fetchurl {
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
runHook preInstall
mkdir -p $out/bin $out/share/${pname}/
- mv resources/app.asar $out/share/${pname}/
+ mv resources/app.asar* $out/share/${pname}/
mkdir -p $out/share/applications
ln -s ${desktopItem}/share/applications/* $out/share/applications/
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
homepage = "https://hovancik.net/stretchly";
downloadPage = "https://hovancik.net/stretchly/downloads/";
license = licenses.bsd2;
- maintainers = with maintainers; [ _1000101 ];
+ maintainers = with maintainers; [ _1000101 oxalica ];
platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch b/third_party/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch
deleted file mode 100644
index ab08195e79..0000000000
--- a/third_party/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 9c2278dad498b8e4040f30c80cf65b3a089ba218 Mon Sep 17 00:00:00 2001
-From: talyz
-Date: Fri, 14 Feb 2020 16:26:36 +0100
-Subject: [PATCH] Build tests again
-
-The tests were accidentally disabled in
-688095d0a7d22704b5c3282bc68b41ceca42ab7e. Since then, the code has
-drifted slightly: the synergy lib has been renamed from synergy to
-synlib in 4263fd17177d7717b04ac6d6ec62efa2f657ed74 and the curl
-dependency was dropped in 491bb2de000245a943b8298462c4a9d8f34c9a44.
-
-This reenables the tests, targets the right lib and removes the
-obsolete test.
----
- src/CMakeLists.txt | 2 +
- src/test/integtests/CMakeLists.txt | 2 +-
- .../integtests/arch/ArchInternetTests.cpp | 37 -------------------
- src/test/unittests/CMakeLists.txt | 2 +-
- 4 files changed, 4 insertions(+), 39 deletions(-)
- delete mode 100644 src/test/integtests/arch/ArchInternetTests.cpp
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index ab63a066..fee080ab 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -22,3 +22,5 @@ add_subdirectory(cmd)
- if (SYNERGY_BUILD_LEGACY_GUI)
- add_subdirectory(gui)
- endif (SYNERGY_BUILD_LEGACY_GUI)
-+
-+add_subdirectory(test)
-diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt
-index f39968a3..096ba3d5 100644
---- a/src/test/integtests/CMakeLists.txt
-+++ b/src/test/integtests/CMakeLists.txt
-@@ -68,4 +68,4 @@ endif()
-
- add_executable(integtests ${sources})
- target_link_libraries(integtests
-- arch base client common io ipc mt net platform server synergy gtest gmock ${libs} ${OPENSSL_LIBS})
-+ arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS})
-diff --git a/src/test/integtests/arch/ArchInternetTests.cpp b/src/test/integtests/arch/ArchInternetTests.cpp
-deleted file mode 100644
-index 95823e9f..00000000
---- a/src/test/integtests/arch/ArchInternetTests.cpp
-+++ /dev/null
-@@ -1,37 +0,0 @@
--/*
-- * synergy -- mouse and keyboard sharing utility
-- * Copyright (C) 2014-2016 Symless Ltd.
-- *
-- * This package is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * found in the file LICENSE that should have accompanied this file.
-- *
-- * This package is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program. If not, see .
-- */
--
--#include "arch/Arch.h"
--
--#include "test/global/gtest.h"
--
--#define TEST_URL "https://symless.com/tests/?testString"
--//#define TEST_URL "http://localhost/synergy/tests/?testString"
--
--TEST(ArchInternetTests, get)
--{
-- ARCH_INTERNET internet;
-- String result = internet.get(TEST_URL);
-- ASSERT_EQ("Hello world!", result);
--}
--
--TEST(ArchInternetTests, urlEncode)
--{
-- ARCH_INTERNET internet;
-- String result = internet.urlEncode("hello=+&world");
-- ASSERT_EQ("hello%3D%2B%26world", result);
--}
-diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt
-index 54131eb2..46307e90 100644
---- a/src/test/unittests/CMakeLists.txt
-+++ b/src/test/unittests/CMakeLists.txt
-@@ -68,4 +68,4 @@ endif()
-
- add_executable(unittests ${sources})
- target_link_libraries(unittests
-- arch base client server common io net platform server synergy mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS})
-+ arch base client server common io net platform server synlib mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS})
---
-2.25.0
-
diff --git a/third_party/nixpkgs/pkgs/applications/misc/synergy/default.nix b/third_party/nixpkgs/pkgs/applications/misc/synergy/default.nix
index 8d3cc8c309..803456dc85 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/synergy/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/synergy/default.nix
@@ -1,41 +1,90 @@
-{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools
-, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver
-, xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat
-, withGUI ? true, wrapQtAppsHook }:
+{ withGUI ? true
+, stdenv
+, lib
+, fetchpatch
+, fetchFromGitHub
+, wrapQtAppsHook
+
+, cmake
+, openssl
+, pcre
+, util-linux
+, libselinux
+, libsepol
+, pkg-config
+, gdk-pixbuf
+, libnotify
+, qttools
+, xlibsWrapper
+, libX11
+, libXi
+, libXtst
+, libXrandr
+, xinput
+, avahi-compat
+
+# macOS / darwin
+, ApplicationServices
+, Carbon
+, Cocoa
+, CoreServices
+, ScreenSaver
+}:
stdenv.mkDerivation rec {
pname = "synergy";
- version = "1.13.1.41";
+ version = "1.14.1.32";
src = fetchFromGitHub {
owner = "symless";
repo = "synergy-core";
rev = "${version}-stable";
fetchSubmodules = true;
- sha256 = "1phg0szc9g018zxs5wbys4drzq1cdhyzajfg45l6a3fmi6qdi1kw";
+ sha256 = "123p75rm22vb3prw1igh0yii2y4bvv7r18iykfvmnr41hh4w7z2p";
};
- patches = lib.optional stdenv.isDarwin ./macos_build_fix.patch;
+ patches = [ ./macos_build_fix.patch ];
postPatch = ''
substituteInPlace src/gui/src/SslCertificate.cpp \
--replace 'kUnixOpenSslCommand[] = "openssl";' 'kUnixOpenSslCommand[] = "${openssl}/bin/openssl";'
'';
- cmakeFlags = lib.optional (!withGUI) "-DSYNERGY_BUILD_LEGACY_GUI=OFF";
+ cmakeFlags = lib.optionals (!withGUI) [
+ "-DSYNERGY_BUILD_LEGACY_GUI=OFF"
+ ] ++ lib.optionals stdenv.isDarwin [
+ "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.09"
+ ];
+ NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-inconsistent-missing-override";
- nativeBuildInputs = [ cmake ] ++ lib.optional withGUI wrapQtAppsHook;
+ nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
dontWrapQtApps = true;
buildInputs = [
openssl
+ pcre
] ++ lib.optionals withGUI [
qttools
] ++ lib.optionals stdenv.isDarwin [
- ApplicationServices Carbon Cocoa CoreServices ScreenSaver
+ ApplicationServices
+ Carbon
+ Cocoa
+ CoreServices
+ ScreenSaver
] ++ lib.optionals stdenv.isLinux [
- xlibsWrapper libX11 libXi libXtst libXrandr xinput avahi-compat
+ util-linux
+ libselinux
+ libsepol
+ xlibsWrapper
+ libX11
+ libXi
+ libXtst
+ libXrandr
+ xinput
+ avahi-compat
+ gdk-pixbuf
+ libnotify
];
installPhase = ''
@@ -60,7 +109,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Share one mouse and keyboard between multiple computers";
- homepage = "https://synergy-project.org/";
+ homepage = "https://symless.com/synergy";
license = licenses.gpl2;
maintainers = with maintainers; [ talyz ];
platforms = platforms.all;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch b/third_party/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
index 50087a2c4b..c304f3bfdd 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
+++ b/third_party/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
@@ -1,20 +1,29 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c1e78d1d..13639ba1 100644
+index 50e712fa..d39c2ce4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -328,14 +328,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- ${OPENSSL_ROOT}/lib/libssl.lib
- ${OPENSSL_ROOT}/lib/libcrypto.lib
- )
--elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-- set (OPENSSL_ROOT /usr/local/opt/openssl)
-- include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
-- set (OPENSSL_LIBS
-- ${OPENSSL_ROOT}/lib/libssl.a
-- ${OPENSSL_ROOT}/lib/libcrypto.a
-- )
--elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|.*BSD|DragonFly")
-+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|Darwin|.*BSD|DragonFly")
- set (OPENSSL_LIBS ssl crypto)
- else()
- message (FATAL_ERROR "Couldn't find OpenSSL")
+@@ -326,9 +326,6 @@ endif()
+ # Apple has to use static libraries because
+ # "Use of the Apple-provided OpenSSL libraries by apps is strongly discouraged."
+ # https://developer.apple.com/library/archive/documentation/Security/Conceptual/cryptoservices/SecureNetworkCommunicationAPIs/SecureNetworkCommunicationAPIs.html
+-if(APPLE)
+- set(OPENSSL_USE_STATIC_LIBS TRUE)
+-endif()
+ find_package(OpenSSL REQUIRED)
+
+ #
+diff --git a/src/gui/src/OSXHelpers.mm b/src/gui/src/OSXHelpers.mm
+index 0c98afc1..38c190a6 100644
+--- a/src/gui/src/OSXHelpers.mm
++++ b/src/gui/src/OSXHelpers.mm
+@@ -20,10 +20,6 @@
+ #import
+ #import
+ #import
+-#import
+-#import
+-#import
+-#import
+
+ #import
+
diff --git a/third_party/nixpkgs/pkgs/applications/misc/tasknc/default.nix b/third_party/nixpkgs/pkgs/applications/misc/tasknc/default.nix
index d24a7d3e0d..5250581762 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/tasknc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/tasknc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, perl, ncurses5, taskwarrior }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, perl, ncurses5, taskwarrior }:
stdenv.mkDerivation rec {
version = "2020-12-17";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "0jrv2k1yizfdjndbl06lmy2bb62ky2rjdk308967j31c5kqqnw56";
};
+ # Pull pending upstream inclusion for ncurses-6.3:
+ # https://github.com/lharding/tasknc/pull/57
+ patches = [
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/lharding/tasknc/commit/f74ea0641e9bf287acf22fac9f6eeea571b01800.patch";
+ sha256 = "18a90zj85sw2zfnfcv055nvi0lx3h8lcgsyabdfk94ksn78pygrv";
+ })
+ ];
+
nativeBuildInputs = [
makeWrapper
perl # For generating the man pages with pod2man
diff --git a/third_party/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix b/third_party/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
index 93a8d6e088..ae25ce358d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix b/third_party/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix
index 48ae142c1a..c6a700753f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "terminal-typeracer";
- version = "2.0.4";
+ version = "2.0.8";
src = fetchFromGitLab {
owner = "ttyperacer";
repo = pname;
rev = "v${version}";
- sha256 = "RjGHY6KN6thxbg9W5FRwaAmUeD+5/WCeMCvzFHqZ+J4=";
+ sha256 = "Fb2MCQaQaJseXa8Csesz1s5Yel4wcSMxfMeKSW7rlU4=";
};
- cargoSha256 = "sha256-A7O/e8PAcW36i8pT71SkWoWDIiMuEhSS9SmASNzNCjk=";
+ cargoSha256 = "sha256-SAVDSUm2jpDwTfwo4L6MVUKzBxZvCfjn4UNIGUJziSY=";
buildInputs = [ openssl sqlite ] ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
nativeBuildInputs = [ pkg-config ];
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://gitlab.com/ttyperacer/terminal-typeracer";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ yoctocell ];
- platforms = platforms.x86_64;
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/thedesk/default.nix b/third_party/nixpkgs/pkgs/applications/misc/thedesk/default.nix
new file mode 100644
index 0000000000..42f4d36eea
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/thedesk/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, gtk3, libxshmfence, mesa, nss }:
+
+stdenv.mkDerivation rec {
+ pname = "thedesk";
+ version = "22.3.1";
+
+ src = fetchurl {
+ url = "https://github.com/cutls/TheDesk/releases/download/v${version}/${pname}_${version}_amd64.deb";
+ sha256 = "sha256-5KB88zMgwfObgmcMTe6R+oG48qLHrMht6vM1EvI+QFY=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ makeWrapper
+ ];
+
+ buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv usr $out
+ mv opt $out
+
+ substituteInPlace $out/share/applications/thedesk.desktop \
+ --replace '/opt/TheDesk' $out/bin
+
+ makeWrapper ${electron}/bin/electron $out/bin/thedesk \
+ --add-flags $out/opt/TheDesk/resources/app.asar
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Mastodon/Misskey Client for PC";
+ homepage = "https://thedesk.top";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/todiff/default.nix b/third_party/nixpkgs/pkgs/applications/misc/todiff/default.nix
index 752ab35461..14f03cdc8c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/todiff/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/todiff/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "0vrn1vc3rwabv6l2r1qb7mkcxbp75q79bfl3rxhyi51ra3ij507r";
- checkPhase = "cargo test --features=integration_tests";
+ checkFeatures = [ "integration_tests" ];
meta = with lib; {
description = "Human-readable diff for todo.txt files";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/todoist/default.nix b/third_party/nixpkgs/pkgs/applications/misc/todoist/default.nix
index 68388376f8..640cfc6e12 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/todoist/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/todoist/default.nix
@@ -2,19 +2,23 @@
buildGoModule rec {
pname = "todoist";
- version = "0.15.0";
+ version = "0.16.0";
src = fetchFromGitHub {
owner = "sachaos";
repo = "todoist";
rev = "v${version}";
- sha256 = "0d3c621jaqxd6i58xm6nvi0avrh5mk23r169i95bn73igzw62w33";
+ sha256 = "sha256-cfhwbL7RaeD5LWxlfqnHfPPPkC5AA3Z034p+hlFBWtg=";
};
- vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky";
+ vendorSha256 = "sha256-ly+OcRo8tGeNX4FnqNVaqjPx/A1FALOnScxs04lIOiU=";
doCheck = false;
+ postPatch = ''
+ substituteInPlace main.go --replace '0.15.0' '${version}'
+ '';
+
meta = {
homepage = "https://github.com/sachaos/todoist";
description = "Todoist CLI Client";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/tootle/default.nix b/third_party/nixpkgs/pkgs/applications/misc/tootle/default.nix
index 8c111ae6aa..f29c471d04 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/tootle/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/tootle/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, vala_0_52
+, vala
, meson
, ninja
, pkg-config
@@ -30,14 +31,27 @@ stdenv.mkDerivation rec {
sha256 = "NRM7GiJA8c5z9AvXpGXtMl4ZaYN2GauEIbjBmoY4pdo=";
};
+ patches = [
+ # Adhere to GLib.Object naming conventions for properties
+ # https://github.com/bleakgrey/tootle/pull/339
+ (fetchpatch {
+ url = "https://git.alpinelinux.org/aports/plain/community/tootle/0001-Adhere-to-GLib.Object-naming-conventions-for-propert.patch?id=001bf1ce9695ddb0bbb58b44433d54207c15b0b5";
+ sha256 = "sha256-B62PhMRkU8P3jmnIUq1bYWztLtO2oNcDsXnAYbJGpso=";
+ })
+ # Use reason_phrase instead of get_phrase
+ # https://github.com/bleakgrey/tootle/pull/336
+ (fetchpatch {
+ url = "https://git.alpinelinux.org/aports/plain/community/tootle/0002-Use-reason_phrase-instead-of-get_phrase.patch?id=001bf1ce9695ddb0bbb58b44433d54207c15b0b5";
+ sha256 = "sha256-rm5NFLeAL2ilXpioywgCR9ppoq+MD0MLyVaBmdzVkqU=";
+ })
+ ];
+
nativeBuildInputs = [
meson
ninja
pkg-config
python3
- # Does not build with vala 0.54
- # https://github.com/bleakgrey/tootle/issues/337
- vala_0_52
+ vala
wrapGAppsHook
];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/translate-shell/default.nix b/third_party/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
index 319ba3643d..be2ee1e7a8 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses, hexdump }:
stdenv.mkDerivation rec {
pname = "translate-shell";
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
rlwrap
groff
fribidi
+ hexdump
]}
'';
diff --git a/third_party/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix b/third_party/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
index 708596d407..b390c7bf9d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ncurses }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses }:
stdenv.mkDerivation rec {
pname = "tty-solitaire";
@@ -11,9 +11,21 @@ stdenv.mkDerivation rec {
sha256 = "sha256-zMLNWJieHxHALFQoSkdAxGbUBGuZnznLX86lI3P21F0=";
};
- buildInputs = [ ncurses ];
+ patches = [
+ # Patch pending upstream inclusion to support ncurses-6.3:
+ # https://github.com/mpereira/tty-solitaire/pull/61
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/mpereira/tty-solitaire/commit/4d066c564d086ce272b78cb8f80717a7fb83c261.patch";
+ sha256 = "sha256-E1XVG0be6JH3K1y7UPap93s8xk8Nk0dKLdKHcJ7mA8E=";
+ })
+ ];
- patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
+ postPatch = ''
+ sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile
+ '';
+
+ buildInputs = [ ncurses ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ttyper/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ttyper/default.nix
index c3001c3337..442c2a9168 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ttyper/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/ttyper/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "ttyper";
- version = "0.3.0";
+ version = "0.3.1";
src = fetchFromGitHub {
owner = "max-niederman";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-9vcoK2mFEivTSZE3KoQRHUr3AfQ/aN5eWP//Jagw3gU=";
+ sha256 = "sha256-lluBxYZQWygX9aujNK251bDilNNErVNr4WDoyqSPTiQ=";
};
- cargoSha256 = "sha256-VzO32b5oAoXR/Ei9up00XRM63I5kuG68TeX4KBCXIdo=";
+ cargoSha256 = "sha256-GQNNl8/Y/jHDBGJQ7LWNpgbOgWaV/3UAMgYLJFJmQ3Y=";
meta = with lib; {
description = "Terminal-based typing test";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/tut/default.nix b/third_party/nixpkgs/pkgs/applications/misc/tut/default.nix
index 8e84f56c84..0a9c2d38fa 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/tut/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/tut/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "tut";
- version = "0.0.33";
+ version = "0.0.41";
src = fetchFromGitHub {
owner = "RasmusLindroth";
repo = pname;
rev = version;
- sha256 = "sha256-8aa3LYLHjodyYradF2NBuZReHTYBf9TvfVCoDs0gAUw=";
+ sha256 = "sha256-13d3EE/rswcHRALUfL46qpKYJUDwGiou5kUz+nCC8VQ=";
};
- vendorSha256 = "sha256-DcMsxqUO9H1q5+njoOuxQ6l8ifSFuS1jdWSvY/5MDm8=";
+ vendorSha256 = "sha256-RtvzQvZIFdLo24U9IWcoL9qnf4/q/+1UCrb7dcRKEIE=";
meta = with lib; {
description = "A TUI for Mastodon with vim inspired keys";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/twmn/default.nix b/third_party/nixpkgs/pkgs/applications/misc/twmn/default.nix
index b7974966be..d4b4d1d9d8 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/twmn/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/twmn/default.nix
@@ -1,7 +1,8 @@
{ lib, mkDerivation, fetchFromGitHub, qtbase, qtx11extras, qmake, pkg-config, boost }:
mkDerivation {
- name = "twmn-git-2018-10-01";
+ pname = "twmn";
+ version = "unstable-2018-10-01";
src = fetchFromGitHub {
owner = "sboli";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/ulauncher/default.nix b/third_party/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
index d2df076dc2..63a8b485df 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
@@ -33,6 +33,7 @@ python3Packages.buildPythonApplication rec {
distutils_extra
intltool
wrapGAppsHook
+ gdk-pixbuf
];
buildInputs = [
@@ -58,6 +59,7 @@ python3Packages.buildPythonApplication rec {
pyinotify
python-Levenshtein
pyxdg
+ pycairo
requests
websocket-client
];
@@ -105,7 +107,10 @@ python3Packages.buildPythonApplication rec {
# do not double wrap
dontWrapGApps = true;
preFixup = ''
- makeWrapperArgs+=("''${gappsWrapperArgs[@]}" --prefix PATH : "${lib.makeBinPath [ wmctrl ]}")
+ makeWrapperArgs+=(
+ "''${gappsWrapperArgs[@]}"
+ --prefix PATH : "${lib.makeBinPath [ wmctrl ]}"
+ )
'';
passthru = {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix b/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix
index 72c0fefd4e..cca8032e18 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix
@@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "viking";
- version = "1.9";
+ version = "1.10";
src = fetchurl {
url = "mirror://sourceforge/viking/viking-${version}.tar.bz2";
- sha256 = "0fybpy6k0vmjp231h5ckysl3c0rcnh2afznijwq6y78j4hywyjpy";
+ sha256 = "sha256-lFXIlfmLwT3iS9ayNM0PHV7NwbBotMvG62ZE9hJuRaw=";
};
nativeBuildInputs = [ docbook_xml_dtd_45 docbook_xsl intltool itstool libxslt pkg-config wrapGAppsHook yelp-tools ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/visidata/default.nix b/third_party/nixpkgs/pkgs/applications/misc/visidata/default.nix
index b1b92ebe2d..6c1f035dfe 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/visidata/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/visidata/default.nix
@@ -9,6 +9,7 @@
, openpyxl
, xlrd
, h5py
+, odfpy
, psycopg2
, pyshp
, fonttools
@@ -24,13 +25,13 @@
}:
buildPythonApplication rec {
pname = "visidata";
- version = "2.6.1";
+ version = "2.7.1";
src = fetchFromGitHub {
owner = "saulpw";
repo = "visidata";
rev = "v${version}";
- sha256 = "1dmiy87x0yc0d594v3d3km13dl851mx7ym1vgh3bg91llg8ykg33";
+ sha256 = "13s1541n1sr2rkfk1qpsm61y2q773x6fs4cwin660qq4bzmgymhy";
};
propagatedBuildInputs = [
@@ -60,6 +61,7 @@ buildPythonApplication rec {
tabulate
wcwidth
zstandard
+ odfpy
setuptools
] ++ lib.optionals withPcap [ dpkt dnslib ];
@@ -88,7 +90,7 @@ buildPythonApplication rec {
meta = {
description = "Interactive terminal multitool for tabular data";
license = lib.licenses.gpl3;
- maintainers = [ lib.maintainers.raskin ];
+ maintainers = with lib.maintainers; [ raskin markus1189 ];
homepage = "http://visidata.org/";
changelog = "https://github.com/saulpw/visidata/blob/v${version}/CHANGELOG.md";
};
diff --git a/third_party/nixpkgs/pkgs/applications/misc/waybar/default.nix b/third_party/nixpkgs/pkgs/applications/misc/waybar/default.nix
index a38c1002a0..38ea7c909c 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/waybar/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -10,7 +10,6 @@
, gtkmm3
, libsigcxx
, jsoncpp
-, fmt
, scdoc
, spdlog
, gtk-layer-shell
@@ -51,7 +50,7 @@ stdenv.mkDerivation rec {
strictDeps = false;
buildInputs = with lib;
- [ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date libxkbcommon ]
+ [ wayland wlroots gtkmm3 libsigcxx jsoncpp spdlog gtk-layer-shell howard-hinnant-date libxkbcommon ]
++ optional traySupport libdbusmenu-gtk3
++ optional pulseSupport libpulseaudio
++ optional sndioSupport sndio
diff --git a/third_party/nixpkgs/pkgs/applications/misc/whalebird/default.nix b/third_party/nixpkgs/pkgs/applications/misc/whalebird/default.nix
new file mode 100644
index 0000000000..b2475bf1d8
--- /dev/null
+++ b/third_party/nixpkgs/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.6";
+
+ src = fetchurl {
+ url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
+ sha256 = "sha256-Q67y6VO7U8EatMNWyJo4f9IHKylQSX7bNR0DH4bnH+A=";
+ };
+
+ 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/third_party/nixpkgs/pkgs/applications/misc/wike/default.nix b/third_party/nixpkgs/pkgs/applications/misc/wike/default.nix
index 41722edc4c..0769470ca7 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/wike/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/wike/default.nix
@@ -14,13 +14,13 @@ let
]);
in stdenv.mkDerivation rec {
pname = "wike";
- version = "1.5.7";
+ version = "1.6.2";
src = fetchFromGitHub {
owner = "hugolabe";
repo = "Wike";
rev = version;
- sha256 = "sha256-SB+ApuSovqQCaZYPhH+duf+c07JDSSCRz8hTVhEa4gY=";
+ sha256 = "sha256-23tmp0Cyr6O7Z2loLI0PHOxJGyE27RNmY7PoKBctt44=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/wmname/default.nix b/third_party/nixpkgs/pkgs/applications/misc/wmname/default.nix
index cb4f5ec344..45e7cf3d8f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/wmname/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/wmname/default.nix
@@ -1,16 +1,23 @@
{ lib, stdenv, fetchurl, libX11 }:
stdenv.mkDerivation rec {
- name = "wmname-0.1";
+ pname = "wmname";
+ version = "0.1";
src = fetchurl {
- url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ url = "https://dl.suckless.org/tools/wmname-${version}.tar.gz";
sha256 = "559ad188b2913167dcbb37ecfbb7ed474a7ec4bbcb0129d8d5d08cb9208d02c5";
};
+ postPatch = ''
+ substituteInPlace Makefile --replace "@strip" "#@strip"
+ '';
+
buildInputs = [ libX11 ];
- preConfigure = ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'';
+ makeFlags = [ "CC:=$(CC)" ];
+
+ installFlags = [ "PREFIX=$(out)" ];
meta = {
description = "Prints or set the window manager name property of the root window";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/wtf/default.nix b/third_party/nixpkgs/pkgs/applications/misc/wtf/default.nix
index ea7986595f..6fdfe92da2 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/wtf/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/wtf/default.nix
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "wtf";
- version = "0.39.2";
+ version = "0.40.0";
src = fetchFromGitHub {
owner = "wtfutil";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-nP56HzjtIg9EIOBda9TQl8soUqlGfRmixidWrmQ7+vs=";
- };
+ sha256 = "0hd5gnydxfncsmm7c58lvhkpnyxknvicc8f58xfh74azf363wcvm";
+ };
- vendorSha256 = "sha256-yD4BUauYvyGk/D0Gr5Z15xWPtI/ZR9xTbmeS6RAxw1o=";
+ vendorSha256 = "1pkdfg042kg3b6m5rf044gz5yg6vp3bbsay1mrrbaysnb3gs51dq";
doCheck = false;
@@ -35,6 +35,7 @@ buildGoModule rec {
meta = with lib; {
description = "The personal information dashboard for your terminal";
homepage = "https://wtfutil.com/";
+ changelog = "https://github.com/wtfutil/wtf/raw/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ kalbasit ];
platforms = platforms.linux ++ platforms.darwin;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xcruiser/default.nix b/third_party/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
index db7fe260b9..d57eb48781 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
@@ -1,12 +1,13 @@
{ lib, stdenv, fetchurl, gccmakedep, imake, libXt, libXaw, libXpm, libXext }:
-stdenv.mkDerivation {
- name = "xcruiser-0.30";
+stdenv.mkDerivation rec {
+ pname = "xcruiser";
+ version = "0.30";
src = fetchurl {
- url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz";
- sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
- };
+ url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-${version}/xcruiser-${version}.tar.gz";
+ sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
+ };
nativeBuildInputs = [ gccmakedep imake ];
buildInputs = [ libXt libXaw libXpm libXext ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xfe/default.nix b/third_party/nixpkgs/pkgs/applications/misc/xfe/default.nix
index 17e58cb54d..d59b936608 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xfe/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xfe/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, fox, pkg-config, gettext, xlibsWrapper, gcc, intltool, file, libpng }:
stdenv.mkDerivation rec {
- name = "xfe-1.42";
+ pname = "xfe";
+ version = "1.42";
src = fetchurl {
- url = "mirror://sourceforge/xfe/${name}.tar.gz";
+ url = "mirror://sourceforge/xfe/xfe-${version}.tar.gz";
sha256 = "1v1v0vcbnm30kpyd3rj8f56yh7lfnwy7nbs9785wi229b29fiqx1";
};
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- meta = {
+ meta = with lib; {
description = "MS-Explorer like file manager for X";
longDescription = ''
X File Explorer (Xfe) is an MS-Explorer like file manager for X.
@@ -25,8 +26,8 @@ stdenv.mkDerivation rec {
Xfe aims to be the filemanager of choice for all the Unix addicts!
'';
homepage = "https://sourceforge.net/projects/xfe/";
- license = lib.licenses.gpl2;
- maintainers = [];
- platforms = lib.platforms.linux;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xfontsel/default.nix b/third_party/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
index 365f621786..d056dd66e8 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
@@ -2,17 +2,20 @@
# at https://www.x.org/releases/individual/.
# That is why this expression is not inside pkgs.xorg
-{lib, stdenv, fetchurl, makeWrapper, libX11, pkg-config, libXaw}:
+{ lib, stdenv, fetchurl, makeWrapper, libX11, pkg-config, libXaw }:
+
stdenv.mkDerivation rec {
- name = "xfontsel-1.0.6";
+ pname = "xfontsel";
+ version = "1.0.6";
src = fetchurl {
- url = "mirror://xorg/individual/app/${name}.tar.bz2";
+ url = "mirror://xorg/individual/app/xfontsel-${version}.tar.bz2";
sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
};
nativeBuildInputs = [ pkg-config makeWrapper ];
- buildInputs = [libX11 libXaw];
+
+ buildInputs = [ libX11 libXaw ];
# Without this, it gets Xmu as a dependency, but without rpath entry
NIX_LDFLAGS = "-lXmu";
@@ -26,11 +29,11 @@ stdenv.mkDerivation rec {
--set XAPPLRESDIR $out/share/X11/app-defaults
'';
- meta = {
+ meta = with lib; {
homepage = "https://www.x.org/";
description = "Allows testing the fonts available in an X server";
- license = lib.licenses.free;
- maintainers = with lib.maintainers; [viric];
- platforms = with lib.platforms; linux ++ darwin;
+ license = licenses.free;
+ maintainers = with maintainers; [ viric ];
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xmrig/moneroocean.nix b/third_party/nixpkgs/pkgs/applications/misc/xmrig/moneroocean.nix
index 431aac070f..8e6f1d9b6f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xmrig/moneroocean.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xmrig/moneroocean.nix
@@ -2,13 +2,13 @@
xmrig.overrideAttrs (oldAttrs: rec {
pname = "xmrig-mo";
- version = "6.15.0-mo1";
+ version = "6.15.3-mo1";
src = fetchFromGitHub {
owner = "MoneroOcean";
repo = "xmrig";
rev = "v${version}";
- sha256 = "sha256-2JT315JbjiU8gAwROZL820MYC/v3MPtJVsN+vsf4KDQ=";
+ sha256 = "sha256-oR9zn73tAgn98tZKvP+2kU1imUKvLz0oNYF+fwFvIA0=";
};
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xpdf/default.nix b/third_party/nixpkgs/pkgs/applications/misc/xpdf/default.nix
index e57fb75c11..eb5ebf3a71 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xpdf/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix b/third_party/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
index 065ca81315..61c696f130 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv, fetchurl
+{ lib
+, stdenv
+, fetchurl
}:
stdenv.mkDerivation {
- name = "libxpdf-3.02pl5";
+ pname = "libxpdf";
+ version = "3.02pl5";
src = fetchurl {
url = "https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xrq/default.nix b/third_party/nixpkgs/pkgs/applications/misc/xrq/default.nix
index e8e6490cbd..22ad3d789a 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xrq/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xrq/default.nix
@@ -1,7 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, libX11}:
+{ lib, stdenv, fetchFromGitHub, libX11 }:
stdenv.mkDerivation {
- name = "xrq-unstable-2016-01-15";
+ pname = "xrq";
+ version = "unstable-2016-01-15";
src = fetchFromGitHub {
owner = "arianon";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/xxkb/default.nix b/third_party/nixpkgs/pkgs/applications/misc/xxkb/default.nix
index b579579195..d6514e5851 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/xxkb/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/xxkb/default.nix
@@ -1,21 +1,35 @@
-{ lib, stdenv, fetchurl, libX11, libXt, libXext, libXpm, imake, gccmakedep
-, svgSupport ? false, librsvg, glib, gdk-pixbuf, pkg-config
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXt
+, libXext
+, libXpm
+, imake
+, gccmakedep
+, svgSupport ? false
+, librsvg
+, glib
+, gdk-pixbuf
+, pkg-config
}:
-assert svgSupport ->
- librsvg != null && glib != null && gdk-pixbuf != null && pkg-config != null;
-
stdenv.mkDerivation rec {
- name = "xxkb-1.11.1";
+ pname = "xxkb";
+ version = "1.11.1";
src = fetchurl {
- url = "mirror://sourceforge/xxkb/${name}-src.tar.gz";
+ url = "mirror://sourceforge/xxkb/xxkb-${version}-src.tar.gz";
sha256 = "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf";
};
nativeBuildInputs = [ imake gccmakedep ];
+
buildInputs = [
- libX11 libXt libXext libXpm
+ libX11
+ libXt
+ libXext
+ libXpm
] ++ lib.optionals svgSupport [ librsvg glib gdk-pixbuf pkg-config ];
outputs = [ "out" "man" ];
@@ -33,11 +47,11 @@ stdenv.mkDerivation rec {
installTargets = [ "install" "install.man" ];
- meta = {
+ meta = with lib; {
description = "A keyboard layout indicator and switcher";
homepage = "http://xxkb.sourceforge.net/";
- license = lib.licenses.artistic2;
- maintainers = with lib.maintainers; [ rasendubi ];
- platforms = lib.platforms.linux;
+ license = licenses.artistic2;
+ maintainers = with maintainers; [ rasendubi ];
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/yambar/default.nix b/third_party/nixpkgs/pkgs/applications/misc/yambar/default.nix
index 96b44dc896..45dba0a931 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/yambar/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/yambar/default.nix
@@ -1,35 +1,34 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
, fetchFromGitea
-, pkg-config
-, meson
-, ninja
-, scdoc
, alsa-lib
, fcft
, json_c
, libmpdclient
+, libxcb
, libyaml
+, meson
+, ninja
, pixman
+, pkg-config
+, scdoc
, tllist
, udev
, wayland
-, wayland-scanner
, wayland-protocols
-, waylandSupport ? false
-# Xorg backend
-, libxcb
+, wayland-scanner
, xcbutil
, xcbutilcursor
, xcbutilerrors
, xcbutilwm
+, waylandSupport ? true
+, x11Support ? true
}:
let
- # Courtesy of sternenseemann and FRidh, commit c9a7fdfcfb420be8e0179214d0d91a34f5974c54
+ # Courtesy of sternenseemann and FRidh
mesonFeatureFlag = opt: b: "-D${opt}=${if b then "enabled" else "disabled"}";
in
-
stdenv.mkDerivation rec {
pname = "yambar";
version = "1.7.0";
@@ -59,9 +58,10 @@ stdenv.mkDerivation rec {
pixman
tllist
udev
+ ] ++ lib.optionals (waylandSupport) [
wayland
wayland-protocols
- ] ++ lib.optionals (!waylandSupport) [
+ ] ++ lib.optionals (x11Support) [
xcbutil
xcbutilcursor
xcbutilerrors
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
mesonBuildType = "release";
mesonFlags = [
- (mesonFeatureFlag "backend-x11" (!waylandSupport))
+ (mesonFeatureFlag "backend-x11" x11Support)
(mesonFeatureFlag "backend-wayland" waylandSupport)
];
@@ -84,9 +84,9 @@ stdenv.mkDerivation rec {
X11 and Wayland, that goes to great lengths to be both CPU and battery
efficient - polling is only done when absolutely necessary.
- It has a number of modules that provide information in the form of
- tags. For example, the clock module has a date tag that contains the
- current date.
+ It has a number of modules that provide information in the form of tags.
+ For example, the clock module has a date tag that contains the current
+ date.
The modules do not know how to present the information though. This is
instead done by particles. And the user, you, decides which particles (and
diff --git a/third_party/nixpkgs/pkgs/applications/misc/yarssr/default.nix b/third_party/nixpkgs/pkgs/applications/misc/yarssr/default.nix
index 93e8f1fc9d..d031f63a09 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/yarssr/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/yarssr/default.nix
@@ -2,16 +2,33 @@
let
perlDeps = with perlPackages; [
- Glib Gtk2 Gnome2 Pango Cairo Gnome2Canvas Gnome2VFS Gtk2GladeXML Gtk2TrayIcon
- XMLLibXML XMLSAXBase XMLParser XMLRSS
+ Glib
+ Gtk2
+ Gnome2
+ Pango
+ Cairo
+ Gnome2Canvas
+ Gnome2VFS
+ Gtk2GladeXML
+ Gtk2TrayIcon
+ XMLLibXML
+ XMLSAXBase
+ XMLParser
+ XMLRSS
HTMLParser
- DateTime DateTimeFormatMail DateTimeFormatW3CDTF DateTimeLocale DateTimeTimeZone
+ DateTime
+ DateTimeFormatMail
+ DateTimeFormatW3CDTF
+ DateTimeLocale
+ DateTimeTimeZone
ParamsValidate
- ModuleImplementation ModuleRuntime
+ ModuleImplementation
+ ModuleRuntime
TryTiny
ClassSingleton
URI
- AnyEvent AnyEventHTTP
+ AnyEvent
+ AnyEventHTTP
commonsense
FileSlurp
JSON
@@ -24,7 +41,7 @@ let
];
in
stdenv.mkDerivation {
- version = "git-2017-12-01";
+ version = "unstable-2017-12-01";
pname = "yarssr";
src = fetchFromGitHub {
@@ -35,7 +52,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ perlPackages.perl gettext makeWrapper ];
- buildInputs = perlDeps ++ [gnome2.libglade];
+ buildInputs = perlDeps ++ [ gnome2.libglade ];
propagatedBuildInputs = libs ++ perlDeps;
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/misc/zettlr/default.nix b/third_party/nixpkgs/pkgs/applications/misc/zettlr/default.nix
index 26b925d51a..65aca548e4 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/zettlr/default.nix
+++ b/third_party/nixpkgs/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.1";
+ version = "2.0.2";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
- sha256 = "sha256-vnkZGxuLvj8Pjmey6NO3mcHuWbtO0bYEfgKwvgumbPA=";
+ sha256 = "sha256-AUGfD7FFB5+pfKyIqvychD4mvFU+GTRneQTRI+8bwBM=";
};
appimageContents = appimageTools.extractType2 {
inherit name src;
diff --git a/third_party/nixpkgs/pkgs/applications/misc/zola/default.nix b/third_party/nixpkgs/pkgs/applications/misc/zola/default.nix
index 6c24f65d76..5107697f8d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/zola/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/zola/default.nix
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage rec {
pname = "zola";
- version = "0.14.1";
+ version = "0.15.0";
src = fetchFromGitHub {
owner = "getzola";
- repo = pname;
+ repo = "zola";
rev = "v${version}";
- sha256 = "1cvvxiginwf1rldijzwk9gh63qc0ls5d7j3j8ri7yhk21pz9f6bi";
+ sha256 = "152ydi2gxfhyqsw6i79f9h1xwvwfq729likbagjy5z2bv822m44v";
};
- cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n";
+ cargoSha256 = "0bv2yyqy9l896p0dk1668ayw3xf71h9ddyymimx44j6nw389fxx3";
nativeBuildInputs = [
cmake
diff --git a/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix b/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
index 397c64141a..0c02963e1c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
in
stdenv.mkDerivation rec {
pname = "appgate-sdp";
- version = "5.4.2";
+ version = "5.5.0";
src = fetchurl {
url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
- sha256 = "sha256-wAhcTRO/Cd4MG1lfPNDq92yGcu3NOfymucddy92VaXo=";
+ sha256 = "sha256-lWInks3DBkSpKQh+dcNyn43iY5vvE67FLadohBbF6n4=";
};
# just patch interpreter
@@ -156,4 +156,3 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ ymatsiuk ];
};
}
-
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
index 18de4811af..e7f5aca06e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
+++ b/third_party/nixpkgs/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.31.87";
+ version = "1.32.113";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
- sha256 = "lfkTB8oXxZqgbO7d8cdktSd6ivQc3g5kiAYZKyrrLpw=";
+ sha256 = "PucDKfNPwos5LKzftdXR9Hkkf1UDzHULgyFIdjPiI4g=";
};
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/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
index e88c1fa1b9..7edec1f5a6 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -34,7 +34,7 @@
, libva
, libdrm, wayland, libxkbcommon # Ozone
, curl
-, epoxy
+, libepoxy
# postPatch:
, glibc # gconv + locale
@@ -150,8 +150,7 @@ let
libva
libdrm wayland mesa.drivers libxkbcommon
curl
- ] ++ optionals (chromiumVersionAtLeast "96") [
- epoxy
+ libepoxy
] ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals cupsSupport [ libgcrypt cups ]
@@ -183,7 +182,7 @@ let
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
fi
- chmod -x third_party/webgpu-cts/src/tools/${lib.optionalString (chromiumVersionAtLeast "96") "run_"}deno
+ chmod -x third_party/webgpu-cts/src/tools/run_deno
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
index 72d6df055b..f13bda6f50 100755
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
@@ -5,6 +5,7 @@
via upstream-info.json."""
# Usage: ./update.py [--commit]
+import base64
import csv
import json
import re
@@ -48,9 +49,10 @@ def nix_prefetch_git(url, rev):
def get_file_revision(revision, file_path):
"""Fetches the requested Git revision of the given Chromium file."""
- url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}'
+ url = f'https://chromium.googlesource.com/chromium/src/+/refs/tags/{revision}/{file_path}?format=TEXT'
with urlopen(url) as http_response:
- return http_response.read()
+ resp = http_response.read()
+ return base64.b64decode(resp)
def get_matching_chromedriver(version):
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
index aa77bae2d2..2a105527c1 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,26 +1,8 @@
{
"stable": {
- "version": "95.0.4638.54",
- "sha256": "1zb1009gg9962axn2l1krycz7ml20i8z2n3ka2psxpg68pbqivry",
- "sha256bin64": "0mf9jfzwz6nkz1yg8lndz1gmsvmdh1rxhqkv0vd9nr04h5x9b41a",
- "deps": {
- "gn": {
- "version": "2021-08-11",
- "url": "https://gn.googlesource.com/gn",
- "rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263",
- "sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
- }
- },
- "chromedriver": {
- "version": "95.0.4638.17",
- "sha256_linux": "0jqq2h3rjancq9gk4w29gcr4b3z4irnkbvcj97fdsnksck9y5h2q",
- "sha256_darwin": "0vl73i28xq3z5njg4287j08pb2sfd28amc8hkm4ddq5dgqpim0l8"
- }
- },
- "beta": {
- "version": "96.0.4664.18",
- "sha256": "0z7hplfl9mlbn07svcavzcb2gqn1hchwhhlpz0qykf6kd441kxpf",
- "sha256bin64": "0pm8za2vkl30fn2nclg7cfq2ywn5irbzqb3blawybf3cv4ws8nbi",
+ "version": "96.0.4664.45",
+ "sha256": "01q4fsf2cbx6g9nnaihvc5jj3ap8jq2gf16pnhf7ixzbhgcnm328",
+ "sha256bin64": "0546i4yd1jahv088hjxpq0jc393pscvl5ap3s2qw5jrybliyfd2g",
"deps": {
"gn": {
"version": "2021-09-24",
@@ -28,35 +10,53 @@
"rev": "0153d369bbccc908f4da4993b1ba82728055926a",
"sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
}
+ },
+ "chromedriver": {
+ "version": "96.0.4664.35",
+ "sha256_linux": "0iq129a4mj4sjs08s68n82wd8563sw8196xda27wk3pfpprr23db",
+ "sha256_darwin": "1prc7zbgnljqz2d89clpk5c0y48r79zmb9in4vinf3j6p2rxn0vy"
+ }
+ },
+ "beta": {
+ "version": "97.0.4692.20",
+ "sha256": "1njgfz3kz1pyyaaskqc47ldy2gzc3c9a8mjib81nalzrqbmd3372",
+ "sha256bin64": "0nsaf46a9pl8cxw5v2zsfp2ynja4m55qi1m4mhwhmyr50138655f",
+ "deps": {
+ "gn": {
+ "version": "2021-11-03",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "90294ccdcf9334ed25a76ac9b67689468e506342",
+ "sha256": "0n0jml8s00ayy186jzrf207hbz70pxiq426znxwxd4gjcp60scsa"
+ }
}
},
"dev": {
- "version": "97.0.4676.0",
- "sha256": "1cf660h7n1d4ds63747zfc4wmwxm348grcv40zg614cpjm4q68b5",
- "sha256bin64": "116a4d47s3sx1pq8hhqybdsjxcv8657xaldrlix2z7jh94ip2nwh",
+ "version": "98.0.4736.0",
+ "sha256": "1bakzvzx0604k20p16lxmbl0s8za6fy4akng35c1kzf350jznq7n",
+ "sha256bin64": "09adpl6b43fzlms081c1bs3vrlwrm3kq0mfcqff4q33i0wb5wl25",
"deps": {
"gn": {
- "version": "2021-10-08",
+ "version": "2021-11-24",
"url": "https://gn.googlesource.com/gn",
- "rev": "693f9fb87e4febdd4299db9f73d8d2c958e63148",
- "sha256": "1qfjj2mdpflry4f9fkagvb76zwfibys4nqz9lddy1zh5nnbd9mff"
+ "rev": "b79031308cc878488202beb99883ec1f2efd9a6d",
+ "sha256": "1fdn48y0nvs2qm67qvp1i75d9278ddi5v3bpxgjf28zrh9yragwd"
}
}
},
"ungoogled-chromium": {
- "version": "95.0.4638.54",
- "sha256": "1zb1009gg9962axn2l1krycz7ml20i8z2n3ka2psxpg68pbqivry",
- "sha256bin64": "0mf9jfzwz6nkz1yg8lndz1gmsvmdh1rxhqkv0vd9nr04h5x9b41a",
+ "version": "96.0.4664.45",
+ "sha256": "01q4fsf2cbx6g9nnaihvc5jj3ap8jq2gf16pnhf7ixzbhgcnm328",
+ "sha256bin64": "0546i4yd1jahv088hjxpq0jc393pscvl5ap3s2qw5jrybliyfd2g",
"deps": {
"gn": {
- "version": "2021-08-11",
+ "version": "2021-09-24",
"url": "https://gn.googlesource.com/gn",
- "rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263",
- "sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
+ "rev": "0153d369bbccc908f4da4993b1ba82728055926a",
+ "sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
},
"ungoogled-patches": {
- "rev": "95.0.4638.54-1",
- "sha256": "01jkkz5224aaj5cgdmqknf8v73fyaw4q8bzbqa520a0lvl7hwbg5"
+ "rev": "96.0.4664.45-1",
+ "sha256": "1k0kf5ika1sz489bcbn485kmdq1xp7ssa80gbqrpd60xihkhnrm3"
}
}
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
index 50ada47a44..dbe25ea06a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
index 1fea44e662..7ff3b843bc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 213efa8d99..fab45c2375 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,985 +1,985 @@
{
- version = "94.0b2";
+ version = "95.0b3";
sources = [
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ach/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ach/firefox-95.0b3.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha256 = "edbac6e1811e97cf9c8f9b4b65ad0709722330adeaa521314144bd34fdd4a182";
+ sha256 = "474c94f46fb3985e2f640ad7beaf66c0fa456ad6e3c6943f00dd0b3bc1daa3a4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/af/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/af/firefox-95.0b3.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "437bb41be38350ba7c3962475d0fad1e3186379b93f751755978187960d27704";
+ sha256 = "84603f7b1ae9dc78b7fb184fb8130954241a1135d44b90de41f27650e96353b2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/an/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/an/firefox-95.0b3.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha256 = "bd264763fd5cf9272736595e1b96509c6558561f49664960e14f4c87364f871f";
+ sha256 = "b672065d9b426d2814908d676329deb72b20f403a583228c584a4e95b8d86040";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ar/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ar/firefox-95.0b3.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "af3bd5415b279f90b625716217bdf25c3f8b51cbd0969c944755043150b7f069";
+ sha256 = "9a62d19d64db198b838c2642d26d70de84205647c7aaed51415495b1c9966b8b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ast/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ast/firefox-95.0b3.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "b83760c915d1508188cbc1d02ce210ab6ae4847b42f4e03f37b75134808a9576";
+ sha256 = "53b73ad75376e2a2c2b6879d30d4039b327ba0f2bf7fe533e8a29f41a4e3b076";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/az/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/az/firefox-95.0b3.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha256 = "7e28431db70a3a7c8bbedadd2e1abb32f3b69c8f571eb1f2e0cdc7d2c4097f9f";
+ sha256 = "d9ddba7695435bf5915e1f17681fb6a55b4a3e9d4e4d2972c32e9ccd4d67163a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/be/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/be/firefox-95.0b3.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "07b286100cd63f4b700c7f7ba88692010cc27b281a31ba411f65d4cb8071b7ce";
+ sha256 = "23e9cfe4005bd235ba112f30be729495fafd7d607b9e67dc9b72b9f2fafa2846";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bg/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/bg/firefox-95.0b3.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "8d1e1bdccd06eca90a233660c20a7e2127c0a352ef897f582924f377d5d1c4e6";
+ sha256 = "601d6830ddc35f8738a288105741e6c9fc4b2b50e3844287ff8d7f4ff871ded3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/bn/firefox-95.0b3.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha256 = "d2b113a70009d5a5c9699882e8df8a707bb7faa3a2d37c3f84b63157c3d30cf6";
+ sha256 = "bd41e8b261fa553ca1842cb7291539dd04db2d3668a1da317ac32a3ff7d0c322";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/br/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/br/firefox-95.0b3.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "0535bfe128414d7fd30eac04590c5932387d035fbf35d2d29048894b5267af90";
+ sha256 = "00f69f471ea3385b89ab0fc54c3816271852f6c99cef9b156f0d124a71abe4c2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/bs/firefox-95.0b3.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha256 = "9dcfc9a016456ef20177a0ab5296b661a06c7738329e5d4c18637d42c6399e89";
+ sha256 = "288403e57a49651eb31714ff284173a8b3fda3a6d5e67047f97e14f8398fe5a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ca-valencia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ca-valencia/firefox-95.0b3.tar.bz2";
locale = "ca-valencia";
arch = "linux-x86_64";
- sha256 = "bec81b4ea39288303c6a62383b24589defea2ed35e71b355e67bf852c432cb57";
+ sha256 = "266dd8fdcb00ee48c1ed03ccf3d3a478a75123a07490afb4b67cce3bc53ba9e3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ca/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ca/firefox-95.0b3.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "1f3b8416e7683c6d81cf6f0c90a7dd74a6d0dc251e6c14d5eeed2b7de1530cea";
+ sha256 = "5f7388056ad409c7acb16061b0d945df95ab41cc767ec4fe777df8726421612a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cak/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/cak/firefox-95.0b3.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "162a8ffdc7b3840528f632278a1acb7f9ff23899f88ca898cde8ae0574ca37ea";
+ sha256 = "2c315209fe2d966e3abf3eb4b35207fd2479809babbcc210a8e668aaaf6207d4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/cs/firefox-95.0b3.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "160234bbd7a68ab3376f37487385af9ee8d692298bf62cf2e4577636ccc34a60";
+ sha256 = "f5eef4d4141257dc80362a917cef098cefa65deee791decf4d79137ee2f947a3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cy/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/cy/firefox-95.0b3.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "f876e1ce0b9db06f1de275b3cdf9b8ac9481860a70689846191dd7c68dc6ae8a";
+ sha256 = "a3126e3c83de85459b565aa949ba5d34fd622b8fb7d93c080abada013e59d165";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/da/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/da/firefox-95.0b3.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "980651fba5ead97dcdb05ea2f0b1dccc2947c985e2ab65aed8c239d1c85518eb";
+ sha256 = "066b881606335352011d2001b0766f42af012a8ac7474f24866bfeeb1e181ef0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/de/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/de/firefox-95.0b3.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "430c4a2cad2d9cf170332bb8abd6e66d084e7e1221b63dcb7993d04d9c713aeb";
+ sha256 = "48c557034a1370ece846d0d08e31d068c872e7f6a1d9c83d69e5554561f95b5f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/dsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/dsb/firefox-95.0b3.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "92e9665c4c6f01112374b4ff1b2778c020459a970a1dceafbe1257d9ad519f4e";
+ sha256 = "98faa66e3bab14bf28779b36a54657ae3ba69d2c762efe17bd849341d886a2de";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/el/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/el/firefox-95.0b3.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "2db0291b5a827f86c2fa8c33770d1bc8ad88873e2d451b57df40c0546d776d5b";
+ sha256 = "3591b9ed200707f137dd1c65d159b1f2b412a5f5c2cf17e7d7dcadb691ab047f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-CA/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/en-CA/firefox-95.0b3.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "84330d6f6e648f996b8eb54f999a54f8c552f55a4cd17cb8aa2065d296692a0d";
+ sha256 = "9a018a3abadb9266f647a4fd67a4dcaeab611f1ead3d5ce0b9d83a12e1a58eed";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-GB/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/en-GB/firefox-95.0b3.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "3f46d8f80747adb4f619806b8450569d6bbaa259792b9ebe9e4d7a3df54522d0";
+ sha256 = "40e6e0b8e9955e5dc8c89db57484eb8eddf06fa8b38f8b2a3d23c1d724a1e137";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-US/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/en-US/firefox-95.0b3.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "90a836f289c72d09b26968516df7fdfba4d1f19e035b102dcabf5c69e4c6306b";
+ sha256 = "0ccae3528c97ce6ccd43c21776a85b6e0d485e286814744ae22461cee1a7d79a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/eo/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/eo/firefox-95.0b3.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha256 = "a01c2871905b78d8e2f6f53bcce50a1446cbf4595e38f21a8e9c74ffc0305b8f";
+ sha256 = "dabe2c119f889c25c97e15bc588027d3220f96bde47db6f55f66e6df6c043133";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-AR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-AR/firefox-95.0b3.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "5e6dbece8a54d5f384bab627e92f3481e3a3823a259d93a152f5e71f92f6d524";
+ sha256 = "57e787708d8c3947ca5ab5d5636def8411d2b8884825ac4f2a8253734e6a18e9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-CL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-CL/firefox-95.0b3.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha256 = "8ca362a3be8bb77fe390e96b23d04bc0902c49c9adbdde37c310703d9dda78b9";
+ sha256 = "509749b15d990b1dabd2a01ce3ea25753e57f40f829ca2f391c1135ebab2ad48";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-ES/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-ES/firefox-95.0b3.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "1705fd9cef5991a0f88cc7c62412a2a6573a2aeac0514ffccbaa4dc663f94314";
+ sha256 = "d4cc96679b07d33da8cb891d7a0086dc5b00b269a55e8e0c57fbb576642c556b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-MX/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-MX/firefox-95.0b3.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha256 = "8da27496f7674cea873dfe963e9e87871e9648c33cc4fa6eff0cc0717263bbb8";
+ sha256 = "07abf9362e1e111f42087367b33df46bbfcb33419785cff32c5a612d7daae1f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/et/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/et/firefox-95.0b3.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "56ce06fec63fd6bcb9c71ac5cb5375864b2e8f9967e1a3d03dad37454dc9fa01";
+ sha256 = "7866ed658f2a8a19636484f8dc4bacd3919324c171628f83d2194761ed738d71";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/eu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/eu/firefox-95.0b3.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "03b0f33d0d960c044fe80990404e1f9480843cac11100769bc52f6cc32ffd5ff";
+ sha256 = "d5a0dc4d72cd499e62a01b749969158769b42854d03a63802ac2d3fe473cfd15";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fa/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fa/firefox-95.0b3.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha256 = "ea75b853ec5807b6e292c2fb0cb44f7529d9f9047892f03a674c24e0455b146c";
+ sha256 = "52b51ec4f60f428f8bec21485ceace318949a660aca2031879f9d5b2793ef525";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ff/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ff/firefox-95.0b3.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha256 = "99f3232c806671f4d1099c2b3e72d5511a3377dbd601e9880c36f4c6db9d25fe";
+ sha256 = "84efcb94c8bceeef18f621d2b6c457012a4cae82b85530401f8d3d4a68ee2a0c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fi/firefox-95.0b3.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "c99f94936820657990d9aec946e664b7f607412df03d9ee9a87b5bfaaed4d66a";
+ sha256 = "a30ce074678d5468bfbb675761e6a267d64e05a53691dfde7c2ba63917091723";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fr/firefox-95.0b3.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "f053084b00a5c22e1e0e257226c46716fed3425293ce8e57cc58f6a0e7c6bf76";
+ sha256 = "005180447c764df009b726696220e84e7e18fe2a90fb35674c613f90ac9806ad";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fy-NL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fy-NL/firefox-95.0b3.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "587dfd7904bf5d077a8f61417bd635547e71e2926980730b9ee93fa83109e7a5";
+ sha256 = "8306484bc7a3095412c5ef9abe0f129a3e12f9cd7a9642da06c5b5cefa939b75";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ga-IE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ga-IE/firefox-95.0b3.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "4a549683496ad19adb87c87c01eb296cea59d309c494f55f7512d9ac3fa23f7b";
+ sha256 = "7dbeaddaa6e56a97802fd521b21c0e91911313a178b4e3b52b94c9e6192e82ae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gd/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gd/firefox-95.0b3.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "bc8a38559c327121f2c8d89a8f511446db83ff2fb9c554661020b8624ff5790d";
+ sha256 = "a8002495345e1339d1f482a622e8d496b2f44d6f0943bbad5502446c72cde9b5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gl/firefox-95.0b3.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "9412b3f98618a40e4e66542db3892f4d276d25d3ce86c336fe3297edcd9c64e1";
+ sha256 = "8b7c7ca56394582f1af0e3c53943d96994901f2083d43cccfceeb03d6e40a5fc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gn/firefox-95.0b3.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha256 = "1664f221bc7a6faad6eb1cbb2fcbf083626f80883703506a8a79eb9562e02a0e";
+ sha256 = "4b35f17e74ce56757dff9cef391cc19348ff4e1d248f19e74156504c3d2ed394";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gu-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gu-IN/firefox-95.0b3.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha256 = "556e8f38a0743a421a4fabf658eaccada707e8f3164c9eab7dbfdf8b301fea3c";
+ sha256 = "fc1233731682071936aadbfbe8db7d4284f2cf47398421cfb2a8c7a8dfb79752";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/he/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/he/firefox-95.0b3.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "aedd0af01b30b582d601bbd6c52234218c702eff7eb17d0af6c6c6aff838f984";
+ sha256 = "47b4dcfacd5d4c8e579757f89d895495321b08115f6b64d025d6129562d66453";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hi-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hi-IN/firefox-95.0b3.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha256 = "879bb929c4f871536eba1c479148ebeda4d6651dfcb9832fd981673e3eeec850";
+ sha256 = "a6b47c3149701ce4c98cd0df5629b141bba20d143305d036b488a502c0de7bb1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hr/firefox-95.0b3.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "ec26e00627ee66b2d4113871e13995b4e60dc91088db30d318ace4f9bea4e903";
+ sha256 = "6e992a34955550b0024f626da789f339e68b6b1701f7d20e1cee39de8c693245";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hsb/firefox-95.0b3.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "7950d84ad252c9ff6e01d7ae3506a1dd69b9d9a118f2df2e5234a5a987651f0e";
+ sha256 = "6e7927e7f83a64b97ab2371e798443d27d67fcd7b8051f1f7e87bc78407d8ccf";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hu/firefox-95.0b3.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "9700bd647b0a074ffbeb2c1b71b422d0a15a7da1055c92c29897abbb7f54c4ee";
+ sha256 = "b05cfb354ee26a1c841d4101b5c4fae11e6724bbf50d3c7685d5c67459a4c84f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hy-AM/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hy-AM/firefox-95.0b3.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "5c8e6dd327ca3b07e64c9e2e33d31fcdfffdff8c716577a0a89ba680635c8c61";
+ sha256 = "246ff4c709da7aebae4afb7625b77bae8ee60e53ce5d04a2c42c0257e8da0e25";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ia/firefox-95.0b3.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha256 = "465094fd3b6f035df4f603ca55acfa8c75665d5b92e3527973dbc26697913105";
+ sha256 = "27495fb4fa2cf5308a04a26b26bcc4da5b6153398479a231fbd17162909c9610";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/id/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/id/firefox-95.0b3.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "ea3dea0c2a091707341f19f64995bf6a41980be8ad915eb547876f34bd8b5e8d";
+ sha256 = "d6ce3a5961a40e82e48a9468163403b0a83de89305977ee38edf5dd3a56e222a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/is/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/is/firefox-95.0b3.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "dbb1a792245c9e0fe6fad749da27679d45d0d892044e9779b25143d2d34d247e";
+ sha256 = "3644ff5170301af31eb05cb9b6d788e9c3f0eac65a45155f03b1cf8d88d465b0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/it/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/it/firefox-95.0b3.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "dda28b54be15f43ecacbf490099270cc1cd279b6801a2bbe84cb8c0ba092ff27";
+ sha256 = "01c6356d1ce2229a6ec5865687a0ed67c61167889f4a679c5c87f8cb8843322e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ja/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ja/firefox-95.0b3.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "e023f941584bd89e9465076aa1912774d64d8430ad7bc75d8bd5f4cdd1b6efbd";
+ sha256 = "37773526605c3f1aeebc6cf0b5cf85f9dc163150a71631b7153c7eac04ac40d5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ka/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ka/firefox-95.0b3.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "24ee80944e4101353f5126d2cdbb2d9f1023656ac638f3975558efb24b13378d";
+ sha256 = "69d7a476b28b6eb08b2dc797e3bdcd75df52e6e356e7efff961a6093b75f53e3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kab/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/kab/firefox-95.0b3.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "d5bc4455950dd952a936247b0f3ef5a4fd2047bba599c229bf2b7c04e716d7da";
+ sha256 = "e912381c7b2d1ed39564cba940bd5b2f80837ecaa9b251844b8ff9ba94d2a839";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/kk/firefox-95.0b3.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "85ec8a29e24aa5362fe4b3b397571c2bd479348ce63c2adf63e8006b7555aca3";
+ sha256 = "31227990f305bab67fb3e0dd1043b55470d188841f981f665d4a8a2493c990f3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/km/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/km/firefox-95.0b3.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha256 = "a9fdb04131c7b761426b68748b491dcbf1ddee41e063dc222045ee84fb2eab2c";
+ sha256 = "d4fe8d5720d38750b1d7fffc6aec1e33733bda34783a2f3e190f0c2d8c7e3b11";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/kn/firefox-95.0b3.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha256 = "3de931130e6136287fcd0983e975188c3110611f14f28838f439149ad00b0a74";
+ sha256 = "7ed2af125efd6da29752350a6f717dc159ef4ec2779615d1ef6a00469e09be92";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ko/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ko/firefox-95.0b3.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "17012e23c8dcc5c136377ebdd6e0c4035eff9e4a605bd61df21ea5b2ed9f0189";
+ sha256 = "b0a5c394250c62e90831fb890da297708ad7bf7fd1552641a2efbbb807b2dc4d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lij/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/lij/firefox-95.0b3.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha256 = "96ccf4a71bc2feff202374a63330c4e064ea0d50c6687bc5fd2c372116e1dfcd";
+ sha256 = "75b98e03016f31a16b24efb8333c2b9262efa805dacb942e9421372811d166a2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lt/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/lt/firefox-95.0b3.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "2eb4c4b355888e9b540d1290d7aea0f0a0dfe3eb0d03e278b1fa20eae43cbeff";
+ sha256 = "6d5a36fd2fe4e9054b8bd58134ea8b9d70fb3205d84c60a6793033f0e4acb38e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lv/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/lv/firefox-95.0b3.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "27cf7a6f9cb6ff304ed6169fe97e519e19049e9608f7cf08313c36d7b1640e08";
+ sha256 = "f605fa3ae318f437849623819702d5cfe6e4f09c8780044ef94601879c31d207";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/mk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/mk/firefox-95.0b3.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha256 = "1cb76b49d0323c194f47bd64a8df186c9724de25449b3f6cde123425436a4d6d";
+ sha256 = "dffdaf569892188c729407d9afda0a6f81c3e550ed7abc0ee8d3da75aa2a0746";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/mr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/mr/firefox-95.0b3.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha256 = "7a60b912f369d9f344b0fee98c4108ccf87cb643712bd7033bbb139634e1471d";
+ sha256 = "e46c0a6320a7660f9e7787aff628ca6a4a7fbdf93454fe58f2caaf1ebd53095e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ms/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ms/firefox-95.0b3.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "788a127d2f75462cbdfd4f5915777d81095e2a8bb591bfc256d1b604987a17e3";
+ sha256 = "c3d7a6c84f5ef041b9914757893af431285946821a288e654a4b7f0c52644613";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/my/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/my/firefox-95.0b3.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha256 = "946911b98f0d7cc6765ec7e88db9d19ce4b908f0e53fd6f79ff27e1d45eb2b88";
+ sha256 = "a15fc143278e2c2909ba04d14dda8a9bee23b43e4f121f38f06284d7f718b906";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nb-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/nb-NO/firefox-95.0b3.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "d1703b56d9796af0053605cc1ed7eaee69bd7f30d470cf8fc18b074e8ecbb529";
+ sha256 = "ca44d0aef673a2fea953841e94504ccf355fce39ab571eac782a750cab794301";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ne-NP/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ne-NP/firefox-95.0b3.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha256 = "3cc448f48a8aac7b61ceab0cc8e46402795c61dd1bad66dee72b93dbbdeeff02";
+ sha256 = "656f830a25800190e310d2367ac7ea07f3226c4c7b1cfd0f937dd3056804f540";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/nl/firefox-95.0b3.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "aa4857320b95c78b6434475ada060ce78d3a36d71148d8b24b5868cf3311b916";
+ sha256 = "5e493e4cc81a976bb06bed108d25070ce5add12643de21cd96fd6075cea7cd26";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nn-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/nn-NO/firefox-95.0b3.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "227414b8fdbcf31ddcafac4c3ddb25ac34154a46db3e1e93f8cf26477720c8bb";
+ sha256 = "ed1e854675b0f2422d240e45ca78d101a5ce787bd9f5ce4905fe7edbd24b776a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/oc/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/oc/firefox-95.0b3.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha256 = "22924d95c07426b40b201bb6c659421f43d8f3c36c50348f053c8f8654430706";
+ sha256 = "12df296c5340caf9264401b33f9c7ff56b366ff1026da5c97769db14cde12d0a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pa-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pa-IN/firefox-95.0b3.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "418853a0c95d16cf9277b8b5210ba707a427d68d2390f3bfb9917bafbfe2b947";
+ sha256 = "d785d9d2f85dfe309757abe0ef0096a968cf01d9c2b148a2aecd1c098a5e1f90";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pl/firefox-95.0b3.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "ede88f034e7541851a21aae7329bb5f60c767cbc163fa6a58a67cdd760382899";
+ sha256 = "92835e4961dabc99e0b803e06338a9a21799764e2713a36c1e4f681d87bd8996";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pt-BR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pt-BR/firefox-95.0b3.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "679efad4343b9fd6c9869a35f5c1e74daf902014263ca06f957740f911cfe56c";
+ sha256 = "aaa9f81cdb0ca1b74f6d2f7818d12a952e7ee33d60e047df86ab97508356338f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pt-PT/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pt-PT/firefox-95.0b3.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "45bdfc0cd916eec6628618fdcdb042df9207193a6fef74e539bdce548c985520";
+ sha256 = "ed69921f7c65c31d811a7d54003f5ceef2a01c9405d9bf84b31861b9091dcd7b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/rm/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/rm/firefox-95.0b3.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "7bbea6a1d8fa099d7882758aae43136dd413724d3dd17fae103a32b7f960e879";
+ sha256 = "405a19aff4a45ffde0f09b94ac6f6c9f2dc97398f4b90b77031ce957a31f8b72";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ro/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ro/firefox-95.0b3.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "9540f4015850aad6561d9c03b39ef36f1b2c6497d240b7ad5b43e02a73cd003a";
+ sha256 = "aa058e6912b410db1e43aefc3205930a6dff0559b729b0ac80424140020c0053";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ru/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ru/firefox-95.0b3.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "7837ebd163d03693e504d50c70c6798f228b89bdb9ffcb6a892a350a211cece9";
+ sha256 = "7cb7ff67c839f41a4a1739075bfd7847d23bbdc62379215db2d822f2367ff84c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sco/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sco/firefox-95.0b3.tar.bz2";
locale = "sco";
arch = "linux-x86_64";
- sha256 = "43be1c890d3aaefdf1e7671c3ad1d177fd2ecb34df23369cac5d9cdad6404eba";
+ sha256 = "e5832ddcd89f443ee9d7e5c211d902c4f96319d53e4647dc1b522c73f3f7e862";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/si/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/si/firefox-95.0b3.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha256 = "08f5c9fcd42937bb7c56fcbb82d39570a08dd88fa82afd6defb12468dc8116f6";
+ sha256 = "8fe0d2dab49385b643f5aa1e75fe92f6f6e22c731954c9805d96ed6d5f648763";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sk/firefox-95.0b3.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "ba0008b1ce61baaa4026cde2df5e643fde36d8442e5d7a4eb60bf366d913d75a";
+ sha256 = "326ae6e05089d85f978581ccdb295a7110ca8bd3355386fa167a816c6c64aa46";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sl/firefox-95.0b3.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "7192260868cf36a31b8f0e655a623a06c9ea6a9f070b62517803a4f5f922c650";
+ sha256 = "f79d40eb29a56120658625e73a1e787999392e5f4f9d7b1138c863d4f416e45c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/son/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/son/firefox-95.0b3.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha256 = "ef1b7444683e8232ab043f539a8822e18f0de181a99c205d3d1258f4f3d4fba5";
+ sha256 = "55dcfbc7dc1798f664dd35e249846edea3dab0b9f803816d7ac7f127f88d430e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sq/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sq/firefox-95.0b3.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "3eee3b72f4deeefa66f4214347d5800421827e2d402c1a1b594c8c57fde35fec";
+ sha256 = "a8a324f847552c79c17d217ee8b1e620784608899b5d3bf358c1be036c89c761";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sr/firefox-95.0b3.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "63cb0b927a324afac3e7ecbdb899f970ce24008ce95d2179afae3eb06543d713";
+ sha256 = "f073d9cfd51f99a6ce113b7659b4e4807459c2708ccbd6b4e94caf86d9575c43";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sv-SE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sv-SE/firefox-95.0b3.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "be7023d2f9d23adc466fdf79206694dbd2e17ebeadb6293c85a82dbf6e966884";
+ sha256 = "1e2ce62d0a940d28e92c7252d059c33606b1659cb837c51dce5deac8d7998c62";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/szl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/szl/firefox-95.0b3.tar.bz2";
locale = "szl";
arch = "linux-x86_64";
- sha256 = "95714546832f86662101ba73c560d38aa9850fa90333feef7d9ff8267f295296";
+ sha256 = "d9e0f2f4f3852920a1f539db556fb8cbb7eb563d329befb3619e8892efd442dc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ta/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ta/firefox-95.0b3.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha256 = "6bf28669ddf04df959d24b960d9f67ac9fd1bee97743d28cc21bac1d8fcc16a0";
+ sha256 = "ee8b169ac2e368bfeabb18ad609e99966f192ba50d0cb8c71cf4671e9ba5a8bd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/te/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/te/firefox-95.0b3.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha256 = "8c59a61fb25662936ca2ad8e19a84058aa22d85103d75c76493eb30b2762eda1";
+ sha256 = "26b6372b6e235ff3976246b0985c68d0fc4d742961b0fdfc39084fa625412117";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/th/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/th/firefox-95.0b3.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "984d1a346179dd819de86e970f3cacb0a89ea026c86ca56edabd7855b7bc7afa";
+ sha256 = "64cd2e44ccabca972a9ea1837d8aa79bb21dd675c7e205cf9b7978418707762a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/tl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/tl/firefox-95.0b3.tar.bz2";
locale = "tl";
arch = "linux-x86_64";
- sha256 = "19617e8f8f2aeaaedcbbe33d8bb2421cd8b1eba399ea860d6c7d1e209d5dbc66";
+ sha256 = "b76c0b12ce6ef4a1b25185290d8f35c834220d1106aa4298f0b0026f29874f5b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/tr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/tr/firefox-95.0b3.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "d953044a4b63b5e5eee29c782c12e8e55350dd638c199ce1390361b3ea509f34";
+ sha256 = "f1029745fe9fc26b3e3d1672c736785bf7d1bc182b5942ad0542d72a87a4b772";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/trs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/trs/firefox-95.0b3.tar.bz2";
locale = "trs";
arch = "linux-x86_64";
- sha256 = "738504b47da44370d49c0a7aae03317c3f83992d1be913189194f0e0ce1a3dd9";
+ sha256 = "cd5115bb83023c0d3a7623b4aa88a093e2ba6f65e4f0275d4af66bffa0ad3bd8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/uk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/uk/firefox-95.0b3.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "88243361771fbee5cc666bf8bded017a68b4ce1d608e4e13f29b1e58250de2a1";
+ sha256 = "dcdea5127200c78331f4fa687a4b1a0a7600345e1493a1653296c0399dc9190e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ur/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ur/firefox-95.0b3.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha256 = "a10538386e72d3051de739cfed8422b4c48eb1ddf5389589b49cd6079a5136e6";
+ sha256 = "88f83c38f0a1a1590e0198ccbd0a48e8d8542bd2f697b3556541ccb49da7aa98";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/uz/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/uz/firefox-95.0b3.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "f07e249bd9e106b7513a65e0b0bf8915adc7d6c0cf65cba983c8763fd3da9aab";
+ sha256 = "bd7e5a47455e79ae84111a85f368528f41c406e154d0453ff197207e75cfdc64";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/vi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/vi/firefox-95.0b3.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "29d7bc28680f4694eb66ec898be74089c34ac73536b6bffc26a74ca8a424c537";
+ sha256 = "6cda47f9940c2d8a0f9407f087c26732579bdb852a20b385593e2874cc5fdfc8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/xh/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/xh/firefox-95.0b3.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha256 = "771c98ac9bd5420bff5ab955882114249d274cd1dc82f8fad24885efca302069";
+ sha256 = "19a79670ffe4ecbdb577cf87ddf894a60bd447d906cd7f97161cc985fe8b5f80";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/zh-CN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/zh-CN/firefox-95.0b3.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "670a2a1b9e6805aed79909474c01b771d7fd8215fb2bc0e7bb79e890cffc70eb";
+ sha256 = "7930a72c8c667b8e2d7e6ee9df6cfec692e854c6d8fc0f2f096a7a3158da3f9d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/zh-TW/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/zh-TW/firefox-95.0b3.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "7265b78daf40004d7767d17b500a50d06f0d6bd0ea3a72d341732b6eea3d85a7";
+ sha256 = "bbc0687aab65d526e71e4050b0df5e7e28c59a046d82720b27d03dfa4efe8409";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ach/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ach/firefox-95.0b3.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha256 = "2aac8adf1d0059b9d6ac6cb8558cc87738a60600260ba3c6267d5ca0091dcb35";
+ sha256 = "3304a4622ba40355058e39efc61be03e7ed804c3f7c10070db639e1382621d47";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/af/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/af/firefox-95.0b3.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "5b53daa874efe434aaf3e9ab913a7eb5c41de3dc5bb45218375761a4a9251064";
+ sha256 = "4659c04c84ddccd3ac85237fc53b63536bcaaf8a1adc984c0468797f926b6557";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/an/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/an/firefox-95.0b3.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha256 = "44eb267e3e38957fdf328bc7c72f35286c0f4de98ea16b419d22650c464b398b";
+ sha256 = "e132e70c080fa4059dcf2b0a5c7d70067d7db51e56137df279f57f18ec0cebd6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ar/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ar/firefox-95.0b3.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "cf12aca145ee165cebd17b0e206ce3bb874f0b06a910f34bee4ebd7bd20675b2";
+ sha256 = "822a3be31a33ff6e2819db3474e9b9fd326a5effe5d7106803528ec234e5cdc4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ast/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ast/firefox-95.0b3.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "5742c9397cf56356f8377516bfd16098df3ec690282ea1b01c2121e80855aafb";
+ sha256 = "23b44191bc18c5412b60958a9dff985f9be1b5ebcdb12444008ea81b61e64e27";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/az/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/az/firefox-95.0b3.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha256 = "28c52a7dca6db549577e072bbf055701706e4bbac9a65fc11f8f2bfd62c6760a";
+ sha256 = "5def55e33abd17ab26f5e96b325b1d32bf16e32c6083e6437dacbdf52231b6d2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/be/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/be/firefox-95.0b3.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "d50cf3da85aeba9f967d23cb1d661f6ac3bddc032ab14ad8790237a7eebc2dad";
+ sha256 = "23fa43713fc1e831bbc87bae66ea3fcd3597c60babe96b50bc58caaca2698f86";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bg/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/bg/firefox-95.0b3.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "44e8f8477b5bf60546e712ea054fb0f736c593ccfa76d744c5f7ff092f8756e8";
+ sha256 = "7ef88eb25bf6b37d89b6b90b76b812eacf70e3ed8d6ef2dbb22a469ad4da78a6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/bn/firefox-95.0b3.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha256 = "6a70df8153b96afa2b3489e40781b3ec56cd40515ecce9e682f2236a395c1224";
+ sha256 = "7d9a99a8e4955f746c27b0f54c4d44b30951fe9fbcf106ae7cf43f996e937671";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/br/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/br/firefox-95.0b3.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "e999ec80dec5e33143e911a3f0492e68a8dac43088a9adf9a9a644fd87905b6b";
+ sha256 = "94368ed9dc4801dccfca01e97dc07b4db309ccce60aa12846c2eeac68e51e6fd";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/bs/firefox-95.0b3.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha256 = "d500cc9f6e898626efb8e987649f4786988c0977342a46c2ed02c5c5ef540043";
+ sha256 = "1afee889a4d450f373a42416c13305abb2bc2388da8bb3a303a89a418823e01f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ca-valencia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ca-valencia/firefox-95.0b3.tar.bz2";
locale = "ca-valencia";
arch = "linux-i686";
- sha256 = "0f524bb723d1c62380f5bb1e6223ee6c2469a08ddc643dfc36e21c0c82153803";
+ sha256 = "0569eb326a77638e004243dcc62108e4f0997f3496b464644526aa7c01042677";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ca/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ca/firefox-95.0b3.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "e41924c1d4a6161da982a50ab6556a0dd680db8bba3a0399b0fa2a950667bf2e";
+ sha256 = "c1987149fdc39a601e15d5f64e8d9ecfef1955debe723f10b49ca65d097480af";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cak/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/cak/firefox-95.0b3.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "a598adefaae52af1da8649965a1b8ba96316d0c6fa13fb5d3c482e7aa63a00c3";
+ sha256 = "72e5ae12cde0a72ae31d393ba637663666edbafaea53740ef806a7fef3d4c140";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/cs/firefox-95.0b3.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "a4833932ee61dd26c552c01b9b6c7d91efe25d7a2d9a63fc0ab2f7700bb2d508";
+ sha256 = "478eb08e62251dc39f92d4a800c11e9724f3600e8f997dae616ac82e85ca1b3b";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cy/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/cy/firefox-95.0b3.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "865c431769651a68946d7496a293194eeaa50886d2d14496b2d06ecae97d0f02";
+ sha256 = "086fa2054f1185c40ff297c747abfc8d9324a08b2e12418632cdcc61fc668b02";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/da/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/da/firefox-95.0b3.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "90761a3f5ce8340678eb1bde13dfb646922cd1c42edd17dc8eeef99ddf5a94a4";
+ sha256 = "b657c66cd373e7644c56e5ae522531ca714fa0f7c529555289c5df45d0bfbd56";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/de/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/de/firefox-95.0b3.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "cb0e6ee6fcaa7e112f5c8a1c32f1423ff718b1413f5ba8c1c8807d8513d7798b";
+ sha256 = "dddf834e5674b47d8e59bf921ba007067c9aef3d2efbd85634cc2ea72510bdb8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/dsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/dsb/firefox-95.0b3.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "028fc876c1156b48d670b97c750a25ec442b2ba6a68a28a7cd1b81c3a1db410f";
+ sha256 = "a407dd3b2bd3d986d7d59668fa20b6b2f4f71d3b54332a99142c08f7829aac9e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/el/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/el/firefox-95.0b3.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "b5055d99965a01312dbe339113ce2495c23dbd38cf93a994ff5622f9b61835fb";
+ sha256 = "8042da6d7c66aa7c45dda5830bfb67877e06a66ae2ead7343c74d51becf56ad5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-CA/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/en-CA/firefox-95.0b3.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "a83a7457ad8f4ba12feb3c7824a8d9d211dd88e9f862a9f5127bfb7bf4896075";
+ sha256 = "9d9bd958a6e0854918333f65d6fd8a3ea461d127e5e160500da186a4a907d3e6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-GB/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/en-GB/firefox-95.0b3.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "ad3ffa6449f1fe0f65cee89a64f9b392131c0a765704f95ec94cdc9f7d4baa9f";
+ sha256 = "7fa0b938156a578297d1fc937673142be25f8b3cbbd97480b4be654fe2784b50";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-US/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/en-US/firefox-95.0b3.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "baa1bea27fddd11c6781a48ea677724bce4c4246125be876d17122998d9a7f4d";
+ sha256 = "33d62cbaf991fc592da3f913cfb802f0707b0b1f72dc7416fb1cc22c381b7ae4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/eo/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/eo/firefox-95.0b3.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha256 = "568e14988abf65cfbc9d6c73adfcd5716f909b8a6fca3fb120a6cfdeb9e69e2d";
+ sha256 = "d374f116d4e769147be1a56c2c6410f1fdaa8d86ed58475562f906b061c0c3b5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-AR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-AR/firefox-95.0b3.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "c90e3f18ecf370d223365c1d0f91b785476d0abc680fda2f86247e25387004c9";
+ sha256 = "700457bcb26d5ff2169b9e8c23e6140cffe48742865eee51fbf5d9932c59adeb";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-CL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-CL/firefox-95.0b3.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha256 = "c0f03f3762ca094a7562f312a4d8de177da3603f3e10ecdebb8d53a0573be44f";
+ sha256 = "563af53b075039919e6e15690c089109ea2b846852161e7fafbbc8fe2b20a441";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-ES/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-ES/firefox-95.0b3.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "a105f2f4a70c891e4e29e73871919e0eee5882080bc5f5fde408b3ef5b68d5e9";
+ sha256 = "0c20971406b742f2b18097909f68224f4cab619ba469aeb8da19bb8cc2ca18e6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-MX/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-MX/firefox-95.0b3.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha256 = "a1f3a1bbd0c63f96627fed01fea147520e0df328aa0fadfe3dd1a7f6bcadf0c0";
+ sha256 = "6ba00dca7e382da326fbe35eaf25312d1b4a85d5baeb64514470d20774a4efae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/et/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/et/firefox-95.0b3.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "de90af4dc817d9df6273dda7ee1c7a9eb360c758220b501b37470cd7d8704a7e";
+ sha256 = "cbd3353c4c236ce9b9b65ae322c6d43dbd74a27db638d2a01c4734e34b285e3c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/eu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/eu/firefox-95.0b3.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "32eaea585ba8b2d4cf2974b7b78e57657ed8aa3fc7e005453197c3aa1c96abd6";
+ sha256 = "3eafe56e7675aa503cc036d7adb64981ad7a06bf934c7d6c0ecbc4af8a895441";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fa/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fa/firefox-95.0b3.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha256 = "07810ba943fe1f8a129d7d5795a6bc96852b216d9988ba96776647c7f33a8f62";
+ sha256 = "0dbb9c473b58ce34d3924dc5f8a41065206f06a0993246f111c0da0561352624";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ff/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ff/firefox-95.0b3.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha256 = "6a9bdce53ea3b5546b938b2ee9a1b47be4bd1084cb0461740518b4efbb6138af";
+ sha256 = "723bc7955202c4c3425e32045d21177a3d312f41fa4005c3561cd6d959151c10";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fi/firefox-95.0b3.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "b9145e2b96cf240f4309b8c240269ace21edb90925f140cedf7fca6c74692015";
+ sha256 = "085f28f412ed53662519fabff853e6515b26427044e935dcf6106716f419c748";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fr/firefox-95.0b3.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "e3b6b6a62a48a154d28f132a597d265c51b31fc25edbdc2548020e8ca25953a4";
+ sha256 = "84e90806913574e980a6538cc6519d201bbe939fb857f34feb05897fa8c69409";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fy-NL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fy-NL/firefox-95.0b3.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "be2ef81fc49fb6ce874d5efb62b1bc1752ff125fa4ba2205a1dbdb5064c7d072";
+ sha256 = "8cbcae8c008c679c234c51f56097691e9a9159ba58937c74e38acdb616ae6ba0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ga-IE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ga-IE/firefox-95.0b3.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "5fc3a6df099ba9e0230717c7fabc6026583818bb0b4a27f465dd27b020a0c475";
+ sha256 = "d40a5549c9f8982a8099ef54d0e459bf6d860b30df38b677ac01c16a0a57e330";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gd/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gd/firefox-95.0b3.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "d6c799bb7c0f13ea956d878462e625425dbc4ece9547514cb12dd9102553c44f";
+ sha256 = "d5eb63613d83d2ffb5e11cdd21629dba7058ba955f5efbb002a010fbbc677406";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gl/firefox-95.0b3.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "6268596e62294f38ab05c85373ed99fc18f69bcb4add19d6dd201b92d066b454";
+ sha256 = "21fd943016e8f8262f1e1873c3761d7bccf75f62c0274b09e441327f35987fa1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gn/firefox-95.0b3.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha256 = "de044826177ce892bc5ce3ef1bdf46882759bb8e49e2b6b36df47cdf34b2615b";
+ sha256 = "3ce4b7cd3cca655ae114e3b2a8b37e10ce4ef8d7a67f9102ec2c0212cfb069df";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gu-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gu-IN/firefox-95.0b3.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha256 = "586e731cdc1336ac6d1894ff4f79d67e098bf203384c2944f33a8185a7b6d183";
+ sha256 = "3312ff91d51e10efa1318403796c0f4029723578784a5d51158ae7c316afc4f4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/he/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/he/firefox-95.0b3.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "42fbadfd03343c5e878abf913bb45283dda50fb3c9b52395be47d939881a8420";
+ sha256 = "f9b24ae14c635b8fae22cd0fce522e0b59f1f98590d697c4cbc82af682751bae";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hi-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hi-IN/firefox-95.0b3.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha256 = "3fa42bca8f7816b8ab2c87c783f326c55cfae8a04f578f4b7ad71477e9b4cf85";
+ sha256 = "09629e8ae42901795c05957c179020daf446201237d39c055d611806d0b86b78";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hr/firefox-95.0b3.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "69d0b032973f80c05ea79d79e98b2f9f4084199cffe9ce486c2a1f7a57fc2569";
+ sha256 = "6bcfd3b48a09e222046ff349ec824e4b60cc7babcf63172482115ccab078cad5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hsb/firefox-95.0b3.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "6e78186771e988d87d4cc1eb341ce7fa37b53cb1a34d221dadcf694457a71912";
+ sha256 = "7e3d6c90d330752792000aabae8250d23fb7ff12f24adc9c47279db194cc6e54";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hu/firefox-95.0b3.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "5fab0ba23aebd9f717f799ca5783150796ec14c9c45d1c709448e16bd37c9f01";
+ sha256 = "2fb95d958888fa4247478833ca047ee7ac76e4032b48163ad61ca5597dba1d35";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hy-AM/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hy-AM/firefox-95.0b3.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "fa0de5ec5044eccccec5d8a2b113f7ea1aef59d3a33197bc21774643aa85198d";
+ sha256 = "d6d056f2841b6f359dc4ae9e22b9a5e8698a26df574b09cb3c79fa44d1d86790";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ia/firefox-95.0b3.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha256 = "87608b529985a8949e29394a9bfeedcd5ffeb67949923358fd82c27c6b351871";
+ sha256 = "a6360b38bc8d7a7265e3f66ad669bf40bc25770fba8cee29df420c8d396d271c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/id/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/id/firefox-95.0b3.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "c6d5bcf7db0582063cf42b3b9d8793b4941bd13604ee7cab68fc919dbf160907";
+ sha256 = "ef34e9290dbe1e8f362311b43798a78c7455db5e214397e2d7285a38f5599ae7";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/is/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/is/firefox-95.0b3.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "0de58066c6904a9870fc79e144e50cebddf61bab26f346dff8d3d8b4339eb650";
+ sha256 = "bf2d2cc1b6735466c70fbd6dd463b240fe17164b6c6a9bea3b6e2839f846699a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/it/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/it/firefox-95.0b3.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "aff66e83da3a968e003caf4df9278a85e9bb15e0cda0173b3e73339c1c85e481";
+ sha256 = "628ef481ebc9996eefc8cd689d6e7ae6a41c4d11be5cfe1e3a08ef05d2bca8fe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ja/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ja/firefox-95.0b3.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "3205dbb1ccec432962d90c2cb533244f1baf47d01b0c77801a827a85f89de328";
+ sha256 = "6cd76540da568857deb06c5b1c6c73003548f9399bfadb25b425a35a30e5eeb9";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ka/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ka/firefox-95.0b3.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "d14ee6a00e34495e76af31a20a49b206a744ca0eda7eff60e739e504774ec042";
+ sha256 = "811b0f7b73ac2726f6ef5a07d923c29a2821a6f7cacc18e79ead5efb7c4deecc";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kab/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/kab/firefox-95.0b3.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "fe3fe6170a6b5ce661d54d24c0a1d09f7772f11faa4a325d0553cb12ecdc8c7f";
+ sha256 = "d384e7975ad2110e48cc2c17fb14dc8bcfe14fdae481a538c6b66eef627f70d6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/kk/firefox-95.0b3.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "14e27fff2da0ee16a47372f6d1426c9f337aa3d2c781020539f787ffd6535765";
+ sha256 = "315d84a82ab42fcd471758191f012e52565cf907409546346a35a46b33af87ab";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/km/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/km/firefox-95.0b3.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha256 = "0de1b97e2bb964b161e15092607f7ed98483a421216249e9988050e213795744";
+ sha256 = "3b0620bcb47b92b7a2e46f52ae6fc306615dd94b85c37e445158eb3161e73ee5";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/kn/firefox-95.0b3.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha256 = "8f0160c8797f48024b19139ce23fa2b13540b09e4ac100508fe8fb6c68596f9f";
+ sha256 = "3e4e906b80f438ec81de41464d898f8a2d23385907d8398afe12e8c6473921a1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ko/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ko/firefox-95.0b3.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "7729469059efd35363ae18d58ab8c84785534d2d94624b863c13ba0e5e98fd3e";
+ sha256 = "d7bedd07d0cae948c4c995930b5fd84f90e84843f7024e93f37af2bec9e5bf2f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lij/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/lij/firefox-95.0b3.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha256 = "6712ecde2c548608fa95af783a7576d765e8bf09e157060a3619cbaf0bec4196";
+ sha256 = "86b64f383a0f139b7ea280dbc8216a98a2bcfa5b89b59cea9a593830eed2400c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lt/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/lt/firefox-95.0b3.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "938e3e220f39d91014b5fb0824d1543027d971f260eaa633c286f6815ebe3a6c";
+ sha256 = "0d9abd3f952d2a8c5e44bad8e459053d796ab9aa78aef2bed4bc5c9079e9b91c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lv/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/lv/firefox-95.0b3.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "b563a544e75431ee878c8c982076c4f320331f8930f539ab15502df6a57e1e49";
+ sha256 = "de4682948f45b82942a5f544177927d950401ef734d956527528edc098321051";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/mk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/mk/firefox-95.0b3.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha256 = "e349e36c833709f737cbdbe6effc7874d07b06bf92aa762a91a25fe218862a3c";
+ sha256 = "45d25d6f46bb9807cf0b05dd8148049860e7a86c04bc814498e33c68a8958a12";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/mr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/mr/firefox-95.0b3.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha256 = "ab19ad0215db1d4a3dede497bc4ff13bed3f584b1238157b5ad13a1faf62cb15";
+ sha256 = "f29ac0279437c0392dc77ee3176cff58f0d6c5bf2836e0e51877722fffa83cc6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ms/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ms/firefox-95.0b3.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "9971db2e0b409c58a6931e7e8b8b1ae3fb109c51ca6d8ca763a3819a20c4e818";
+ sha256 = "1d6f1af7b50d0aab0385fee820c3aab54471b19d47ff6384f5198aa6ce01cc16";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/my/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/my/firefox-95.0b3.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha256 = "67f4e4b4f21f6b0af8973602300a5a511966b341e8abc6a4156d9c5f6278b523";
+ sha256 = "33460df1b8f1db24347b97bb953b8ffa29895c2b048fb1ea3067bb6059122ef1";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nb-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/nb-NO/firefox-95.0b3.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "3a0519e469b7e215f8a3fda16a3445f0dfa466ddcbef105926d00a792e5ec29b";
+ sha256 = "6c3f0adbf54636e6d9e073d4e3265d54b4fd2f63f716562b7b1c0979f2dd792c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ne-NP/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ne-NP/firefox-95.0b3.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha256 = "8fb2ef6a3a96c772202dcfc31e507d75baced0df75882135864fcfd376187948";
+ sha256 = "b0c5ffde1b4e61e67e7eca8dcd91fab8cddb582a8574ac0c9cd68af2ea16ce9d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/nl/firefox-95.0b3.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "fd81e646da95800ef65d4f7d260be6f40d0c6b3f5fd927258c1b587212a26a3b";
+ sha256 = "6beed6c4fa2915425f14c510ad979830cfad2fd72166b24df13000b2f8ec111f";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nn-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/nn-NO/firefox-95.0b3.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "f7630d4b5ae51b163cf7aea5d8c1d2580b6e11a101fd74672df4b38e629c92b0";
+ sha256 = "db6056951f6d1728b63834ce33f004d582d14b16d3b376c22518c4f1c7cc3cd4";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/oc/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/oc/firefox-95.0b3.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha256 = "c938d337a49dadeecf83ea0436ec1b2e1fcfad93a9a573eee1f8481df303af5d";
+ sha256 = "faaa3ac02d5a7baee92e6ed61354df09152ea21d45ca4ed75cf8b8f8efbad154";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pa-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pa-IN/firefox-95.0b3.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "c4ed4426a29a456c4232d4d681b5d7cf24ee26b80b0d03aa32e860038d011871";
+ sha256 = "5d4d904aa5dd2485ba3e86313604225b077ad962d845f61e6bc6b8eabb6e7f35";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pl/firefox-95.0b3.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "e5064dd88b7a2fc3a99a0d702aa50f9fa425442e6b10ae6b2f69daa7dcff3961";
+ sha256 = "e5d83fb5fd509bc184fcb5f3adb8fb81fb463f1c2574e4e72955d33a01272920";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pt-BR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pt-BR/firefox-95.0b3.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "a749befb91525c428a2861524b51742cf6a04f9d2c5e9b65b313422a29a54f21";
+ sha256 = "aad23fc465192b61be02b5fc5f01740d20aa996d57791876aa19b7720dd40cd2";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pt-PT/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pt-PT/firefox-95.0b3.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "cc8af104daff4f7023d1bad24d88d8eae063d7810c76edeb3548426eb70056b7";
+ sha256 = "30b5caf7c87eac3710d111def0de7e54fe526936615749e52c81064a8866e768";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/rm/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/rm/firefox-95.0b3.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "d548cfd5b4d4a7e4f1d2fcadde5686868ad6d08549ca17d876747d7ae51f0476";
+ sha256 = "90a0e636e2cf1c09509d7fd3b0066b3fd0fd416278e343785d481b7317e1418c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ro/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ro/firefox-95.0b3.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "02339108ac6c793ecd2907366ddf68864fc834c57358c2b8895684cffc8b92fe";
+ sha256 = "5435af6e4e1925bb6acc900c317f1f125913c8bddb1e0f0e6683a9e197d9feab";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ru/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ru/firefox-95.0b3.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "35113139ff21db5ea21b14856927d08fdf4b9486cead60ffc842f5d0d525bc3c";
+ sha256 = "97b81dbd06f70809aca62ca6286b9b16146c756b98ceedf637dc7ff63307bde3";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sco/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sco/firefox-95.0b3.tar.bz2";
locale = "sco";
arch = "linux-i686";
- sha256 = "5ad751c892c034a839ebef7a5033af04555d7e9873bd0080ece3323c277dae26";
+ sha256 = "bcc11d20f0a2e3ded5403a5e61b7eae5358c7b96c5aecbf4c67a00bacf2ec781";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/si/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/si/firefox-95.0b3.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha256 = "b06f9b5301f89f3ee5a54f564302ab820ddc3c3e75ff2bb775c506a28afe46dc";
+ sha256 = "b703797f67966452446b7e7201701c660518d61f20a0f68c927352a434b88ebe";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sk/firefox-95.0b3.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "dddcc75cbd4bb4d88d04348d71043e6983e6c149bc509de92f0b89e4a8b728f4";
+ sha256 = "55587531dc284fae18b03ea65ccded3c8b0e36c5f6a2302b46954c11f3bbda79";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sl/firefox-95.0b3.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "f77d13ae4d55533427e6f61643688fbc7f5018c64058657e3af0b840e5a57ff4";
+ sha256 = "f0397fc96c9c46c0962de1c1a009fcbabbb1da6a15aba5568cfc1deee1d127b8";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/son/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/son/firefox-95.0b3.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha256 = "984590c9cb5216738e6f438bf976b1d7f948ae2a74eb721d32d34cd10185b0ba";
+ sha256 = "f43039295499f068ef3e2ed9138c25cc6343bcbd68e845b58bf3a40cdbb12db6";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sq/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sq/firefox-95.0b3.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "1534c2664809eee6f08d63f6e90f9b68cc451753a7be05ec6271eae0102d9297";
+ sha256 = "7c1ef14292fe2bc8bef11c2730d6604c8b82bf102c024c9560e9fa747961e374";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sr/firefox-95.0b3.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "b007555569112e3603d0f82b70b88232a08790de47715becf1eafc263cc5b766";
+ sha256 = "e5f72a3073be18d5a5493f15126895c5d8182489be19fc8704dc1cd92997d17a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sv-SE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sv-SE/firefox-95.0b3.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "3ebe9a9ab0f98d9e72111334fa14fe2756d14b7c55ca0961661a4b614b29e730";
+ sha256 = "27b9c49f5334b06017cd2e953eea41c6a211010b316bbff9dfdf15a7276f293a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/szl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/szl/firefox-95.0b3.tar.bz2";
locale = "szl";
arch = "linux-i686";
- sha256 = "c0b10b4c6a40acf11625fde74091060550a127e50374d112357a7644e85fc7c4";
+ sha256 = "b94dcd8e3442ab29763216ceba888f205ae2a27bb1eb8cd9d5d7473f6fec1f9c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ta/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ta/firefox-95.0b3.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha256 = "02ccf92925d17e23aaba13cfc30691cc7ccca4058ef3b5f687c2ec6d86be9131";
+ sha256 = "fb6150c6231844130fa488ab0dc91fabf4e06d2dd7e9b8a6605689e84f59b027";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/te/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/te/firefox-95.0b3.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha256 = "0a915418ae01e65f77814765719a8d92a8476e0e6b92b7e4f3345c741f9b9d4c";
+ sha256 = "07737bb07b4bbea1474084aae0e1733d63f7bb630ee1c51bf006127e1491203e";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/th/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/th/firefox-95.0b3.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "0e528aea8b5ba9ad6cc432c73677702233fe40681e0b2b8a35069c97d6727c20";
+ sha256 = "c11be11dc71a2ab9dd30cf2f11c858d7b4d0d28009e0d1ddb210fe2c83c72d4a";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/tl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/tl/firefox-95.0b3.tar.bz2";
locale = "tl";
arch = "linux-i686";
- sha256 = "08643d52f23bf7bd945e85575675331213d1b7aaee907dee007913107cf06df8";
+ sha256 = "70b6ebd47c72276a4002c4fc390204f8d741e1c04d85e24a53547120b432fc34";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/tr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/tr/firefox-95.0b3.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "fea788ada1b3260ff7effac66eae99cabe7f7d56c3c27a9f6ecc31fdb077feed";
+ sha256 = "1d8b06c8141fe52e6417262b9a863d40061d3a02bb76b3084144adba86468093";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/trs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/trs/firefox-95.0b3.tar.bz2";
locale = "trs";
arch = "linux-i686";
- sha256 = "74709f4feef8ce28eda0b6b1c82dc26991b8099f0cb3f09eb2bd1ced924d4922";
+ sha256 = "68cd9ec55a3dd9e02fb4cdc5efa1ef5811128aa344bbae7d249be5c5e3a8f661";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/uk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/uk/firefox-95.0b3.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "7181038f9069573e8a043dd855efd0bdfb9434be0abe91e79f632778f26d3de3";
+ sha256 = "b596c8dd7c495f13980c9f8f8ed8f2dd622f13c9add9a82009b053edc865b34c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ur/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ur/firefox-95.0b3.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha256 = "82a8a5fb6f45d64ac1250465c469572ee8aea4af578158f7b6c697abd81bb949";
+ sha256 = "ecf825d26894269e22c325116fd22630f6377d8f75931ac078ebb717a0112df0";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/uz/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/uz/firefox-95.0b3.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "b2f7b1f0b296912a6dea8f4003ecc1511ed22d7546e576b5f9ef4c877311c01b";
+ sha256 = "775015befdf60a0b7afd26a8a5c3fe50e72e34ade98915c8f8035c24d9f1a96d";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/vi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/vi/firefox-95.0b3.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "8bf4701b32ae12d16d8d207a2344c2f6b208065c96166bfb724309cd223205de";
+ sha256 = "285a179a4739adfd2a1aab9e83363b79ae61b5765119992175aaabb49c109e5c";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/xh/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/xh/firefox-95.0b3.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha256 = "d546e726258f3b2e72373892bf11bdada96dca0f21e97acb4cc60af872f991f7";
+ sha256 = "45824831250c36ecc54cbd01dd54451e11f8243b17da30604121f478cb44b634";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/zh-CN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/zh-CN/firefox-95.0b3.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "1e064ce673c92fe9ab0874a71583a9bac311a61850787b419e64b12819cd2dbe";
+ sha256 = "3faa40d7423eb4b3c7a83326dd510efb7446eab17ca792e9006e6e1108d47112";
}
- { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/zh-TW/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/zh-TW/firefox-95.0b3.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "e3dc9f29ccc01f149f1a071dacdda21fbdca6906f4007ab1cd352b3ff6b498c3";
+ sha256 = "d29c7d36ac4367ad8e0c758ff041602d873c95d962edffbafd132f9ea494e8d9";
}
];
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
index b0c77819c0..29a506dd1b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -25,7 +25,9 @@
, libXi
, libXinerama
, libXrender
+, libXrandr
, libXt
+, libXtst
, libcanberra
, libnotify
, adwaita-icon-theme
@@ -123,7 +125,9 @@ stdenv.mkDerivation {
libXi
libXinerama
libXrender
+ libXrandr
libXt
+ libXtst
libcanberra
libnotify
libGLU libGL
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 8c3988389f..58976e8ee3 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,985 +1,985 @@
{
- version = "94.0b2";
+ version = "95.0b3";
sources = [
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ach/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ach/firefox-95.0b3.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha256 = "bd42904859dbd5891779c6e74035596669a498c4140abe36091746a74ca0eea4";
+ sha256 = "3fd3329cb4813ed6c241067b6c8ee43ab248cb8557ade63d6019a7b77919517f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/af/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/af/firefox-95.0b3.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "37fab70d161246bcc70e4685dc680a2941c8d92db5bd66edb18fa6e72f1ba279";
+ sha256 = "2681fd38676829807eaca78013535db672a8ccf9cac12ea4b906898b148d680d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/an/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/an/firefox-95.0b3.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha256 = "0960095aba64ca73ad838935a5bd78fc4773347b02f2bf8a08964cf15d0cd866";
+ sha256 = "a07a3708c17587dcadab18e10205938311b4a74a668d820fbaf68d6029c86a75";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ar/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ar/firefox-95.0b3.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "40c097f94a2c106434fe95f35c68b8dafca84fbb887d416aba427637f83d7e11";
+ sha256 = "02c6f9c848b62b9ef77a9530040c35645cfddbfecad6d479e6845ae93dcfd7a1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ast/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ast/firefox-95.0b3.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "41f7b6e15760548be4bb883bbf196175c912484891298a717fd256f091c72f5c";
+ sha256 = "8dcc6a6f746a9f4d766a71608fbd67e737fddcaa50cbf53738780913c5762a32";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/az/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/az/firefox-95.0b3.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha256 = "1485eb4eee5f3858797871c710a83d7a79217f69002dc8915202080ce182358e";
+ sha256 = "4ada53459d9f5040635b2873d21bb59da37f6fcbe3d389bdd42c3484841a3410";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/be/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/be/firefox-95.0b3.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "1ed4be4238bb0f427dd2a8b8542da9a989c88c417da48ac333dc0afa11ca5a66";
+ sha256 = "81285777b5e76044d3e1bb66ac458cd1ec40d4c6b7cba8ecbb991869b628e33f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bg/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/bg/firefox-95.0b3.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "8b29bc7a4ab22512343e836998150c8786496354697574b8318f6c47da499949";
+ sha256 = "f6b2d858c9a7dce01648b04d653d5835f2d23b660fe199b5e5816d5099c5b2a8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/bn/firefox-95.0b3.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha256 = "f3b279fed3f5542ed7d9222eb4e7bf7d36ebd633defc920fc1f2d50de71cb0b7";
+ sha256 = "0dd4e9ad279a3a70d5aa4df2cbbfc59ce244543d0db5d95d8cdef19851a35c3c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/br/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/br/firefox-95.0b3.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "f9e07894a168c6ecb36a0f10d5aff3335e6553d3516440bb3b2e0a99e34afde8";
+ sha256 = "4f2efcb73678541f3e30f7b7777060787d8f21c7a9a93f401f67d29716686763";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/bs/firefox-95.0b3.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha256 = "4ef75403c6db94821419ab687c362c355bdd7864caa1248383aa33ea330bbe86";
+ sha256 = "01be296b46d77a34a2c0548bc1e671a5ac22825a1bd34a280a69b12592800418";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ca-valencia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ca-valencia/firefox-95.0b3.tar.bz2";
locale = "ca-valencia";
arch = "linux-x86_64";
- sha256 = "7f0488fe5efc807560dec19bf5ab8b9ab63fbea074e5da0c1ba10677fc37580a";
+ sha256 = "76872161dd216803b8446a69c953c44d6e58aa6efd9ac829d3f07f52f6cb1270";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ca/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ca/firefox-95.0b3.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "cefcdb247f82543e356e0aa3144a8594b40d5ebb6d612dbe4624ee23ce4e1ffa";
+ sha256 = "b92b2b0c22515639aa14ed6526cc01e328e9a66f646113cc2dd3ab573ee8e5e3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cak/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/cak/firefox-95.0b3.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "761d75f0764b94bc24a2ef480841639975698308f9a957b68c4cbe4487f0920e";
+ sha256 = "8e9db7fced10d04d1de472fefdc67b56d1c272d3a5a656d3992f9d2f0aa4cf85";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/cs/firefox-95.0b3.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "ba098e4498e3b5e7d5832e922db7a75022cc2eb0ee75a90c587b8a605b9341d7";
+ sha256 = "64f70a9be5f426f6ca3c7c3defbb70ef77f7bdd4e0047a171119af3a700342e3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cy/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/cy/firefox-95.0b3.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "1ab3378924c5ec5677a0380307a34f3c0d5dc5278f14fae8cbc6638f95d887df";
+ sha256 = "64f99c6cd821a36e398be38fad603f804511799cfdf5ee42983f31b616ad9f58";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/da/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/da/firefox-95.0b3.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "dd10f8ca235755fa0384c8e9856ff68da9d35f08f4207253f026393b4ca6913c";
+ sha256 = "355b1cabe8ec16f3d71718f88fbb28675c3a6af222674d6e4da70e6cc4d14094";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/de/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/de/firefox-95.0b3.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "c82331eddd13d69a947555842d4398ae3c89f6bf11d4f57d7e99543aec3d720c";
+ sha256 = "60dbc682145d8c3ef5c3526768bbfb495e95d6f2724051acca692e23c4f934ea";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/dsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/dsb/firefox-95.0b3.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "4770d9fa07f4be586ed036e2c9b5655f8aa1939bf9b7148ea282f0926822e88f";
+ sha256 = "865e6173162f5120168f449ed56eff83615594e4149d4b7ceb3b42cbfa4cee9f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/el/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/el/firefox-95.0b3.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "4e5beae917f4cc06283cd02eac07758383d9efb26976100bf8c0728e0cffc752";
+ sha256 = "a38442cf1402a6e36606bb1fb8ba65a67028cfe57a787a38ed1495aae1adcb95";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-CA/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/en-CA/firefox-95.0b3.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "38bc8dc87a3f381b17d2f38a15d6d75238a16fd968a6463773af773617ffa74f";
+ sha256 = "f4a717ef12401062a8cf4eb2b220ea18d7999f02052b67b82cefc714b18a8c22";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-GB/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/en-GB/firefox-95.0b3.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "52592454a7f3a3bab8b1613584da691641b6e25a391b430694e3a4a0a4b96398";
+ sha256 = "27c1b9bb1fa53ef22a6f0c31b91a449c81804734da66b30dce4491f8531acfe0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-US/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/en-US/firefox-95.0b3.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "ec2b8c578b1aed605987b29c89ad168589f736a656d05de555378a5b5adf2f16";
+ sha256 = "43bf184b95b9ff25c415ae9fe533649c0108fe72aee24c56521893d05e2a009a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/eo/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/eo/firefox-95.0b3.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha256 = "769c9355c29af59994e1c16671c73304d4f51ef8642331c5940b208388c5247d";
+ sha256 = "5946960568857d35a1fadb3c3bb2bc9a42dc92e64d6652ceec64acc7e20553f9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-AR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-AR/firefox-95.0b3.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "8cef957fd4f6dae23193a51f6fe1bcd473245cb0e559cef09121b012bf56b433";
+ sha256 = "7380846a63a5b8e8a3471d2af3c26b50719084e0c72253c356280f3e4ca3f508";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-CL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-CL/firefox-95.0b3.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha256 = "551e4cbb9e2208189da351886127c71bc2b8251aabcfbf3868199f8fc2d75e4b";
+ sha256 = "6d41074e2c44d1d0ba63c1648697ae2bb1a5254c41da00a1b1f33df1228a0443";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-ES/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-ES/firefox-95.0b3.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "a54f96c6354616f3b55a67da80f347a402197712fe751971517130d35fe1ec90";
+ sha256 = "021c5c9c71ac4556de6c7da4cf6b36e1693fcf0746ac57174effbaa61c0f5025";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-MX/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-MX/firefox-95.0b3.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha256 = "a47ed73f1c3323b1b8fe005c903e63773f2e1d2ac0956ec0159c3b335bc28918";
+ sha256 = "c2df6f4a405f8b0194d1aefaa3862156b66ff9f488bbb3b720abc20a3fb473cd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/et/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/et/firefox-95.0b3.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "8acdbed6a1027dd9ab042875b8c0d2a612c6a8a86d8a099836dec7fcb7bc26c9";
+ sha256 = "62bef0b8102b3809c46b792e96c130ecd8c2b5a2c53418d4e9cc72dff78b9b99";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/eu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/eu/firefox-95.0b3.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "5809ce9075b2b4ec919e443b849f10185ae7d636009654c5692a9a480d680404";
+ sha256 = "b4932b60aa4e36150dec1d8b7b5ce0a244bb628d37312b7c8a6f0867966e1773";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fa/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fa/firefox-95.0b3.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha256 = "79ab5b7258434720299141ef6df0c70c8ac617e0c92fb7ad394c8bb5adf5515e";
+ sha256 = "ee9418278f0e14c7e97258b8b17d100974457f1c59b9cc9957b9426a9846ddcf";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ff/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ff/firefox-95.0b3.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha256 = "3faecda595fe0dd9685786fc70a81aa2df19e019e724f3f52d06397cb853c5a7";
+ sha256 = "b7c5d0ac455ed9ba1c5258b61e75b742ebf505a97e703d19f6813e1a013bf146";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fi/firefox-95.0b3.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "bb9109efeab5b45a9fedce6dcbbab7e71f06f2e91204fed3dbe160e3d1b757d7";
+ sha256 = "ed78862c15000473d37861f592cf878298cddb35fb721f6fd0309a16dc936768";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fr/firefox-95.0b3.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "6b2d0b74c8eacd8dad7f946ca0f1279d3a22a0176595712859e4de72810c4fe4";
+ sha256 = "f0ed0ffdca130d03b96948c304150aaffd311486040bc8d925b99e34d4039f8f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fy-NL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fy-NL/firefox-95.0b3.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "21f847af86e0806f16a28f6174178e0cfe1cb9bef8728e6d7e4cbd0e38683fd4";
+ sha256 = "219a1c17ebb2d41b025eb484a9f2df23068b61e56bd34d6ebfb8227d3ae5e5bc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ga-IE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ga-IE/firefox-95.0b3.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "c75d79b0e12406e69c00a1975b59003e9cc2ac4467bf565eb17e5af9302ff467";
+ sha256 = "793af4d583b68aa0c2102c81f3c677a547af0e335f00713c36580c93396f373e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gd/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gd/firefox-95.0b3.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "1863a424cde413315e7b7b4cc0e39070c1ed18cc470b32c6a951952b95ab2675";
+ sha256 = "97adc63c32a0cade64307695305f325e27cd97d3990bf6bc947da01b83872a62";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gl/firefox-95.0b3.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "9eb9d0f8f8ba600a50a7005b7c8c165050ff8fb7c58586e2581a1d45781f8ff0";
+ sha256 = "c05af2043451d2f33d01d75addcb8bb6304e4f30322efc8663aab2373186afab";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gn/firefox-95.0b3.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha256 = "8587fc264b5dae1acd2f6286d6e918ececfd4c25e2f79557faa2b9b268a33264";
+ sha256 = "715b877ab23020886f7732e17df318d1e482aa7e63952f65fb6459748d53dabb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gu-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gu-IN/firefox-95.0b3.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha256 = "f592615d49abf4cfe6e0fdbba0534199fc3a60c7a330fef45dd254eeae44d6bd";
+ sha256 = "8134da66866cb14b2322d7ca346dc00a0ce402cb2931cf33e409ac3f811b0023";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/he/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/he/firefox-95.0b3.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "fd19095f03f488c2d4303498ce5f11055104b76cc31073f4ac7d146255653a89";
+ sha256 = "2bc4ba91f25dd7fc0171f7e8c9ff394aec894a4ab537feb13b0f47810fc35965";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hi-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hi-IN/firefox-95.0b3.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha256 = "39f6e825ff611a87ab3a86fe83f36c1036a81e78fb6cf96f619d165ba1066db9";
+ sha256 = "7d20310861e6da853531130c814d22d6df4ef8c5d4eb8e0519e29f0b3b034ece";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hr/firefox-95.0b3.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "cf92d55b8e812c9d6ab4d4c26e1d7c1e6c17d211bba601f7eb9dcae9e0c735ad";
+ sha256 = "8ebc8898ab223c6f975effe14e8507326bc545990cb55b5e8c0efe186fc3c4cc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hsb/firefox-95.0b3.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "3a3fe83158be2ac5839065b31d988ffe170e3945556d91959fbd47c50cffe6e8";
+ sha256 = "f149923e2048412b7e9a4df14479536a2824923e7283b91e14dbb1cd1005816a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hu/firefox-95.0b3.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "67baa75346bec877fd5f780a02e6edcf7f26f3568de4c175b8abd5a21c5dba61";
+ sha256 = "d27522e4f7695d1189b59e5a4a926bddaf9e1aa6f9e8fddcf78be203d9645807";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hy-AM/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hy-AM/firefox-95.0b3.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "66a6143eb2d7e9de36e3c4320f3fdcd6975ffac37fbe33c32519470fcb072025";
+ sha256 = "4e6b2e9edf9024b1021dc397d60630929e97a6bd1ac3a6851b44ac8ba37f4d01";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ia/firefox-95.0b3.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha256 = "c9ff2c7cee071e6e6a08aeffa0e2f733d13337f8088312f927e8b61c24feb096";
+ sha256 = "429e1d0cc03abd17effa278a4f64abd4344e1dab0b5475539d406d5283a91dc8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/id/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/id/firefox-95.0b3.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "80b403898b67fb720e63dc4eb23f9dec28d526144c287a3a74478db7a083f088";
+ sha256 = "5e1455b5cceebc1b1d7ee587640a928331f3db6d32228e37d8029376245f7ed1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/is/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/is/firefox-95.0b3.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "6c3a8e686a74a10b6e360420affd461bb51e840a1b4c6a47fa057bd2e928ea4c";
+ sha256 = "1e09c27534bc853fd82c1ea0c9eb3a86107f0f29724abf107be2e86c7d10408f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/it/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/it/firefox-95.0b3.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "86d7c1a8401f706fcd8c54da28609355f04c3017f14cc32f656090cbe5641a72";
+ sha256 = "f8d517efd3c88a110beee9e225b6311f2d986e05f91f524623f856b795290cf7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ja/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ja/firefox-95.0b3.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "15abffc6fde55d2212283001cc74bb250f8c5f088268409352950356fe2bb59e";
+ sha256 = "73c91c7eced0dc7f2761adbb4c324583d6623b575ff9e6f2af6689308857aa24";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ka/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ka/firefox-95.0b3.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "ef5149154a366f71bbac944ca3a9c05f64695ad6ce0b0f93c8c24262aa287761";
+ sha256 = "287a53af89cc9e7678d86e9c7341868e98493211ba93597767bb5883be1d5e44";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kab/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/kab/firefox-95.0b3.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "1c5ce596f41132a7a085ced18dd7a2377544a360b19f3553de8ec1b652ae1c80";
+ sha256 = "214d5e113e90ab0a18235aad810e7546704a805a8761b5c53332b28167376708";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/kk/firefox-95.0b3.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "f13adef30dd6b0b05faff543c1e405e9dd9e29da718dd49831837dd323732c22";
+ sha256 = "257047f79489b815883e6890e6e4620f2710cf937668d9a1c2b11cd6fcb35264";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/km/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/km/firefox-95.0b3.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha256 = "e32051813912b819150b7509dec726dcfe206a0a8210f8f7b19db1532f683cdc";
+ sha256 = "14fca948f72eedbe8a4aa7081d539957c66fc336cd9c64d0ba85a003156b93ee";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/kn/firefox-95.0b3.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha256 = "4b94e161b64db88cedfd119962647118d7124853d20c03f64d3540dfafffd9b9";
+ sha256 = "c78c4d9790a8f71b85fc53f5856e9b611c4e252207dcce0093c6b2feee23c17b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ko/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ko/firefox-95.0b3.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "ef05cb08b2bebccd2defb0cbda7c4bbb529e45f0a4d3de23a98c81b201f7e5ed";
+ sha256 = "7f9cd61bce4f20ee219503db674250d3d09b8d4e96d80da8d7c90374a73d8c6e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lij/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/lij/firefox-95.0b3.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha256 = "223f9f000297769f259c1536b51598212524ed202e58d225b0e6387afe073a3d";
+ sha256 = "0b34dea142d2906fad1bf28a86845c170789914b2207a7b77ace49859ec68c03";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lt/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/lt/firefox-95.0b3.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "42769ee6bf135861247c5d60482ddcdcf7f5e3f63864e21b50e93398452e573d";
+ sha256 = "c7f254ffbdfac024c186d00a71eae7a4e0620a4e0263f50b9f8f8f95a33242f7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lv/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/lv/firefox-95.0b3.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "d3f2cda8f808a32e1fbd28054232a177a46f3db232806281c3ae1a31a4522b57";
+ sha256 = "f8e7acb4373f82e8d62e62726442ff007c8b463ce07678e0da4bca8387319dd5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/mk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/mk/firefox-95.0b3.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha256 = "89acc976c5cae171aba6dd2fb7e3c2f99594533bbbad0c27eb2b14ac4a1ae691";
+ sha256 = "36d245092a6f3739893dcb2763474c762905eb7233768f2739e9381976c7748a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/mr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/mr/firefox-95.0b3.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha256 = "efa3e483041e64c481d6ef10227fe8ae2b3221285b3a631ff47bf0a156cd2bc9";
+ sha256 = "f2d0d084482d2b65d4966475e8edac1b1c94c8c2d04cf1bfae58e6dfe5698e8a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ms/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ms/firefox-95.0b3.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "30891b9eb724b0dfa216c31298e9498145693f12a47b368de7bbca87f25a608e";
+ sha256 = "9e1e964a2f64a6a01fe600091f8d3a45334e7710c936cbd3f78e17c593d3db54";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/my/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/my/firefox-95.0b3.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha256 = "34cd51cd386cfba4566e758615f65d3a74a072b57479fee738fe67796d09e7d2";
+ sha256 = "d35e42e21e4be92f4921fb886eeb06582b01e142034814624956a07b73c92aa0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nb-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/nb-NO/firefox-95.0b3.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "44a38252170ff2fca7722e4cbf30ca42fb268c70eb293299f8350729389d67c1";
+ sha256 = "89ae0d9daeae3fe3965084068d23f3769f8f40ae90bc483135c48b48b8f27926";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ne-NP/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ne-NP/firefox-95.0b3.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha256 = "86042545a3c9caaa29f200d4e179a364548d42905b6a12d1dd0a3cf82c1cef14";
+ sha256 = "39087dc455abdc14bb43694865320888326c1c478ed05de9117157edd241b15d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/nl/firefox-95.0b3.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "9c2021434b4f52e2ddd1af5953359e7fd6c783e9216790d09909434e35dadec9";
+ sha256 = "988d58514ec177c031d8df463de1f9251c6ba932123d96c4ab3adc5ecd0c224d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nn-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/nn-NO/firefox-95.0b3.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "12cd5d82ed9d74f44e5eb6371c45f65152a74342add2828bf6927c384471da4d";
+ sha256 = "161ba60c1648e66f89f0af272eb848d2654a8af9e1ef7f06d678ad232b09a24b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/oc/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/oc/firefox-95.0b3.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha256 = "f9d56085b622cc36a1559171ad6bafde322630d638e9a2934dbe6ff933c41a04";
+ sha256 = "22321b31f4a20a43c838ebff4c9179e1cb73f4333acf458705c15db5f26f772d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pa-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pa-IN/firefox-95.0b3.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "9f1557c39b960da9c13d7bb25caeb03d8cc35ff1e2983682c56dce61ef02bc97";
+ sha256 = "e1fd6a78938021707cbdd966f08de7fee0cd0f96a7030acc7169072e9735e3f1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pl/firefox-95.0b3.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "c7a0989eaec77ccec91464fce8c443bde4069eeb91c069e7919f2fc09715d3b7";
+ sha256 = "0684e74c1ef60f6e9db51dbbf0fb7f456636665173406d634fcb474430f16af6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pt-BR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pt-BR/firefox-95.0b3.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "4d36295b3998c0b512d6757899c8a88f6e960d81fd7ac1eec4585f4f90dc10cd";
+ sha256 = "27cb20a8511ead70644dac22d552cf8a33716ee55ca4a8e31f145c41fd1f5109";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pt-PT/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pt-PT/firefox-95.0b3.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "a0d88e57288dfaf4aaa5f133e5790c6de78bfaeb66b1bef5984c522e05e58626";
+ sha256 = "857a616824dd7c1776c181628b732f20111c6de8192f8d772711cbe12bb659b0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/rm/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/rm/firefox-95.0b3.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "5157ae9afa5b8ee193901c1d07dd993261b997be7af0fbde407ec938bb2460b0";
+ sha256 = "aebcf988963324d57099078474777f8fff23d78bdda0bb8e8a07b78510dc822d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ro/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ro/firefox-95.0b3.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "73baed0ba08e472f57ab2897cbba7a4edc4c63a80ea5bf374a65c3fd8d9b68d0";
+ sha256 = "5dad61bf11c5efff6068c2745078474774a859859f373782dacc128892f89556";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ru/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ru/firefox-95.0b3.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "8b56328580c42eb44669765e1fa912ce4e4cf5c8f61f3bf32f011661b59b31ad";
+ sha256 = "c99f75d57e2d39cacc7df8a1031b6f25b0e190371e78205da43d39ebf31e5456";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sco/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sco/firefox-95.0b3.tar.bz2";
locale = "sco";
arch = "linux-x86_64";
- sha256 = "6b8d7cdbcc0254e5d48190032325af651a068f5b53f04b258b2c04ee44300fee";
+ sha256 = "d653190f119bd11cfb04fc61ead507cd0f1e2a5e1d95eec3f44c3aa15a593dc6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/si/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/si/firefox-95.0b3.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha256 = "d31d5b07b273d9cd69ce5422298ba4a2afe874c4bb7e86215ad9abaa5a867786";
+ sha256 = "d3ed08ab23f62e4430bac90a840c47bcacc88cdb0dc22a3ec6541e93ca4ffdd7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sk/firefox-95.0b3.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "a9cb13bfd2d8b38a144c82a8b7718eacbc26f241a75cc9b42c044130e4acbe56";
+ sha256 = "48864af2fb4238bddc71cb079c5b8c2d3bac0fd71a086c7cdc6370c686177c58";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sl/firefox-95.0b3.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "bbe947610a3eeee8d93d2f42504d9fabff9574519c67568305c3786df121a0fa";
+ sha256 = "8b4f326420234eb8972eed66780929db4d37ccd8265ed3dae87e7754f49b6563";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/son/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/son/firefox-95.0b3.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha256 = "67a26046e446d455c1acc161736e0ce0077a7486bf645e03eb2cda98b5b08e8a";
+ sha256 = "0c62ae0a67d83badddfffb599c7347371cd95e98d25c39d7619ab708a45b48cd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sq/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sq/firefox-95.0b3.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "c97fa4c925a8f78fc86e5df390cefd75dd881c27e328730bba7fe142673bb2e0";
+ sha256 = "eb0ed5f8673f04c209c946adf3492d187cdd6e275c6b62aa0e9e2007953da2d2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sr/firefox-95.0b3.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "acb8f82e49472d39a771bf54b0f7999fde4551b165db334c53a2bf91b84ae83b";
+ sha256 = "ff835d9cb24936714707df0f3424fc0f311f1de25914ec0ae079626e44125c2f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sv-SE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sv-SE/firefox-95.0b3.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "4e2b4a35ba5b3a68ddc43cc268975d1d717a836c6e83b28b5857cfb63c1306e3";
+ sha256 = "8dab744e092bab2d0ec6ee9517d639ac4cd3190a617402602d2124f6077743d6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/szl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/szl/firefox-95.0b3.tar.bz2";
locale = "szl";
arch = "linux-x86_64";
- sha256 = "eb2680babe9f84a0ceef228303cdbe6576acd8fb6753026af5dfbe7779ef98c7";
+ sha256 = "d204778205b703e15200acbce9d82bd4e76dc40206328d915fd17915f5a716a4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ta/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ta/firefox-95.0b3.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha256 = "0ca07506b739e405f1ac3fad1842cb3f7993c580c1c9d65a0cd805dd531d0f2e";
+ sha256 = "f23bdc488e2a53871a2f664ea4dac52607476b35b6abff09fc7203c3b806f829";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/te/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/te/firefox-95.0b3.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha256 = "c8660dbf2ca596dfb0ab28178701a8718f6ba7e556f657a19e1c50f69d80edbf";
+ sha256 = "3ea085d2b02aefcdded47157203ffc8e7addb6828ffb241a03e4ec955b646129";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/th/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/th/firefox-95.0b3.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "14a935d95568d0c8f723031291c647e6548880f66abb082319303832a3b8c212";
+ sha256 = "04760547a1e18dec91b2bda9501aae9cd3eac6ff17fd1dd0c31b8dd0491b03c1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/tl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/tl/firefox-95.0b3.tar.bz2";
locale = "tl";
arch = "linux-x86_64";
- sha256 = "c6b1745e717ba35fead6cb9c3c735084e2b019aaa4b20a0fc9af480b9703ae3b";
+ sha256 = "64f7c59b2c5e84e30329ddaac5206f14189b22d35d6214b1cbc13a61db804131";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/tr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/tr/firefox-95.0b3.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "0abfb41a070c5bd2941d29b3c84ab3d9eed74e653bb6177a59803301a27b5465";
+ sha256 = "bf06ea01a54208dc724931d16b96d091c107198ea6e5ca6d979f111b9a1fda4d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/trs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/trs/firefox-95.0b3.tar.bz2";
locale = "trs";
arch = "linux-x86_64";
- sha256 = "a405fa57208ad50ab282f87725fa47789f3afc742c6bf65b872ff2e1320dd83c";
+ sha256 = "789a98876b52043bd924b71d68858ccabf25061ad8ea25151cdc08d773ed88f6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/uk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/uk/firefox-95.0b3.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "a463362bda810d83d86ad8e516cd784ff037f8571a2530ea409c8c6539d5af82";
+ sha256 = "9cf8beab66162b0140cc7ede761331b82effd663c05b36031ff563bd08d951ac";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ur/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ur/firefox-95.0b3.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha256 = "bbe19675765e179d7277dcb97fa46cdcced95ab1fc52f88bf282d280c29fd376";
+ sha256 = "5b6a8de8051e8083ade61a728dba23e7c2b5484d990a9f7022f0356f0dea992a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/uz/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/uz/firefox-95.0b3.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "4cdeb5836d53de3234e42d2af3db899891500ce9d6ee1ab5ef8ccf6e13312e6e";
+ sha256 = "0b1887c1a2f0d4692b39bb1fe2e4454d586476d9f3972903ec9b2fd009557cb9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/vi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/vi/firefox-95.0b3.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "db8690e204c87d956665191fe767212d4c5a12797143cf48552d24cf62de81bb";
+ sha256 = "df016a17c78cb29ef6f8b6b5f4314e358ba3407beb97997d0e97ae51acc7962d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/xh/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/xh/firefox-95.0b3.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha256 = "6563e14b33dfe307967f75b06bb18f5a2f6ef5de4efcb7f59b0efd0727f95af6";
+ sha256 = "a86a366761b6af5e70fbbbd10e791db65e17d5b27dac27f5783c79421f6dc639";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/zh-CN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/zh-CN/firefox-95.0b3.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "a3e6b37681f053b771e10a745b0eadce52424d69cac40896112fe317f424701b";
+ sha256 = "66d0221e172b22569c6b3f5bb32d1cffddc9ec70987a464e43392b082bba62ef";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/zh-TW/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/zh-TW/firefox-95.0b3.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "cd4e160499499bc09e3dc813376711d5d084dff4a2728df4ebc611617a6df56c";
+ sha256 = "419161b9f96062de4b2b17c5052030202ed4be2e707f4028b73b656168423921";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ach/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ach/firefox-95.0b3.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha256 = "4049dea6bb18ee343452b59bae0072d68b1e8b7c75a22ac03122a56f0804dd55";
+ sha256 = "a2c16ba8478d501abb48ca6129507942a017f322c4d29cace1f662f8d50b351a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/af/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/af/firefox-95.0b3.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "7acdcd0346fef075473a3585de300b90bd00b2ddc9bd7ae2ce094163b361fbd6";
+ sha256 = "1f34c7409880d2e3f4eaefd62e47751859a5fed0a7f1615f69631edda1494973";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/an/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/an/firefox-95.0b3.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha256 = "1e8da8a7e6e5b55ace65c4d7040ce20a2829f222f6636b3638f849af8d8d180b";
+ sha256 = "5c7e0997b409029bc3ba64574d3b6f79820cb9cbd21f0d311485150aefdc4ba0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ar/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ar/firefox-95.0b3.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "3c6502b58e6ffe364ee1aa2dcb2b69448e45885211a99684b5ec725a8945a648";
+ sha256 = "81ff44fe65466070288bd6fcd4b2d4c9969321597ef9e1773702d098d74f33da";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ast/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ast/firefox-95.0b3.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "ebf2d99fc7a64876a9541e27a77cbb7c0a2c69deaa0defeecd1e2ddca2b11807";
+ sha256 = "34d2b7eb300e0ffa2d5fbcbe061d536a565867853f88eb3388ea1d32684b32ac";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/az/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/az/firefox-95.0b3.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha256 = "3630b509a69a5511fddc9347b89b8afda1c60ca54d42cdaa30409593a7eb8f39";
+ sha256 = "b79807a1500211349630ff2ae997462e382011b731ccfcd9b0ed787520d7b075";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/be/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/be/firefox-95.0b3.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "d112fb18d55b5381470103be2cb2a068f3712a1ed16912813f59f0972d8cd5b7";
+ sha256 = "8029777ac9cd721befa5da4a4fb2af9f4e2d7bd22f30c8506ddc739d8fbf31f4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bg/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/bg/firefox-95.0b3.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "b0c8a0ee33d50fbb2a6d9b0770a7b5fe85c7f8a00eb15cbbc57abc682b7f7cd0";
+ sha256 = "907f5b83e413227e83bfa9ce7caff0248969690a822de170924538a2d4480616";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/bn/firefox-95.0b3.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha256 = "63bca544f093ec07b5813b2b692edcf6ed1d46068f1a736a49d55255a7a7a23d";
+ sha256 = "e0e553ebad27775fd625babe053c9adc5452a8cdf1d495632a9961ac825549f7";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/br/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/br/firefox-95.0b3.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "8b419f06da716bd14f6d6c0534f2ebb622c25a8c52f9f7e03b4bf596657e8612";
+ sha256 = "a3eaea3797b81f305a0a2162a0491f2f7a22d64308e076ec44ab4866e7100778";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/bs/firefox-95.0b3.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha256 = "edab469f4b69d843a15a925a667c8fd33fd16cbbfcaf4ad16c8974bef172cbbb";
+ sha256 = "371c7960a78de9fc652ed7d3ff56cbfa7015085e2d430b7cb4d30ecf908fc027";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ca-valencia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ca-valencia/firefox-95.0b3.tar.bz2";
locale = "ca-valencia";
arch = "linux-i686";
- sha256 = "3be5d8044cd4f8a474fafe864f8264776ba5a478bed7510c6530ee7966d25d3c";
+ sha256 = "2c15a7bcd86c3db9f0fb796eebeb0a984ed9f2689654b8aa22abaaee70e25b40";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ca/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ca/firefox-95.0b3.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "b330165f8326818276b06bf4592984a4061c6236c962dc54d060318aa2131481";
+ sha256 = "d1c667da851018502fb884f9fb4ea16e989155cd179da2771fa94cb70d23b325";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cak/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/cak/firefox-95.0b3.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "d705ca432b15db9b0f2ed0b2067ee0d236fe788434dc066b428c19d7420e34bf";
+ sha256 = "69f13dcd0cd9a7014e4555f47559a4e5b515d70083abc5331803a6ac58f28b9e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/cs/firefox-95.0b3.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "3116ba93d2926b38d6cc372d3a7e8c746b0c1da14237ea8c18ac51ba7f3aa8e2";
+ sha256 = "0151d00465cb9d23fa9c43847e09d77d7d4bd1892efdade7811bf1f83391d1b6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cy/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/cy/firefox-95.0b3.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "c598db707229b9d19723943e018b52b45e3a6c129c3541cadd64798127c403ef";
+ sha256 = "960b42a14ba87d99549ab66677dab4bce88551fcf44dc3240f29ead31fbff435";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/da/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/da/firefox-95.0b3.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "31a2ed6b5d9749319e754e259c9963a195edcc93349429856eb71eecf5b4395d";
+ sha256 = "f866c0217a77b9dd77234cb2b83e63858bb227e7b011dee69afcb21c0dbe0d66";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/de/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/de/firefox-95.0b3.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "dc3734616f5d1d997dd0af6a16df090ed28b1945d4f621cb306030cd3ddee06a";
+ sha256 = "28caa97e671f9165c5b6889a678751c41a83b13ca1d7a9b1b6ee434ba8c10319";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/dsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/dsb/firefox-95.0b3.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "4d11e58b9885cab5f81bbe55b7976d63079d019bc659c23eb537d09a7d527f92";
+ sha256 = "519cd1d26de63628de5edc4800c10981bf516ba81484d2c14d15488daf541988";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/el/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/el/firefox-95.0b3.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "24c23df7db690d2f998f424cd90e951986378a861ef4c722e6517465397c69f4";
+ sha256 = "7dd982bb79a8693f935c5f98b4aa015aed8034ff2915e8766928a06f6be7a2b5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-CA/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/en-CA/firefox-95.0b3.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "71a3e42722b84fec6b286d1b009270d40022d43b929b8226961c589059262da0";
+ sha256 = "0ac683ad5725c5e793c646d7f9723f44de8a7a4b099d60683df59d0143e26e70";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-GB/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/en-GB/firefox-95.0b3.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "9e29763788ae6df281ef367def18a19385605afc211a888c24bb0971cdb2a073";
+ sha256 = "37aa0a3fbbb99970c3b6ffc8e84707ced9af815cc32c12f07f51ab22e1f00b85";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-US/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/en-US/firefox-95.0b3.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "df7b71e338f62f841bd5154aa454324416043bb0485c6ccac8fa068240a5ff81";
+ sha256 = "e33957b8729f4c28665039232ea8ba670dd6c8ccc92cbc18453e123f578f80ea";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/eo/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/eo/firefox-95.0b3.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha256 = "370e0b201f706dfbf157cc49d02adb36c64e660d95dca4a10d4020c77e4d3e59";
+ sha256 = "42aed0847ab7de209cd561a43de5dc0f598646c179738ec905ef814e567edc99";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-AR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-AR/firefox-95.0b3.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "4c70649db14fdbbc04a5d9cf464cb538f8e652c26e79edc5f388c1f0bda4377d";
+ sha256 = "3101bfd23d31cff57f40e7e2f517ff592bba974aa45f893cc76a2589deecdf16";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-CL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-CL/firefox-95.0b3.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha256 = "151f18e59c2f1a986ae07f0dd8184bc5d6f3f8d1e9f02923d433740620fa47f2";
+ sha256 = "05a8f3c9f12208b396ef3a38ba001bd688f98b730d52ce5b2887c47f7a2fddbd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-ES/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-ES/firefox-95.0b3.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "2298f5411f24fdfb1e1e0488643cfaf71caf1c1e33823f4b7f4b705f0bd663f9";
+ sha256 = "d6a33146ed8ba2dcde668e56b0d6baf76402e6c55c39fcd18cb6927d4120adf3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-MX/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-MX/firefox-95.0b3.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha256 = "1ee921da00504251d898ffad33a524c0fe306aba8b555d973e058c7f5950e680";
+ sha256 = "34407e3d05a5fb50dd94559af7381348471fca04b03fd8c3f3aea11c2b7543a9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/et/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/et/firefox-95.0b3.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "dcbe2aa046fe5123a53d6f29ea7961c214a6a2aabeb1d8b0ea586b6cb769a656";
+ sha256 = "376e9030777f32785517a4fff01b9c125a92100965fc560627cbd61ef8e9882a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/eu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/eu/firefox-95.0b3.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "d5b2cc74d0073a47c6ca32ce9fdfec34360e09e00459823a04e8780eb24e427c";
+ sha256 = "1b718ceaa8f0c807c2cd8f0fa23c29b5907f5f35d024cb409af537f379a38d38";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fa/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fa/firefox-95.0b3.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha256 = "1584f4daebfd7dea873f05c86af3625193f5ac376281229076f4e5d3a9c9c0db";
+ sha256 = "d8568027e9bd8ff2366a6289c22cb8f2043ab7aa8ce13f6bf92f5a36ec842a7b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ff/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ff/firefox-95.0b3.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha256 = "263e74577c0559fbe65f157ebbd199e4c31a092227c79378cac6a52a263aec26";
+ sha256 = "6143d1382bf317876b632db2e1c153dbabd9f977952aa5de90f1dbae4ae90d53";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fi/firefox-95.0b3.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "c9dfd9166aea3a5ac1d124285b19e65914908a96614a5f02f089d05b8a8b67e4";
+ sha256 = "dcc0a0c16a26c86bb09a88b150f897806958dc8479f074b28dd057452923b8e1";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fr/firefox-95.0b3.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "9392bc742f0b99eee0b44b7f936794a5098eda0ee67ce8720d7263dde1ea459a";
+ sha256 = "7ae2cd7e392c1c6e47ff0cf0b47797b4a0a7ea7b6554a93462449997ae91272d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fy-NL/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fy-NL/firefox-95.0b3.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "7be3b93ec071fd2e8759a29a0eea0486c0eb7f2aa091e26ce3f2d3e0e47d0e23";
+ sha256 = "ffb5531ead8406c5312e6a16b90d3ebcc27495dd37b167cba6186d838a007c78";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ga-IE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ga-IE/firefox-95.0b3.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "0ac9df6ec6d46588028af9c462a3ac9a6e97418e2d3cd4786f1f284069c60b80";
+ sha256 = "12012e40100c80606e076548ad1738f74bcb4cb62b44afa2e89dcce556756a46";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gd/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gd/firefox-95.0b3.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "430016776249d100bfc5a214949acf41fa9065a679f99f05abb4931ee8770768";
+ sha256 = "f0164a64438bc280a726255ed2887baa9df6021e057558deb6873d76c4157d52";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gl/firefox-95.0b3.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "a2c4e3cbfe150218b1d9aa158fdf22b195dc85832066dc7cf34ff1caa6e241d7";
+ sha256 = "0118909f19a14f855b747d6f9c0257b61ebb26eec6a50337b96a8ad36ecf3801";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gn/firefox-95.0b3.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha256 = "a5946fd82663f7127f9ab867eb8c1b09aee2d00e287ca78809cd76ebd009894d";
+ sha256 = "49b80164481a3b9786bf8a2feb4f05205eec94759781ef6db34664144a2fa13d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gu-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gu-IN/firefox-95.0b3.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha256 = "9474d901bf617bb76ea3052225086689dd59b9d17a0b0b86f36ea501829cffad";
+ sha256 = "c82736afb3a9394764c10e77df765822c4a63703c4ac10a12a50dfdaa99aceb9";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/he/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/he/firefox-95.0b3.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "a91230f5c6a47273e134252333d8146c3ac7a37a5fbe1e52e5cfc68dd5a813bc";
+ sha256 = "2d96c2d26df3d8c748ca5964f0d64cbe3a19f0c2ce19c20aeed75c4cb8ccf75d";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hi-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hi-IN/firefox-95.0b3.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha256 = "52b5c938ac1920321612adf241fc6618c878abfb31103e72e0634a1dc1416da6";
+ sha256 = "e2416cd7591675eed8228f8c7537d351ee98f8e569d21b7c15e1de958d0686eb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hr/firefox-95.0b3.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "32046eca67d812d36508fcb918292fb7c50c7a663a439a1cdef1779dbe470982";
+ sha256 = "c1ed97934c29e95aad7b57ace5eecd5fc25359eda349d08456384135cc5eb1f3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hsb/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hsb/firefox-95.0b3.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "858047b2ca9c33a1177625b00b2a46feae836c3b1985b5dc699120194b7592d7";
+ sha256 = "510137ee420ecd1157f6fa91a6433313625bd64c4ebf6b6bdfe20ace8bd8881b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hu/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hu/firefox-95.0b3.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "293c677e1b7dd29832f94cef92af1b646fbafdff6597db8cc384bbde73c3dda4";
+ sha256 = "65fb0b64ffae3627028377507138bfabb9ad74e8c5a828f0cc786ad04ac81046";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hy-AM/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hy-AM/firefox-95.0b3.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "0cf4541c98712014394dc6438536a98fdfeb70993aab1c323a30d3f5f46511f8";
+ sha256 = "1acd294876af4206160785bc8c9f55faced43a0415ce039b04faa413736fa325";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ia/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ia/firefox-95.0b3.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha256 = "b1367ef6cc208b39eb022d9767adc0b36169b201ba5a30cdf9db6e08afb2b0ce";
+ sha256 = "097e1b19c26437a24b4ee6d5cb0265617eeddd4b9a8171385d16e8303513759e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/id/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/id/firefox-95.0b3.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "d7f7e0afbd30dff3611b5785e0570b31aa536f67e3d3542cad14beb88f26bbe6";
+ sha256 = "a0759b8827d7e891f32bfd15f3c6db173a6ae1a11f19bc6640643598bd165e20";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/is/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/is/firefox-95.0b3.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "75b5aaf6aafa26d3b4e51f65cf545ca8c673d71e9a6e8e047814a681d6a7faf3";
+ sha256 = "48abe4f0ea000ea344c83e4e8791cfe00cc21a958dc27dafbca1ccfafd761671";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/it/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/it/firefox-95.0b3.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "5b105dab4223fa1b0415e995c4f5e71139427ed9024db5a6e11cd93e3bf370c0";
+ sha256 = "fb582c7179b5d912188d07fa8e7b5e2adf97122465d31645ec4ff31e6579a441";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ja/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ja/firefox-95.0b3.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "d1fb1d2a0d26bb5cf297183639078e7b631840280313f08c80c5ec78e4cbdf8f";
+ sha256 = "83092e4f2a61c9655b67247f3d34669abefa2803adda427658a3b4d5b5f3f1ae";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ka/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ka/firefox-95.0b3.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "cfd785976f05874dd811c12678a73a0c2804caefe2a01a55839a81f4cb56e580";
+ sha256 = "c4d8648f7eaec2268fc94f1a08e3a59f04ae891e0b43dd73ca9a873ef9e87920";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kab/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/kab/firefox-95.0b3.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "e57ffdeb5b3251bf79a3a2308e5b61322db608c0756a61fe28593c7fbfc3da7e";
+ sha256 = "213115ee45ec7639ff8b9e9d8a7f3638e1434339a564c2514d6a804afa18c32f";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/kk/firefox-95.0b3.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "eec7d365e1567a4b5ae818b2b42354d9f0109c211bd38af9cdede58c687497eb";
+ sha256 = "c2a77e482e8c60abeeb12e06e0c0c4277d8d26ad1414a86d3c6e3df2a58bcd35";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/km/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/km/firefox-95.0b3.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha256 = "42f1ed4bdc2cb8098d87b4a313263a5af352a0c3f4cd0cdb7bd07fb7db54bf99";
+ sha256 = "1da5133c8c0eb9ef97092b7c3e2a38dbdbd8026173fcc80e74da20a0c2208ec3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kn/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/kn/firefox-95.0b3.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha256 = "0bd163bd0de53e70fb53bd95aa560203d3af91233e6e75b2417fa7a7dbcb0969";
+ sha256 = "ed1d785de41ff78d2a3891349c44ff61aa0d8ddc2efb491ca0c2bf2c94b5d8b2";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ko/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ko/firefox-95.0b3.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "304b6218cf1f93735589be998b09f9b7ab8dff300ba8b8d2ac28b4a59925b526";
+ sha256 = "5559ede0cbcba00f9d4dda5a3a5809d83d1484518a7f92c296ac6cb7b6a2e5c8";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lij/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/lij/firefox-95.0b3.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha256 = "e983f5c04ff113f532e2125c4cbcc474569975eb0b48810e5b64348bd100c51e";
+ sha256 = "47658288c6b55b4d64628cd119236f0a3bd6b6673bd1127efa7247e9a86f6ef4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lt/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/lt/firefox-95.0b3.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "5e77dc75af6951262e7f427ac18f9ace83bb28171a9b3cfb9c702093542bb2c2";
+ sha256 = "964cc674d2afd867203965210dd77594ac1303d5b1d1b2de3cf7590f44bf9d3c";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lv/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/lv/firefox-95.0b3.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "99924cc0493a8309a947cd190758b7a0656c34be18b0f3cb02a6b09719cee78d";
+ sha256 = "f22df962e2b2c857f6068ea2611260d7a8dff86fc20877e4ce5b2457e7c1f1e6";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/mk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/mk/firefox-95.0b3.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha256 = "23c0d0defcf9bd212bf53a7ff4b6ead8787b0c45a0421f27e403be8067bf0b69";
+ sha256 = "9bccdf824261c2241e2c925bad37298eb6311949e568de4c525ce72723e9472a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/mr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/mr/firefox-95.0b3.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha256 = "91bc941df086f34ecd6ca3ed6116fb8d90bdb5148e4c206f6cb377c720dcf90d";
+ sha256 = "91ceb3394fe9d33a81955ccba054163c1012c5219b00a532d3c7e007c0d5aba4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ms/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ms/firefox-95.0b3.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "83cee1afe5711c1735e9f7242760f5a06c912d1f488a2550e6c377e56c80e837";
+ sha256 = "17c4dfc95a0413c3d2b599335efdca8685553da02c66347ecf2b6d64ebcc9a36";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/my/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/my/firefox-95.0b3.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha256 = "d8111a8274c916dcc7d19442cdab770b3c1895debf8e6e073402e14fa647a2d7";
+ sha256 = "b920b16f5d6d480e2ba82cbe266844e4b4d760ed768edd955d8cfe69c194eea5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nb-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/nb-NO/firefox-95.0b3.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "bd45064a98e01c6048c2f1497d17d8e9fc695304076f7e8e3bf91d2c6ae0aa1b";
+ sha256 = "97c26af5588cb00b063d145ac9cade31d46c86fef2320f6b7cdc6cb5dcf7dcbf";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ne-NP/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ne-NP/firefox-95.0b3.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha256 = "258a79a425ac0de620e1e05a9710a2f1c6972955bdd075f39ef3d45a8caf1ac0";
+ sha256 = "7256e3dcce679ba4422f167def4733e63aad07f49fb2f7d98478f9c04d1eda4e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/nl/firefox-95.0b3.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "6a7d5d49b97b08463280935e9e2cf22cbac4e00416a113ba320bbc6379604b11";
+ sha256 = "073255f663230e17878431ce22bcf6cb79c3782599c8f49027c776dd824c27bb";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nn-NO/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/nn-NO/firefox-95.0b3.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "e85e22c122266db32f28c2701682be59a0ebd5991eae47dc83f1b21ace3a486f";
+ sha256 = "01b4f98e2114533f6a80fa458c13f993a470029b797a5e0fcac63ba58063f8cd";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/oc/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/oc/firefox-95.0b3.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha256 = "f21eb275072e63bdd5508d10ab07f2fa3633560fafe45c522f29c90fd7ba511b";
+ sha256 = "041259974f4aed0698c30d66aab34b5e7feb6d1d4b5c466038d6773b8d4f6151";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pa-IN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pa-IN/firefox-95.0b3.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "26c77efd91b134b19a5054be1ea1782ce9026894be5b1fa3d563cad853b2aa79";
+ sha256 = "a275bd1efe636e16573737c18feb830055556783703b1c712149cef2da416129";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pl/firefox-95.0b3.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "c003cafaf65b18bd89c10d7f225dac95e254c7792499379f962795da67bf9920";
+ sha256 = "e713eac0580014540d4c522337909fe61da547ab764d47e8b8ec2e22fc2b3d19";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pt-BR/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pt-BR/firefox-95.0b3.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "ec8fdd1b154a0cc44c7eb573ee46a52e191115ad6ce26b1e5e5e6d58c5feb790";
+ sha256 = "d1071491df87c5fb15e91764353f6aad183fe7c5f038114ced8f1f77f1f1ebca";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pt-PT/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pt-PT/firefox-95.0b3.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "b699ab3c9034a54111c91aec2292803181466f482fc36a4d56ad2ab1642776e6";
+ sha256 = "d86e8c91eae6ef5821b378a7924d46f522f50d972f35642683f1407cbdbd608e";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/rm/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/rm/firefox-95.0b3.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "92d2ff95f2b4a4933df5b94e314d9b4ab3957cb4abf852b93c5f547e3c5cfeca";
+ sha256 = "ef71fa9d42c0869d566f47d80992987026926afeb6d37b5e79e7fc1d349ccc18";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ro/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ro/firefox-95.0b3.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "7ef53acc59832375854cf6795bdd5ef02dfd94bb50ed258b981364332d4f1b98";
+ sha256 = "a5c5b6343be01f7ab99ce21ef2138128d77fca2e3ea86836c6ea95bf461a972a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ru/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ru/firefox-95.0b3.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "65c0596d5d6d889b8dd7bca44c302b46fac0e584fc8d7b0e31db28943886e3ff";
+ sha256 = "62d94da86719653a2143291b9dd201cd1c7ab54379aa64a688dc9264c100ba3b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sco/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sco/firefox-95.0b3.tar.bz2";
locale = "sco";
arch = "linux-i686";
- sha256 = "5f07b16697dcda7129127c2b0d69f05f6ae4d52b1c6a158c979ea96f77124b52";
+ sha256 = "99e15a1dc3f5480ace4e78620162363e32f40e307bd73cd9a186a91344cc06c3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/si/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/si/firefox-95.0b3.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha256 = "3a1203cc2974f91ca023b5ebb99945708dea0dd995a7f2ab7dcd0efdd05963a0";
+ sha256 = "d8c30f6dc9d44ef986f99fbe0fd4ddbd98685455298e04b91e3001c7bd0eefff";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sk/firefox-95.0b3.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "1622f6101810fec383598d0d586023137b391cf3657d14ac223a19874887ae6f";
+ sha256 = "b07cd41d70df6d338ff35f1ed1d398ab43243803a010d50f5ad206ff408374c4";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sl/firefox-95.0b3.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "b64163b6769fbdca125b5f593c99b368e6750db33b0289f093b6622e4c084bea";
+ sha256 = "18653e5212d6b99cb3539d419763af33377b422c0aa239b61f132a0a7d8e3875";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/son/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/son/firefox-95.0b3.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha256 = "dc7fa036e51002568832b39d929fe519d3f485dafb40e2804c687b00e24151a2";
+ sha256 = "e44583fbd4dad99459cb3bc4cb6c9820d6346bc087a892c41eece5a63fc7a717";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sq/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sq/firefox-95.0b3.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "8e0a44122cee3ce32783022e6adfc34368939089585e2cc59bc8cff2d77526ce";
+ sha256 = "118eea3d5ca74a46e9aaedeb05c40e895cbeae902ec6b4e31cd61a6167726610";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sr/firefox-95.0b3.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "63162923573e087dfd13c3e3fc65a4b5c20ccc7427fb0a5809639d1edead0b53";
+ sha256 = "6154157e166aa7f9466119a34bc62d829c9743f84410443c5c7dd9a9fa57fbb5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sv-SE/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sv-SE/firefox-95.0b3.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "d29eeca6fa60fbfc225610f3d90b3e394296ecd3edf8acd0a9417df22d8f41eb";
+ sha256 = "8b3868825c2aada061ce4d99b41971a5d626e9df5cf34ddf6cf9493f700f5f3b";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/szl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/szl/firefox-95.0b3.tar.bz2";
locale = "szl";
arch = "linux-i686";
- sha256 = "a2d122d98a66cb67820111cf6914321e094f112c38ba8b10b7b413631258bea3";
+ sha256 = "2610600c408da7cc743144ea628057bdc826035472804e3f9d59134ac235c14a";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ta/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ta/firefox-95.0b3.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha256 = "829f0888af39a91bfc7d1813d37f3c8fd0379eb80b8445550e0d00af9ca89167";
+ sha256 = "856e537f4bc72e2e0ec8b329db45a69ede9d91b86b70c9413f5bdd6e0e3cd997";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/te/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/te/firefox-95.0b3.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha256 = "9e5862a75d161b3a7a5afe0b04625a4e195c08c6d76f9b359b5c18470cd2f7c9";
+ sha256 = "383b6ac9a74295865064d2da74ef2df72f69f0197d935dee942cba9502e183c5";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/th/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/th/firefox-95.0b3.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "8562d938f7afb33d2c393a047cd48b4a5791c9fb9d20dafd5c60402b08505edb";
+ sha256 = "9939510e49b9f9a0831a87b364a13c34afe9ac77e51c5e99ca46db39d0d398ff";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/tl/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/tl/firefox-95.0b3.tar.bz2";
locale = "tl";
arch = "linux-i686";
- sha256 = "541cad5bfe1cb36595e6ffff13af66f23595fa94d0a2b3591920519da06f5bb7";
+ sha256 = "5fffc0f168072b0da9ff7f74742bb6ae0fb7d5f02ec3258eeafcb5971b215366";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/tr/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/tr/firefox-95.0b3.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "fc59be56ae01db30b9349cdd912f40fb16851d4ba45d85cb2741c00bcaf1eceb";
+ sha256 = "61fec1fcc042f9d50d3fa4e4c178493a45ecf42b91df9fe19131e555995c1747";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/trs/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/trs/firefox-95.0b3.tar.bz2";
locale = "trs";
arch = "linux-i686";
- sha256 = "6b07660d7ebc94792483ee248d87de5b28c720fc24cec2acbd3feb5275250e2b";
+ sha256 = "7058996e6f42de987bfbfd7d8f43ae51693ef985f71cc265d850552b8f61bc52";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/uk/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/uk/firefox-95.0b3.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "1936549b7414a8f8712bc642b1d95123b92c1330a523822c6cd35146bc723ead";
+ sha256 = "f9e4a138049e31321198bf0d01a4a090ce3b0d6542341d6c7260a276a33a9871";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ur/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ur/firefox-95.0b3.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha256 = "38c599db47a31edbc86fc57106f9dd4e95fc5f35bb92828c6f8f1aab4cb4ec66";
+ sha256 = "222fb81fc237b70ea79d0defc66dea43fd004c0558db284f7cf450cbbb43afcc";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/uz/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/uz/firefox-95.0b3.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "6be5066a14c96acba04a49d76c9f08f1f5aec41b492c4473ed8744f7fdd6fe14";
+ sha256 = "1cb5f7ee568b85b8151e5119ab163c91f0ba6633551d0683f6cd476b3bc37486";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/vi/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/vi/firefox-95.0b3.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "0e07833741e12e53d6bbc41eacce27ad3f65d6e3dbfda5aff701ac3c915654a1";
+ sha256 = "2e851524f4ea2ec410f9da393e034af1b021fedbe9e8b8103299662329867ca0";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/xh/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/xh/firefox-95.0b3.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha256 = "d34b9f5ce9b3f3bf94d0412d21283909a8170e78aafc0db5cdb006c1a48a5bc2";
+ sha256 = "4f9ee5271308191bbd89b0410a6141ed21eeb590de3a5586e1736419f456caa3";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/zh-CN/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/zh-CN/firefox-95.0b3.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "a865cf695ddfb17c218c19ebd7373b396ca008ff4e848af80725881a4398d7b9";
+ sha256 = "dedf2b2df257161288dd6fc4385ba56fdb285e532bd16f53294162e4c83b0a98";
}
- { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/zh-TW/firefox-94.0b2.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/zh-TW/firefox-95.0b3.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "f5c1ab464a2c66945116dac0c7fc5da7b21dd5e219b0f19cc7bb210b0d649b71";
+ sha256 = "342f39908d268a871133b6e51c4e5d92026f92e7b9fd8602b31a6c75c1566ad4";
}
];
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 8d91260b6b..5c065c4bde 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
{
- version = "93.0";
+ version = "94.0.2";
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.2/linux-x86_64/ach/firefox-94.0.2.tar.bz2";
locale = "ach";
arch = "linux-x86_64";
- sha256 = "8be7f497a9bd28eedb3b30c4c5437242cbd599df3fa5e7a6a2912acadc126707";
+ sha256 = "bd5c9faa119d8e16b24840ad5843b7a4c64f664ea29c1512a41756d19d2cb65e";
}
- { 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.2/linux-x86_64/af/firefox-94.0.2.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "aaab5d767d832e883a5ca2ad0a81b128c0fbebe141238835064210b27e47db6b";
+ sha256 = "9ed0fff3ccfef43b467e295daf21c776ab9419b00a0524de75d0f3b985baef5a";
}
- { 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.2/linux-x86_64/an/firefox-94.0.2.tar.bz2";
locale = "an";
arch = "linux-x86_64";
- sha256 = "8340801d581d55a249b94378c69061466aa6e6181d64790d5bda43d2b3631a27";
+ sha256 = "989a16767a92a91ba100af7f4fc97e1cb26ab718adbd5f0a14bebf9c0cba0495";
}
- { 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.2/linux-x86_64/ar/firefox-94.0.2.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "03e0cd262aad9e49b10f6626ec2c96f1646a51d1e461998be5d5487a40709626";
+ sha256 = "8937403e15eac062bee7b189acb52c87e33b6177eb5e8e0f9dfd9167fd5b01cb";
}
- { 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.2/linux-x86_64/ast/firefox-94.0.2.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "062e4bdc3144b19b5f85ded44078ef64e988bc4c9658ac189771b3411b3e0145";
+ sha256 = "18a4051fbc0fdde0faeaee72951e2994a50a6f041d180075c4f38ee4b7f9fd3e";
}
- { 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.2/linux-x86_64/az/firefox-94.0.2.tar.bz2";
locale = "az";
arch = "linux-x86_64";
- sha256 = "175fb26412691b06d82f0175bdb51bf5635ff16564df93cdd4c332d6614fbcb9";
+ sha256 = "bdcddebdf3e5619a916b23da26cb22dc7afb0d25304c17c167fbec030de5ca5c";
}
- { 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.2/linux-x86_64/be/firefox-94.0.2.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "9841d99dd7407397388384d37a1b4d11027344e1710073ad3425163144445341";
+ sha256 = "d0aab54e67d2782c06f1e8f5aa8b4cca8ac65c0bc146885b78449e16656fc6a8";
}
- { 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.2/linux-x86_64/bg/firefox-94.0.2.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "2932865a731d33c3447aa17d545185faff6fb8db32502236537301ec7eb3d54f";
+ sha256 = "d952c92e179ae599da578a92fd0495ccff3b82b2eba7f2613e91aa6695a87830";
}
- { 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.2/linux-x86_64/bn/firefox-94.0.2.tar.bz2";
locale = "bn";
arch = "linux-x86_64";
- sha256 = "b9d7a1d69e0bf88fcdb24038f410289187a3de5047fa28925513a5f6ac47ae46";
+ sha256 = "e5934d418976a77fa926c06fb0482ba108ba91cef9019bcb0771b2d4c7101dbb";
}
- { 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.2/linux-x86_64/br/firefox-94.0.2.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "ef5b6a548c200cd0e519c67a6542624a6b085ed20ca78e162b0dfb5b9d921a0a";
+ sha256 = "a5a15f3bf0157f21617fca0e3b58e02916d8665fd082e028617911cffb8f03b8";
}
- { 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.2/linux-x86_64/bs/firefox-94.0.2.tar.bz2";
locale = "bs";
arch = "linux-x86_64";
- sha256 = "4a8e64d088509a8df5b95eea4c39267a884bb2906a71ac39056214dfc10a62c2";
+ sha256 = "f9c06ab4e3c56475e0bedfa31ee1e2b6a7743251b42381d8d9330dee6e2bb4ae";
}
- { 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.2/linux-x86_64/ca-valencia/firefox-94.0.2.tar.bz2";
locale = "ca-valencia";
arch = "linux-x86_64";
- sha256 = "ad7401e804d5cfe80d4bea0da8c324f70d3304dee96ea9d6c7d7257c67bfca9f";
+ sha256 = "d5e8779f846f0f533d895d66e4ac98f5eb38e1054f448ff7dae855270bfb3bec";
}
- { 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.2/linux-x86_64/ca/firefox-94.0.2.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "ab9d9d2cdb33f3f6b490f463021e9afe12e930bbe227e4e26122c45522995c8c";
+ sha256 = "e8d95aff6b9f383429a24b246e59b5b4abaf2d5074163b8df829296296dd2c2b";
}
- { 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.2/linux-x86_64/cak/firefox-94.0.2.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "698e4d066469ffedd1f915d93fac4358c4f614695966937858e950b9fc455bfb";
+ sha256 = "997d6162c891115d36fb3612115b00e37e1976de838a5f25a0c829361e7006fe";
}
- { 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.2/linux-x86_64/cs/firefox-94.0.2.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "e6525afccdc478dc4db4cb23c30d18cfa2911c1f93bb85efd41b1647f9dbb85b";
+ sha256 = "9224d79a6f918018baba8e8767d1d28ef2a5f85051b1dc23e09803b4d345b8eb";
}
- { 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.2/linux-x86_64/cy/firefox-94.0.2.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "dd3bf768de4120595e2264f4c8155c7037b5d220dc1cd6120c9821125f272046";
+ sha256 = "4afebf3248ad98b19f2eb8e743672ff28aa40e305735a8c68b99af967fc45d25";
}
- { 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.2/linux-x86_64/da/firefox-94.0.2.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "6b36bdd340f100ee627c34e0b959d11aa19afe15dc4d5b68fb594cd58bf3db23";
+ sha256 = "d834b34eec2432f704a6ff4e122b08c157a5fc9f856e0f3983ae220ba1edffc9";
}
- { 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.2/linux-x86_64/de/firefox-94.0.2.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "befb39ec9a21c8ab30fbe81a3aad56bdc3734c3df5f511d5b088b79edbd179b7";
+ sha256 = "73312ba296f0efc2178dc0bf8d90f6fd7723d6c1cd53372ffc058a4d6f565cf3";
}
- { 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.2/linux-x86_64/dsb/firefox-94.0.2.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "1b922369255e48ef6decc6914df53d8461e5fa6139741ff6946e5f68d797aad9";
+ sha256 = "af604fde6da04d8a6afc044dcbfb354d8e45415afaf7964244d5190e0d79aa45";
}
- { 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.2/linux-x86_64/el/firefox-94.0.2.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "ba9ddc9bdb8b7b5f1535dfcc8d6ae2062158689d57aae089a854b486e24f2b67";
+ sha256 = "6a8b3aa0c49c2b0a101fc9045842b55846bbaab4b9504e54dfc0831b70008e2d";
}
- { 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.2/linux-x86_64/en-CA/firefox-94.0.2.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "910529d6c94fadc481238b015a35a4b6aab9f532aa4fac3b815413e02ba09f5e";
+ sha256 = "8ce4c830b1c6ff8de5c7a594a55919fb1d8a6f24b8ae963aad10fc4e65b29f96";
}
- { 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.2/linux-x86_64/en-GB/firefox-94.0.2.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "be7b43f5e801e3528c5e9eb732d281c36166265a1bcb84c168b017ec8cc01dd3";
+ sha256 = "f6ffd778e7587e537d4376102de619ed70b5689a854a1f89e8e46b09d8f2a4c0";
}
- { 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.2/linux-x86_64/en-US/firefox-94.0.2.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "9d06897b80d77cfb59e1c8bd4dfc427590b058616ae634e52cfe272af06f9b32";
+ sha256 = "975ac4e4cccd91b10d997ecbc183b557e45a1cd54fb488aaf85a45b06dfbaa9e";
}
- { 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.2/linux-x86_64/eo/firefox-94.0.2.tar.bz2";
locale = "eo";
arch = "linux-x86_64";
- sha256 = "83e76766de41b81936b5a2d5bdb3b61a654adfcd3ee7226cc58418a1b4257e4e";
+ sha256 = "89b36aa02a95263d7e1b271c27f73672a5c4631abb9023bf3bfe4dd85aa3051b";
}
- { 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.2/linux-x86_64/es-AR/firefox-94.0.2.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "8f7fefb869a19511065025d1b0e0ed1d84ffdc402dbb07c4c35673bb9209403a";
+ sha256 = "e011a0f14585115e93f9f68e03246b4d5f2e7874729596f917227fff0b7fe6a3";
}
- { 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.2/linux-x86_64/es-CL/firefox-94.0.2.tar.bz2";
locale = "es-CL";
arch = "linux-x86_64";
- sha256 = "62531f511e3d79a2a4d80c6a09ce120ecc62662fc5e277f8ba7f73488fd870f3";
+ sha256 = "6f7e829c67feaecbebefe3144f21b939eff22afcfd33e97de6371c471426996d";
}
- { 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.2/linux-x86_64/es-ES/firefox-94.0.2.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "f3f3869780b3344746f8cf1e59dda3f44f56e5b9a97bab7bdc4cc58ba5d8b4a7";
+ sha256 = "2e48ff3b6b839fdf88026e2cf27182a6e6256242f994aad3e4c8ef3203c8659a";
}
- { 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.2/linux-x86_64/es-MX/firefox-94.0.2.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
- sha256 = "55dfe3202f289bf5ab4b8fa59e3ef7824ca921c436b6c872f2fa6eab8b95dfd3";
+ sha256 = "399004ccf9cea84f614cb55460dc988e148a7b2d0913278cd7be0c7eee898bcf";
}
- { 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.2/linux-x86_64/et/firefox-94.0.2.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "b6ed0570c1644a00f058453b82b48953adc9e500179f51ad769a796eb7417f75";
+ sha256 = "4c790bf5a4b87a3bd8efa975f768e99e05f726e915d936d296f381f0051c38c8";
}
- { 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.2/linux-x86_64/eu/firefox-94.0.2.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "070ef21ffeb8c339c49346017626a0c6112ca2c63e2a2880c3b22b858c9322ff";
+ sha256 = "fb96089adc354dad4dcdf43b8c65609add8022285470df4edd9bfa814e761f02";
}
- { 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.2/linux-x86_64/fa/firefox-94.0.2.tar.bz2";
locale = "fa";
arch = "linux-x86_64";
- sha256 = "9dc071ecb81ba221ece8131ff54d27e94585243322a39d817ae663a35af4cc4d";
+ sha256 = "1a13b4dc79d4ccd0aef20f0d3d29d42ee835e9bb4d2d90521c7a92cb327c96de";
}
- { 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.2/linux-x86_64/ff/firefox-94.0.2.tar.bz2";
locale = "ff";
arch = "linux-x86_64";
- sha256 = "7d1aa96cfe5c39059ebf682216083a2d5505f9ae97290f6dffb9b15912c5b6ac";
+ sha256 = "93f4bd4fdb7dde118f06247bda2d3fb72b1f072bb996d8a52e9e01abe4f248a9";
}
- { 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.2/linux-x86_64/fi/firefox-94.0.2.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "3f050f0205134d52aa3e7fd08e1e78ccf2f987aed286dc20c9d5d8422e8dffd1";
+ sha256 = "fe2b5cbb25010d7624b1fa799dc2820df057d2419f9ddd07e660cb5e32143ce4";
}
- { 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.2/linux-x86_64/fr/firefox-94.0.2.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "bc7aef8139c8e20c3ee69e027d93300b30320c24fbf9b651c14743b88d243f66";
+ sha256 = "f916b9d0e1fb6b28248a443cb4ae31c3350eca1f6a7b7a794758792417e91105";
}
- { 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.2/linux-x86_64/fy-NL/firefox-94.0.2.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "4236fc93d2d661e29f1b82157b179bc91a92543df8b623264c5e05b5d03747a4";
+ sha256 = "f998b9475930a6517836b260e43b0a8e37424e223d1eb213755a0efb46aafa38";
}
- { 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.2/linux-x86_64/ga-IE/firefox-94.0.2.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "ef874f0887ff4724e141608aeed56a2f78a40f3a0f620e3bdd35e0247bb21194";
+ sha256 = "0ff51d3fbe979bce2335d0e250f21ba2d2618ad09c999e0be929053548b30d3b";
}
- { 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.2/linux-x86_64/gd/firefox-94.0.2.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "bb0d22e04c024a86bddba9cc527db275199a04dd2576c170f78f98c68ffe4077";
+ sha256 = "31a34aacf048ca6dfd5c96fdf6b618532d368de0afe38835541cc8cdeefae9c6";
}
- { 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.2/linux-x86_64/gl/firefox-94.0.2.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "ab958633a2f6b691b950c18147c04426fe5cdb23592e142dcf15dcd5ce86bc5c";
+ sha256 = "7dfee546ae528bd7888131efbb5797b0e2f7bf84764843ee88eb53a7c4b9cd78";
}
- { 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.2/linux-x86_64/gn/firefox-94.0.2.tar.bz2";
locale = "gn";
arch = "linux-x86_64";
- sha256 = "1ec4293dd2658d598dee23fb04ecfb6674ccb19ae5b93fb60e94c3ac018056fb";
+ sha256 = "ccd7986942c61b254d25b09db75729b82db5d7324f0be5f997bfcd8c96f2325b";
}
- { 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.2/linux-x86_64/gu-IN/firefox-94.0.2.tar.bz2";
locale = "gu-IN";
arch = "linux-x86_64";
- sha256 = "eaa2792ff2a4ff29ee5301e3827c758f5e93159d4212988c8a3e3bb19a609064";
+ sha256 = "c93484e19a7134494c1f5473deead034dc6d6bae163f8103b063949bdb119703";
}
- { 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.2/linux-x86_64/he/firefox-94.0.2.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "03ef507e5047f3f84cd4b41a1fbfe00ba72833d0f6fe2503cf0156504031228a";
+ sha256 = "297ef303e6cb27bfdab73512b2a184fa2e3ac575ae99852244a29365370fb042";
}
- { 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.2/linux-x86_64/hi-IN/firefox-94.0.2.tar.bz2";
locale = "hi-IN";
arch = "linux-x86_64";
- sha256 = "9ff924a878b7e8e69868ca33de7ac10d66a4590d022fb2255527928d905a891a";
+ sha256 = "a41625cc6fda655aa420602f2eecd8e88177c088ade770ee80b9dc34d2802b9c";
}
- { 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.2/linux-x86_64/hr/firefox-94.0.2.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "ef61afbedff8dac01c600620e82756c5bc04782d717dff13bc6f59ccc06c8ab0";
+ sha256 = "dfedafaad51d27e1fb7f24a02b3149805073f37fc20f89e903ce9301b656b9d2";
}
- { 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.2/linux-x86_64/hsb/firefox-94.0.2.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "57ed98a1bce575fc67cd290457072e0142183b9d8713d20a58574453fb3d7707";
+ sha256 = "15acfff1d07bcd0201f4407cdd3c51d17ede6e3fada977b496acfdc924fa6606";
}
- { 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.2/linux-x86_64/hu/firefox-94.0.2.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "d565f5881e15197d70bfdca1d3df7eef4afd505f7fb2e71bd9bcf5495ba33007";
+ sha256 = "dabc87d3fad5633b460eda4b7d4f751a33af6ded74bb9a1f992fa93d022ecdb6";
}
- { 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.2/linux-x86_64/hy-AM/firefox-94.0.2.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "ee430651716013ad37fdeb0549d96aaa1ef254888653b686ba9576844976bc36";
+ sha256 = "5aea20d14846d87c9249e28520b44c9693f8d5a69b1e9490d817d50c7d2e0381";
}
- { 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.2/linux-x86_64/ia/firefox-94.0.2.tar.bz2";
locale = "ia";
arch = "linux-x86_64";
- sha256 = "d85cea5e56cff08f185084144374c782a0edbc8396a2ab7ad9e373e6d6441cab";
+ sha256 = "ec4972e7494a0755e2fd3bf8d697fc5f6b6069b34dd083abdc93f625db24cac5";
}
- { 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.2/linux-x86_64/id/firefox-94.0.2.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "f9b95eafb8f064dc9ac02693befca85b90567b6635446a20f81bd3391fd64847";
+ sha256 = "3621afd47043f87741f2cf6c70fc4c749b134bbd3284f42b7cf220f500111d4d";
}
- { 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.2/linux-x86_64/is/firefox-94.0.2.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "d1d68fe93ef3de2424f3ca4d59d339e3add6c21ae63163fa86f0f6c7751893f6";
+ sha256 = "0fdbbb65a5ccb04113b39e1257079543ed0a0a044104321b568b4c7079a0c126";
}
- { 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.2/linux-x86_64/it/firefox-94.0.2.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "9bf7961653ac654daf8f019ee03b242bd73667e302f9910ab1a7b64aef4b7995";
+ sha256 = "eb68a8b1167f964d3538c86d1276137ca3cdd6ccfd6cf66bee4286ea052d8f53";
}
- { 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.2/linux-x86_64/ja/firefox-94.0.2.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "7ed411b87cbb261094c6b7cfa34d5cbfa28f0800644b10957429e0499f03b95b";
+ sha256 = "772943d646877a7845b23d05c940b4f41c7399cd81068b26793066065dd9bf9c";
}
- { 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.2/linux-x86_64/ka/firefox-94.0.2.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "b5e92b09a9348033abfbf9e55049c7d188821aa2e3ed973cf207130cb1f47abe";
+ sha256 = "e410b7999f0f59dc58a777a9e3c4b5439b45ed2dd7d8bbff7060b5bbd380d12a";
}
- { 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.2/linux-x86_64/kab/firefox-94.0.2.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "71368bdaa2cae9a585b1bc7e6539d5f6ba97ae87a39c8a5910077d28bb0c80fb";
+ sha256 = "764c473c7abea8cdd91b88eea4bc294dd682196ecd8672e613ba4f6b50077c7e";
}
- { 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.2/linux-x86_64/kk/firefox-94.0.2.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "e91bb39de263c5a41c54c50c11d82ce9a28ccaa4df95594657b92e2584210072";
+ sha256 = "4d2ae9dbeec20d34648e4799d11b257a4897f1a9d37de04ffd59f7a0ad79d15b";
}
- { 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.2/linux-x86_64/km/firefox-94.0.2.tar.bz2";
locale = "km";
arch = "linux-x86_64";
- sha256 = "21aaa236b79db29eeacb9c3b4509be78bf65f5584dbf8ee7c6803bc8ce89d201";
+ sha256 = "eb60a5083d30d3f98b063213da4d51e1dedfd71d6a2b5b6cdff02baedd4985c4";
}
- { 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.2/linux-x86_64/kn/firefox-94.0.2.tar.bz2";
locale = "kn";
arch = "linux-x86_64";
- sha256 = "d661f1b28960791bc2e15cf6f831fb88c69c691e81bc56b61bb6bb47f4540851";
+ sha256 = "8e43fabef02e33500552429f71d548db1b6c5a9d63095b53a76b7f15418accd1";
}
- { 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.2/linux-x86_64/ko/firefox-94.0.2.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "72b75385aac30b8e659a919710412bd532103f34498bbd921e698d8d41354f31";
+ sha256 = "932edd7633e23ed5318491dae495f210707f6eaac3d253263e615f3092a856cd";
}
- { 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.2/linux-x86_64/lij/firefox-94.0.2.tar.bz2";
locale = "lij";
arch = "linux-x86_64";
- sha256 = "9bc73f6865faf264bc411dddb362aee6b54d4d6b14abb25e088032148027f7ae";
+ sha256 = "b9326e61ae16f33bc200fe3712acc5e069df4c5575b38c48d765bf64c078c22b";
}
- { 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.2/linux-x86_64/lt/firefox-94.0.2.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "2499f42c4da599e2b006fe92ae921b6e3fd85af8b94c895875c242e45cfd6987";
+ sha256 = "2d857aa44cc17532d6f8691c78a1a6511e87016ef95eac2a5e184dc70987ed65";
}
- { 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.2/linux-x86_64/lv/firefox-94.0.2.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "b413029366708222b35286b872efe6b1fcd27f092e9d5b01fa1a6ff9d48e62ad";
+ sha256 = "595887befdf74b3ef4d37b7881661341a199e85d71cddfbbb62406015a60b585";
}
- { 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.2/linux-x86_64/mk/firefox-94.0.2.tar.bz2";
locale = "mk";
arch = "linux-x86_64";
- sha256 = "1f87c65a87cb5a876dd8a3749ea47c1ca5d7446bbca72de1ed64d92f77f7bc74";
+ sha256 = "5408c46f1a23321b34c8a78a3af4afcc2b3bccbfd7f2188db9ae1f5db391de13";
}
- { 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.2/linux-x86_64/mr/firefox-94.0.2.tar.bz2";
locale = "mr";
arch = "linux-x86_64";
- sha256 = "8fa074c47ffff06f7bd596d3ce3e6e2281c7e924582f285aead35d37f71b18e1";
+ sha256 = "85ac81aa121f611a12ee09f3c07c487e6c4af5a31999db7891ad388075a8239d";
}
- { 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.2/linux-x86_64/ms/firefox-94.0.2.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "674e877cd4a2e1d0844dcad823c26a50032565239f0ac07c5dd073b919beff80";
+ sha256 = "95b98338001c1f4d6c0e2fa22750bf4216c754a64a7a11b063e172efa1f0c163";
}
- { 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.2/linux-x86_64/my/firefox-94.0.2.tar.bz2";
locale = "my";
arch = "linux-x86_64";
- sha256 = "8a65cdc5a9c7455c6def1e68fab652c2c5a1d943c4e7af6a83502de5f1d5738f";
+ sha256 = "dded4e09e56fdf55afefaef54e7d7b4451f3590e1c3bb4768635abce02b10891";
}
- { 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.2/linux-x86_64/nb-NO/firefox-94.0.2.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "9c6771132a3fee58115cee692564f43464d3ce745da721d3c61519d845592304";
+ sha256 = "ef6b6fd0c21c4563267551d5ee9ad805023fe12552fac44199c7a2bbe3ec81f3";
}
- { 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.2/linux-x86_64/ne-NP/firefox-94.0.2.tar.bz2";
locale = "ne-NP";
arch = "linux-x86_64";
- sha256 = "110e30dc86f3996b9a3c474be5f170510383ad137a71257a5cd27ed25432ecfb";
+ sha256 = "7dad25866efe784ea6b5cd244cbbd9890ddd813f386ef1a5e98530cfdbc64a49";
}
- { 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.2/linux-x86_64/nl/firefox-94.0.2.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "4e753199be0e8b2b927fd2bef35bfbdcb2aa47fee5a178ff34f4348849f058f1";
+ sha256 = "4518d9c4d6645285e4b337acda7b0bdee7733cae60c8515d8923cc85c470c596";
}
- { 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.2/linux-x86_64/nn-NO/firefox-94.0.2.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "7f9351e18fd74c472151bc8c9ed9181542308a15820b9aec503981de97b851b2";
+ sha256 = "6df50c1c01a9bf0c43a36277d6d17213c3d5a3a273b2a6257aaa5168f727e02e";
}
- { 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.2/linux-x86_64/oc/firefox-94.0.2.tar.bz2";
locale = "oc";
arch = "linux-x86_64";
- sha256 = "0eaefd72fef1d1d86bc0250052d80993456754be8b2818ecaf5a34d4064c4ab3";
+ sha256 = "3d253d2280607b5f4ce252cd730cfd282703c3a8ec90a1efd70084349bb14dd1";
}
- { 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.2/linux-x86_64/pa-IN/firefox-94.0.2.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "d82d82b827225d9764c127b0fbddbddc9fb46ff4c85a9da7d132ce54a2ef98c6";
+ sha256 = "564892d7c26d757b85754f06a8481152d24a86dc32c64d63d32de0a2e7d2ccfa";
}
- { 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.2/linux-x86_64/pl/firefox-94.0.2.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "1bafb0bff6e280a6595b82dcfd99bd2dde5bde5d5bf0993f828e1658afcf0e98";
+ sha256 = "8201d195237c9902494627c95116f9e19f08224eacd1037e69b370d2ad6ec046";
}
- { 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.2/linux-x86_64/pt-BR/firefox-94.0.2.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "ebb2bdc70f03a6aaddd3ac1e47f716f880198f3a7c5040a4a592c88a90dd7ff4";
+ sha256 = "ecc6009cc5d29c4e9ab7374fa5d36faae08eda78993a7fe81816a1ed6f2da654";
}
- { 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.2/linux-x86_64/pt-PT/firefox-94.0.2.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "c082c36c403b685e089b1a90ace81dc4fc2d612f4d82d65fd178e61fafb265ab";
+ sha256 = "1810fe3d1660f8e8d28c667aa6bf6b0430aeb0d0a1008fca4658a04c33951bed";
}
- { 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.2/linux-x86_64/rm/firefox-94.0.2.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "b42d24bbdfb7016c71c262058af2fb9fec38fe6a9dbf47f6a3c04cd2e9d9279d";
+ sha256 = "eba9fdd5cbee26f88c0e29a1765376bd2b7a6bab635e20afc29face8e9e64885";
}
- { 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.2/linux-x86_64/ro/firefox-94.0.2.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "cdf32a9e5268885f103e9a9391a247f1e05b2922b1e3e8744c26d92fac9722bf";
+ sha256 = "59d3c57654c742ac7d2424df278f3a4da50b76fcc751026d937d598160934ac1";
}
- { 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.2/linux-x86_64/ru/firefox-94.0.2.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "b87f839b38e8b9e7f17dd97724b210f1eac2e3d290fcd677ab729c00f341757f";
+ sha256 = "e5e4289edd4d7ae420aad87ce38b65eb3c1978aa4d97df144f958dd24e905afe";
}
- { 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.2/linux-x86_64/sco/firefox-94.0.2.tar.bz2";
locale = "sco";
arch = "linux-x86_64";
- sha256 = "7262fb3b507d74b6d68da1426e7f4571dbecf66211cb32f9719363a6c1f2aa0c";
+ sha256 = "83638c4728dfe9a486ac748c84ee721937b003989622b3b8725f6bc6b66bfb59";
}
- { 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.2/linux-x86_64/si/firefox-94.0.2.tar.bz2";
locale = "si";
arch = "linux-x86_64";
- sha256 = "aa3e1a8d8f05eeb024eda42c6510532b297a73ced25944e0c28137ec778be9e4";
+ sha256 = "7537ce71b85d195eae40e9695bd139e624180833c358e9633e4037c1052c02e0";
}
- { 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.2/linux-x86_64/sk/firefox-94.0.2.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "e1102e5c0961c8532cd9ae49d8b3da624de490265cd39d3e952cd4da839b394f";
+ sha256 = "d2073ba06b23f4b65f1fea49eb9f04a7b2f35d73ed4de16ccebc7c109b5dcbf1";
}
- { 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.2/linux-x86_64/sl/firefox-94.0.2.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "1109d8fe7a1e33fe03da7c0b3cb27e9b9f314273d4c2ba8a61f12b3a6237d6e3";
+ sha256 = "059f2fc2d0cc02a1b92e8cd6b3006b13bda20d412682979113683423b73d20c8";
}
- { 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.2/linux-x86_64/son/firefox-94.0.2.tar.bz2";
locale = "son";
arch = "linux-x86_64";
- sha256 = "676739441dcfac253974ae5092c59455b7101e294f9c4df5d31eca00ca864eb4";
+ sha256 = "c36e332c7d264a997d162fbd008c97bb56da46507872d58bcaf67760398a5c56";
}
- { 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.2/linux-x86_64/sq/firefox-94.0.2.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "eae6d8801a111b38fa7d7b3ee7fc5b23469940de26760b44160d09f68f5d8e5f";
+ sha256 = "270d37e65ae60be7a44e19bcae22cce56f418db70d38098a634ab38bd85be924";
}
- { 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.2/linux-x86_64/sr/firefox-94.0.2.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "a315f119c5cbe0d5a2794933e21180ab837e672c3063a870947e12def2fad450";
+ sha256 = "edfe02b63134dc88afcb326395e24f9bb7be7b58d88c2f80eaf12253f40df0a8";
}
- { 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.2/linux-x86_64/sv-SE/firefox-94.0.2.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "3f3490ea0bb9fc22ea85d5d4f6eedb4531e204c1d53f8cf487dbaa063dc973a9";
+ sha256 = "9ae2294f5c757261e5b320814ef11875f05a74fcf8d7001c8b9e896f761ff2ec";
}
- { 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.2/linux-x86_64/szl/firefox-94.0.2.tar.bz2";
locale = "szl";
arch = "linux-x86_64";
- sha256 = "a59912a923916040b87ce1cda8fa71aede4123b39bfcab88a8da4c0da2fb6ce0";
+ sha256 = "fedbd7bc7aa4b187eab423ec612eb4a9a6e8d7bb8ad5d7474a422c8093875c87";
}
- { 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.2/linux-x86_64/ta/firefox-94.0.2.tar.bz2";
locale = "ta";
arch = "linux-x86_64";
- sha256 = "f6cda89c2b4097e5c33c0eac0819bdcb65cc18e085666fe346fb64aa8d55f64e";
+ sha256 = "cc302405c4d0319ec699297b78e3a38400ebee0806ebaca4bb246f5df781afdf";
}
- { 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.2/linux-x86_64/te/firefox-94.0.2.tar.bz2";
locale = "te";
arch = "linux-x86_64";
- sha256 = "dfd5f6b330b8ae139ce76c7f21451773342f960e6ec09cce6039791835f6910b";
+ sha256 = "27c8ed45bc287db8c4973ab422efba9eb4680f8347ebf79a862521582b5bb9df";
}
- { 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.2/linux-x86_64/th/firefox-94.0.2.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "27e625b98bbed71a299607c2cac31ffc937a597d8c6bcd0aaafeb338cdcac547";
+ sha256 = "f93d1114c4dc4ca98f85a5508ae0c0288196ee484697da13fb9166ef00e423c5";
}
- { 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.2/linux-x86_64/tl/firefox-94.0.2.tar.bz2";
locale = "tl";
arch = "linux-x86_64";
- sha256 = "72a57301971f9bb1a2674a4c00e8e45e77fe1b5b041de9a3255ede15b124460c";
+ sha256 = "23724a1880b7de10b7d8d5fff714454afebdf93d37e6aab2a492f3e3fcb67b08";
}
- { 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.2/linux-x86_64/tr/firefox-94.0.2.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "c939cfa088b584330179dc3563062b6e08458e4347ef1e8c66c899ecbd642413";
+ sha256 = "9e0f630b441241da1203cc22536843ff924dd470fcb0baaa7a05650f3b47533b";
}
- { 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.2/linux-x86_64/trs/firefox-94.0.2.tar.bz2";
locale = "trs";
arch = "linux-x86_64";
- sha256 = "3216099a1b3435591d1eeb3e50a90c66d9bdb697bf852a302cecb1819cc96c07";
+ sha256 = "3e0b76977ad714dd05192330042ffb4388146c7f1e18193e3438b126a9c23ce2";
}
- { 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.2/linux-x86_64/uk/firefox-94.0.2.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "b2a63a362d0197e065608961a57ab04017fa92f6b43a9848c6046f6da08d3bda";
+ sha256 = "40a30fccb01be981bf2dd47e8990b34fdf595bb7ba5837b8cc98ed4137eafc9c";
}
- { 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.2/linux-x86_64/ur/firefox-94.0.2.tar.bz2";
locale = "ur";
arch = "linux-x86_64";
- sha256 = "faf5f628ec7b1abafb385f43c26534012d6cb888d92bc1c98f17005a4c86896b";
+ sha256 = "cafd95a645be820483369766250a7d1331893c40dd2cf8bf9fae7b050e10a5c6";
}
- { 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.2/linux-x86_64/uz/firefox-94.0.2.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "5d2ffce85b1286958dc770a163103b6642c98f29b40bc441bd4771ca5c9817c0";
+ sha256 = "9e08b5d962c3e3f2375be1847a9386777459baf4a477950649700e66dfa52f6e";
}
- { 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.2/linux-x86_64/vi/firefox-94.0.2.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "6218c4c6e58dc0c07df62adef703ee5fca39be1c3e157dbd936c1a0fd670cac9";
+ sha256 = "d28802eebe7928fce570a06aaa33ac83a100fadff9df92d5a4c073d653f41807";
}
- { 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.2/linux-x86_64/xh/firefox-94.0.2.tar.bz2";
locale = "xh";
arch = "linux-x86_64";
- sha256 = "4a61e9af94fb6fac5b3fcb9c1461b7c551583b741c66830545744b3b717b6a05";
+ sha256 = "4661018a1d62fe87a32a85cb4d492f53c8fd98f639f48da04236132844eb674a";
}
- { 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.2/linux-x86_64/zh-CN/firefox-94.0.2.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "dc8279b92b8e030795edfb1c939a2989f8801953547f2c581740ad24701cb95b";
+ sha256 = "26fd90a4d04e9432e237e82cd33f0f633a9667e84714444f79a970216a7cca1e";
}
- { 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.2/linux-x86_64/zh-TW/firefox-94.0.2.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "d0c7d5f5738d051959dc9ee4f39dbf699a8c8f6f2328858670663163600075e3";
+ sha256 = "de1b466c4f786de15df1bb3491757c92d982a196b347fdfab7dda0bbdaf7ec7d";
}
- { 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.2/linux-i686/ach/firefox-94.0.2.tar.bz2";
locale = "ach";
arch = "linux-i686";
- sha256 = "ad9067dc548ce33d6441c0e94dd46a93751efd5c1de391dfabee1ea7dd81c80b";
+ sha256 = "ef462def6dd6ba17dca0e360879aa6f2007f0c7cfdb1398c68efc2736dae7f29";
}
- { 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.2/linux-i686/af/firefox-94.0.2.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "8267fedba7d52a5eed2dfc64b6bbba23c2f72e9f7b28370f65047b6009191730";
+ sha256 = "90aafdc86bc22b76cb1f1a3d93a5fbbff1b3acb41f194e707f028230273119e9";
}
- { 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.2/linux-i686/an/firefox-94.0.2.tar.bz2";
locale = "an";
arch = "linux-i686";
- sha256 = "ffc6725d9c9a2baad960f7b587588b221fa3aa0de7707dd6fefd3f81f61dfe89";
+ sha256 = "3669136c7c039eb0bd6f06f0fb84d927d700b2c31985b0074ccb2e397c2331ed";
}
- { 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.2/linux-i686/ar/firefox-94.0.2.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "dafd5ead95dda8f5fe119805b1d1d3482cf4d90bd8f274bbdf551846f8b7780e";
+ sha256 = "37e329462cbf7c21080494c1026fbdd1686b95fc4351d1dc25fb8339cb93cd02";
}
- { 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.2/linux-i686/ast/firefox-94.0.2.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "4ff9f1379b95aedb46017b77a86766a0fa42d4fe4f0a0c2c6d3a26b4612e578f";
+ sha256 = "e0a7dd866d2bb74e444c5fbaf2a4adf354953a7119d0a399c872939e02fee46c";
}
- { 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.2/linux-i686/az/firefox-94.0.2.tar.bz2";
locale = "az";
arch = "linux-i686";
- sha256 = "ff597f10b2f9e42e1dbf9cf7ea495732c021879afd5b3a2c5ce9d1aa9db144da";
+ sha256 = "2f30b1b3c2baf0c6b8cc568f11d758851954c4842d59481729cb4485b6955638";
}
- { 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.2/linux-i686/be/firefox-94.0.2.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "274297dda60b7b2e2c19687888affeec46dfab0a0745d8b251179bfa06361331";
+ sha256 = "98e54be798769dcda2875f4b56432abba93a775801d54a7792ac0d13068bedee";
}
- { 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.2/linux-i686/bg/firefox-94.0.2.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "8acc4e37249c706f23db4964da28289cd2cfcd0984f60ed40856022b8202f147";
+ sha256 = "969e80bc391c016769af80eae52f907ea3c260a4d5dbb6fba0393aca76f45628";
}
- { 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.2/linux-i686/bn/firefox-94.0.2.tar.bz2";
locale = "bn";
arch = "linux-i686";
- sha256 = "8b7e681b6d22b1d2573facfd57f0039f9afef868d38f0b4c6d15c8d9e216ff10";
+ sha256 = "080802a1c60a2760296fdc6851944dffc5842ec8d9efb836977d3e9105ec3c13";
}
- { 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.2/linux-i686/br/firefox-94.0.2.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "6c621a574b031b19fe43376b5b7175a9b11be3ecacf6ae32ff7dbf42e2385e94";
+ sha256 = "0f4f7da4274d5a73d7b4d0e8e1a47f82e5c40061b6cf7c2dcdafc4425603bbc7";
}
- { 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.2/linux-i686/bs/firefox-94.0.2.tar.bz2";
locale = "bs";
arch = "linux-i686";
- sha256 = "d365a64a2d8dc71e2bbfd73899102671784bd313982f48a87a94fd4f5283d6ec";
+ sha256 = "ca212c38fdc4d8ebdffbfee80e82518ee4476d4d962c5ac7476df2254cd58843";
}
- { 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.2/linux-i686/ca-valencia/firefox-94.0.2.tar.bz2";
locale = "ca-valencia";
arch = "linux-i686";
- sha256 = "e9af2c49c737d5546aa65a45a26e27c971bbdd0bfd94256159eca2585470ac32";
+ sha256 = "d55dc5a8295f18cad6d94f548e14c4f03214b2239d40f4b177e94767a0d333bd";
}
- { 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.2/linux-i686/ca/firefox-94.0.2.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "365e008db10d5d5f1cdb584718dba289af656e9176020898ef642371d8b2cc09";
+ sha256 = "6f0393c75586ecc4ad877401292b18e43b245c5b9aa575d7df4ed1ca56d7cd98";
}
- { 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.2/linux-i686/cak/firefox-94.0.2.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "ca9e050e8df1b775221a3a8189b319e9dfc70aabd61421ba2ac7f8cf47da13a8";
+ sha256 = "6e4f2f3d3fad7a8935faee284d8b99ac0a5484248a08b63b7cab1f3b5d0e79c6";
}
- { 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.2/linux-i686/cs/firefox-94.0.2.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "7444caa7dce9e45adaa419c6a71d1ff3fe0a21a3ba3cfe4e0c08ddd93973e7db";
+ sha256 = "6f6373d00d264e84672cc6e94ec5225f9202b20704a61515756b5ace6049f50a";
}
- { 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.2/linux-i686/cy/firefox-94.0.2.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "ac6e4bbbcc489c514c26dfab7ce7be56d78e2544628969b0dc1578856d0c5439";
+ sha256 = "8c9a5f5792a7560d752e255a7930c71266fa964fb13170e194ea7db6f81129a9";
}
- { 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.2/linux-i686/da/firefox-94.0.2.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "1f1859f9ce3b691e4fadaa82cee1680b4c23f70567d3f68a60f9fb682f96babd";
+ sha256 = "25ad12a625cdc842ae2dbb04f2eb4b6e6a8991b5f1d966993a045fce9bbfcd66";
}
- { 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.2/linux-i686/de/firefox-94.0.2.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "f5ac9118d0937638a5b011657cd529d0dbc28108885b5cc2254022b7082c3ffa";
+ sha256 = "12ed455d581af8b0c16c0e40681d0d7594797eb54e388a2db4aaff83616d46f8";
}
- { 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.2/linux-i686/dsb/firefox-94.0.2.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "86381f8c5a5c7c1431012ad8ae44360c1c78e644197e7774de82101551cccfb1";
+ sha256 = "5bdb29c4a0582647cc9ff2fab7e2e4d6a1ec4a56f76fd16d4ae9880621097675";
}
- { 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.2/linux-i686/el/firefox-94.0.2.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "89d9f1bc006e1d0f824ed794f7917430ca2285c88cc82eb98fb643fc2231218e";
+ sha256 = "dd6be6a586fec66b58e748f4afa7a1385fc01d4146bba7fb778322cf48bdd985";
}
- { 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.2/linux-i686/en-CA/firefox-94.0.2.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "4c2c968ee7f4f9fb49bbe951a36fc23d9e51178d15772cb41e4d59f41b6c2816";
+ sha256 = "e0e87a73a8c4d22dc106753ee212455f583fabc993251cbe236d0bb53c60d0d7";
}
- { 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.2/linux-i686/en-GB/firefox-94.0.2.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "ecc57a222760119d6ec9562e3953ca7541dba4b6ea194b02cf20bf3b4fb1a994";
+ sha256 = "5dfd49072ce81697c22a70cfe97ada4bbaf1a7dbe5c09bd8b7a8b7c5832ce102";
}
- { 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.2/linux-i686/en-US/firefox-94.0.2.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "56294b9d6b39d94e99a507bb4f1511dbf8a2512a846b8ad49bc93e1253f1e3a8";
+ sha256 = "98ee74af986cec68df541fb5256e1c075cb2527680ba226b56e08cbea4a04217";
}
- { 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.2/linux-i686/eo/firefox-94.0.2.tar.bz2";
locale = "eo";
arch = "linux-i686";
- sha256 = "33eb50b3e38eb259fc7559b60df2a9d69f4ed00efc8768a6dc2cafb2c6a93fb0";
+ sha256 = "a193c7f70565c5f2882adee337d8957da29051b31f64bfee8b92ec3c99e017c3";
}
- { 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.2/linux-i686/es-AR/firefox-94.0.2.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "0e21f3ca04c37439768a9ddd9de73dc725c688a109e25b95061c4fb241361820";
+ sha256 = "6c5a0470625a36d5537cd10935a2cdd432fd51a695521cc3f7d4b4773208e7b5";
}
- { 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.2/linux-i686/es-CL/firefox-94.0.2.tar.bz2";
locale = "es-CL";
arch = "linux-i686";
- sha256 = "418fbd415180600791b91500a69811447578102488642c4b6e9c8d9f0d7f94ea";
+ sha256 = "fdf83c78cf72c85d815acb85e7f46eaee24c1b3e884fe7f43a7eec29de81962c";
}
- { 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.2/linux-i686/es-ES/firefox-94.0.2.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "6744d826f205b162800c8c32bd4955e84ea284b6c92450ed88f1b947d4ac0bbf";
+ sha256 = "422fcf77fa884be57605aed5cd87cdbb8c9854901fd16ed0b02ed44edc7a62b0";
}
- { 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.2/linux-i686/es-MX/firefox-94.0.2.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
- sha256 = "242f2d561482a1fb9859bdadb6db2756378ef364bd622485639282a537c9d7e7";
+ sha256 = "364d5706f34ca48623de35af2e42124fead5a17f9a81c0a41a28c60b8962703c";
}
- { 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.2/linux-i686/et/firefox-94.0.2.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "df71885748c89e6298467d70486193404ad83db7e2f77a6eae70a80df73a11df";
+ sha256 = "f4c2214b858afc9b5441d41203349e9fde7a9e6624808f194f57f1481a86e197";
}
- { 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.2/linux-i686/eu/firefox-94.0.2.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "487ef0a284b3979d5eb758bb91a51b177606b9e2a40418df914d5ee0854852c3";
+ sha256 = "c55c4355c69a868107152ff48cc54afb184ef76c65b8fa9696ca6ef4ad0a240f";
}
- { 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.2/linux-i686/fa/firefox-94.0.2.tar.bz2";
locale = "fa";
arch = "linux-i686";
- sha256 = "30e9d9421a3b13555008ce6f422e7567ecaeedbd7d06fd5c2e9d5a22b9f93f0f";
+ sha256 = "6340d0db75076cb2d9c4d1c844071a97f7db79e531a6c91b0ab078f2b1674494";
}
- { 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.2/linux-i686/ff/firefox-94.0.2.tar.bz2";
locale = "ff";
arch = "linux-i686";
- sha256 = "76339d6f61adb1fd0c33b1e37902d9af4442d4d0cdbf17bc87da5d025e1658bf";
+ sha256 = "5c636999e880b9247b5efdcb8a4d286f2b98c8b010c93f1a804091f0306a9533";
}
- { 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.2/linux-i686/fi/firefox-94.0.2.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "ce7d5435d3b25f3db558a226ab99932f26d1de68a32c801693ff809f83f5ce80";
+ sha256 = "4ba17ee9089216df574c3757e760d1930ee327d66e6a3b862eccf3f9c8735080";
}
- { 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.2/linux-i686/fr/firefox-94.0.2.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "788d1fc89d22cf2a69bd412937d3a94326e780eca272eca7410d1119b2a95234";
+ sha256 = "1b877fee35061d3ba5decaca3a1d81e6844f272c5d0a94cef374bda45cc65641";
}
- { 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.2/linux-i686/fy-NL/firefox-94.0.2.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "d691253a24487b32a646aa7c10b36ae0f35523ee4a22a1d35d41c5e871117d73";
+ sha256 = "46cb4202a12b95d112d5749613cd1c80deaa52edc386f484e23d12407e09a21a";
}
- { 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.2/linux-i686/ga-IE/firefox-94.0.2.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "6f5c0ccf72bae2d35be9b256c9453d4f53c60252a09b51a96d46ae2296728277";
+ sha256 = "59a54b4cf76e66bac93f205d5ab7d7991bf3d6362e332164f28f09090eb7cc60";
}
- { 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.2/linux-i686/gd/firefox-94.0.2.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "ac0d3239cad9315cb5a2441d287c741c44ea65656efd2a8f9c8dab88818bc8ca";
+ sha256 = "2994005051ad51dc1392e2bc69e52a06113d3323577c6514aaf48837b1158136";
}
- { 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.2/linux-i686/gl/firefox-94.0.2.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "6e0f03f1f6eb30e0052ea5a4dd853f9ce4a028fae099287e8ebfffc7b45f5aed";
+ sha256 = "07344a3a9602714f4291fdc451469d9d428d3b330cb6997544ee89b500214dd4";
}
- { 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.2/linux-i686/gn/firefox-94.0.2.tar.bz2";
locale = "gn";
arch = "linux-i686";
- sha256 = "c5544c5847c8e1a3ed8a0ad4be937fa072fb2bf4cdb1860ed7212611cde645cc";
+ sha256 = "75b22ae12362337a74b94a3fbe7b4b3cecf49b6df819b997966fb5d4a308cdd7";
}
- { 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.2/linux-i686/gu-IN/firefox-94.0.2.tar.bz2";
locale = "gu-IN";
arch = "linux-i686";
- sha256 = "7375ccbfc1e179282dfd2835b8b67dabdea4e2edbe8689dbc42ab08d518b1538";
+ sha256 = "d80aae36b364920e46c03e683328f0d07357232399a3a79b9844495f100c0e99";
}
- { 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.2/linux-i686/he/firefox-94.0.2.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "c918f748d226ddd8891b87c11958f9fe4df871d94bffa089fdf9d2830955b824";
+ sha256 = "116afab0741c6092a5932f932a33972b8da97df07e3f329069044a4976bb71ba";
}
- { 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.2/linux-i686/hi-IN/firefox-94.0.2.tar.bz2";
locale = "hi-IN";
arch = "linux-i686";
- sha256 = "99c86d7ed9f027a5b1f7593c840ec8c401e87bba07e90584a61e59a0d67af348";
+ sha256 = "ac77a85108c1b3ede1db709829d24baa6906a73a804d9af475162bd25d9d3012";
}
- { 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.2/linux-i686/hr/firefox-94.0.2.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "8884a70c80d07cdb57a8f825db50ce7f073da01a09860ba9db5a69a94d82825f";
+ sha256 = "d21ed0e4ccfd41ae59cdd0760cd66a8b065c1a451667332dd8e3d00ec509e766";
}
- { 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.2/linux-i686/hsb/firefox-94.0.2.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "4828b9cbd728bf750d11c0e71554f9c84ed6a19303cb78e35b909f7b11a7a563";
+ sha256 = "9bea8a4fb0eda357164d1418dfd6af37f55499ef76578600badf69cee629779d";
}
- { 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.2/linux-i686/hu/firefox-94.0.2.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "6faa65b0559dd42a63199bcc576d64c9ea1140df259ef0e0c0b26f0bf0b938f6";
+ sha256 = "f315bcf6a4b8bd50d3177d4c3d1b3634c6d20664dbb8c896fcd73f523012ce39";
}
- { 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.2/linux-i686/hy-AM/firefox-94.0.2.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "c7aaf4ab6e126608db0027524226fcd62ca6ac781d06da0bdbb0547aa0356480";
+ sha256 = "7965b4e7d9da034c57377a76534d1b501eda9cff74e6963b5ab0ae57c8b3a5bc";
}
- { 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.2/linux-i686/ia/firefox-94.0.2.tar.bz2";
locale = "ia";
arch = "linux-i686";
- sha256 = "fccedf58c92bf64e15a2d4edfc8ad9b1098589821e395a5ed4455b030faf3584";
+ sha256 = "bd2d2bc58df8343b3f01258971616ffa7475f4da1872fdf15082073e97c94fbe";
}
- { 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.2/linux-i686/id/firefox-94.0.2.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "79d69217a8888f00753ad5d2ce9368a3094f5454a0fb6117ceb9c82a271688a0";
+ sha256 = "8ce031a74917f6ba2ab28d18c3bf90889e2220a669ab4089967b25d4e79ad924";
}
- { 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.2/linux-i686/is/firefox-94.0.2.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "ba948a6f3b48ce5dac9090c0fdbc90bbbac3a04618a3891c0a77c033c61969b5";
+ sha256 = "04ddaed817aa5697895221a0db3ae7101b8233f125bc7fef922abb1a0e7723d9";
}
- { 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.2/linux-i686/it/firefox-94.0.2.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "dcd7e0357c115395040b5a33f5f3aaad07d1c7094f4068d2c2690ec28c915a30";
+ sha256 = "8aa73f43364cb54102f77cf47ebc87add3099370b843625c5eb265e3329720f9";
}
- { 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.2/linux-i686/ja/firefox-94.0.2.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "1d936db1e57e0fdf34a6bea460a19e2fd21a55078c50c9126d2d43041fb3d78a";
+ sha256 = "fd17973256956c8b0034ce4ec9da209d07c433434d72f41623a754aade1e5b35";
}
- { 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.2/linux-i686/ka/firefox-94.0.2.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "394659da7197aa055f4452edb4594850eb5300dd13940c14741ae0272337b16d";
+ sha256 = "d8058f0d613b048ca9406a7c4f635aa48c03b09cae5ef0d1e26adc7ac5cdf349";
}
- { 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.2/linux-i686/kab/firefox-94.0.2.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "7c8fd02d0cb5c93cdeb8119ede9ffa54ad5f0546fe65a655a31b23ba5bb251ab";
+ sha256 = "055e18fdad70268697b777b14ce17b7dc6c7c84a1b02bb3520260733add2edfd";
}
- { 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.2/linux-i686/kk/firefox-94.0.2.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "3a60f6d34d7b1563d58d58019333997f1afc548dbeccb16cc2d053b4a7082479";
+ sha256 = "58054d22cdeb34d96bbe99b0883aec10c73e9a30b928af7ae866a5892388dc75";
}
- { 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.2/linux-i686/km/firefox-94.0.2.tar.bz2";
locale = "km";
arch = "linux-i686";
- sha256 = "d480093c6c276ff17eb4d001613381e8b72018a9774acc667d1a774fc71d599e";
+ sha256 = "1929d50933ae722c9fc65f630099fd5f022e9dcebff4849392a78fbee79a0e60";
}
- { 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.2/linux-i686/kn/firefox-94.0.2.tar.bz2";
locale = "kn";
arch = "linux-i686";
- sha256 = "0aa8200106375275f358a732acbe658193eea29e6fca65072f9e3de22d88eb42";
+ sha256 = "2ac09ba601c391fafdf09ca8524818ea46af3e5a6d2467cb4c42c36257bdfa52";
}
- { 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.2/linux-i686/ko/firefox-94.0.2.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "a5b2118e3761dfd182893621f045d7cadf7a75f15b46208a0f2ce878bc1a1b2e";
+ sha256 = "d4a16e36c13156761914758ba254815db1769f86aee95887a373b7cc218bdece";
}
- { 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.2/linux-i686/lij/firefox-94.0.2.tar.bz2";
locale = "lij";
arch = "linux-i686";
- sha256 = "583110560cf65f6968e3cb5080227de3c47b9df3404a793a892be7985b132115";
+ sha256 = "8ac33659d6a1621940c1d70bc573e7bf9bf867cb87e6e75f17eab5aa27f41833";
}
- { 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.2/linux-i686/lt/firefox-94.0.2.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "e9eca5885a67bf0cb8b1ac00d3f5ea0c1b829743ae710975f3cda3e09d226849";
+ sha256 = "ba99c9137ce112fa2e26e0ea5c7a9852d0801042a756047f6c4114fc7ac779c5";
}
- { 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.2/linux-i686/lv/firefox-94.0.2.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "4d969ee872531b2058752058bf90dceecb6c8050458d5cba5f96c82f0a6e301d";
+ sha256 = "3f5ae08ad7b17f9bff80d61a984715ed12653d9a4f459d69b429225afa9f372c";
}
- { 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.2/linux-i686/mk/firefox-94.0.2.tar.bz2";
locale = "mk";
arch = "linux-i686";
- sha256 = "322985bb11f4e6f2f7a4da6606dda4af74d7eb63bef34b6e7b86618804adba5d";
+ sha256 = "6e60beeceb67b09921b383aa2e920c37425cfa2000ea497c9a0ff90e106029f0";
}
- { 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.2/linux-i686/mr/firefox-94.0.2.tar.bz2";
locale = "mr";
arch = "linux-i686";
- sha256 = "1dfb359ada64faea03068afbe32e14431edfbdfb61ea61590ccffc954d637c55";
+ sha256 = "ee80850f99f616687b554370873b1adc2308d8dacac346a6ee091be636268c66";
}
- { 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.2/linux-i686/ms/firefox-94.0.2.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "6c8541db16063140c63dcdc6314a38c049a2179376f3cdf80787cae774dac267";
+ sha256 = "d191ca6a6879586ce647c9118724048ebafe13c11058eb4499aff9a42bd13572";
}
- { 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.2/linux-i686/my/firefox-94.0.2.tar.bz2";
locale = "my";
arch = "linux-i686";
- sha256 = "3131c70b51193a8cb0a3ca18207c6001d8ba5f458af214ce5280924d5700782e";
+ sha256 = "7d2b9ddeb1de9bde70e06ff946af4061ccc8f9bb073835f4a45aca21109e8456";
}
- { 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.2/linux-i686/nb-NO/firefox-94.0.2.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "be47aa5951f3c07e11e47959b4718b21bab16085d25469fb4eafe406caddb181";
+ sha256 = "77d52d4d3f9637546d3880d1751dff795095df2baa8dc1d5b7f7f1cd312499dc";
}
- { 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.2/linux-i686/ne-NP/firefox-94.0.2.tar.bz2";
locale = "ne-NP";
arch = "linux-i686";
- sha256 = "4dfacf4d17838e75c51f60b26d8f66b0bf3a0bad9c2d9e2854c107fb30d8757c";
+ sha256 = "7fef351583a662b87db4691cb2b3f4f26a683d2746fa51da3e89babd07f863bd";
}
- { 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.2/linux-i686/nl/firefox-94.0.2.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "9f9e628c3809f9e7afc5a338abe4854a54c3cf6b8fdcb59de8a306b09a22bda1";
+ sha256 = "ac25c3e4149a36b972f76e2635aa4736d5281bb467d89ac8ea8545f9446497f4";
}
- { 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.2/linux-i686/nn-NO/firefox-94.0.2.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "32f057f0ff57c17f010e19ca6f3cd0d11b6ee454401f1ec57e42c08ca1ded04d";
+ sha256 = "f85164e71b79178460a673a34fd68165b58fd2354b846c128cf614471325f89c";
}
- { 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.2/linux-i686/oc/firefox-94.0.2.tar.bz2";
locale = "oc";
arch = "linux-i686";
- sha256 = "681702c8a8d6d2b0fda8f4701c7c77fa305d3483c3d5f070d31c2b8006638f74";
+ sha256 = "2e4208811215f7e893043b1c2b36263957360000f302d656044075792b8537bd";
}
- { 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.2/linux-i686/pa-IN/firefox-94.0.2.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "080794608bf065d92431fc5d822eae12373b3f60677229303af30e07e40a8751";
+ sha256 = "0630046a3521fe19123fc75848f147ef82e07de7cb7c0539b1f70f699f3037c2";
}
- { 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.2/linux-i686/pl/firefox-94.0.2.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "e44448176c0275da5e5f44b2aa4f6b378699cf44aa015e8f03513b89b204f5d8";
+ sha256 = "6f0a8a98624a20d111598a1e522e987b0c8d7857a2af9a8cf0a32a8d4545490f";
}
- { 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.2/linux-i686/pt-BR/firefox-94.0.2.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "fb970290b6efba30ac36f145ac57ad2d65045bd3757c78cd006864f841c1d52c";
+ sha256 = "27aece21464ce9ce455f5d9fbcc2f153d20df17584db3b0f293aadc5408821d0";
}
- { 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.2/linux-i686/pt-PT/firefox-94.0.2.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "97af8a13778621c873dce9393b5653f48a440f401a61e4a7401a49253d6b3ec3";
+ sha256 = "0cdf45e3191b07bef1ada272ef65124c5daa591f29ea5adbd3fbe3a6edde095e";
}
- { 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.2/linux-i686/rm/firefox-94.0.2.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "ae7852c30969fef6e8ba6d8e0fb932c5c63eeb9867a42e32135d193f8ee4ae7c";
+ sha256 = "f5da93fd882199b00672ab5644a5f9a9662a0371bfd0dac034ae819c8c7af07d";
}
- { 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.2/linux-i686/ro/firefox-94.0.2.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "94e69e8e91da2e22a2ac0fce179b62b246cf9eaf7a662f348907350562951262";
+ sha256 = "c35390e2e94dd991b147ef30cf5e3ba74546219c36ee137d440a40d7e6a1fdb2";
}
- { 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.2/linux-i686/ru/firefox-94.0.2.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "3460e2a2fb34f952bfb099671980207de7b5a45a8c5f4a7f79f2c050e6bc5e82";
+ sha256 = "1353f9d55a1e74954210d4c3fc93c24e8c01b478053ca1a849812262fa119aba";
}
- { 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.2/linux-i686/sco/firefox-94.0.2.tar.bz2";
locale = "sco";
arch = "linux-i686";
- sha256 = "8e1adffa5e7a46ddcad564e4d7d01b19b3c851eed451cd1e83608c634f9e8fbc";
+ sha256 = "604268a66d7a772a2cd6dfaeaaed40cd65b896fe3af36844e204128ae84a9e39";
}
- { 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.2/linux-i686/si/firefox-94.0.2.tar.bz2";
locale = "si";
arch = "linux-i686";
- sha256 = "0ed0ce0025e1ecf7b3fef2cb011b5c5fcb0e3eb67a0159e80b6c116b9034277f";
+ sha256 = "5a14d6f00ab3f7aa1240ceb471f3454fe9a0b095c7d98fd6624577cc8a11bb5d";
}
- { 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.2/linux-i686/sk/firefox-94.0.2.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "1e1334c2e55a27b6b653d038f4ef30d8655b3c7c253365788cdfd92117bb1e47";
+ sha256 = "bad43a5b54fde29e19dd1324662ccae0f213cbbf0a2a1802c7d230aec4fbbe60";
}
- { 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.2/linux-i686/sl/firefox-94.0.2.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "dc91d34c44bf240b2c6c9b4285c5a7b24f3c509ee5f9de300e9a6c2ff1228ebb";
+ sha256 = "df05a9c60a03d50797a8fbb72f72900d68ad776f5ab27f72a0f9b50a58e46439";
}
- { 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.2/linux-i686/son/firefox-94.0.2.tar.bz2";
locale = "son";
arch = "linux-i686";
- sha256 = "29121af73aaeda8e346df00f8831a3c80c77eb759604cd51c8b39597e3f7a6ea";
+ sha256 = "2a502080c97053ff44ac3f910d12a5f3950a892887f24b44fd1b516c3ba237a9";
}
- { 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.2/linux-i686/sq/firefox-94.0.2.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "2d7ca2e6680d909659241561ec2d24369749059acc642d9db8ca90d8e67201d5";
+ sha256 = "bd883d16edc899e4ba43c8125b321b468652f8eb8b39ef0285b65cb8e4e14782";
}
- { 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.2/linux-i686/sr/firefox-94.0.2.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "63ba06a120ac6702350330758aa98671feb1a008bbe08ab2b11d92d556a22a2d";
+ sha256 = "bde21919dc650524f00c94fe085981d13c4be77917a370d874dff6fbc0acd400";
}
- { 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.2/linux-i686/sv-SE/firefox-94.0.2.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "f2f59f378be886fc283a84f58ccea2c8ae2f2313435557122b1dd7161ba03853";
+ sha256 = "6856ffabf236e03d1ee16fd34cd9b75485d5bfcb5f94356a0c636c8d886dec31";
}
- { 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.2/linux-i686/szl/firefox-94.0.2.tar.bz2";
locale = "szl";
arch = "linux-i686";
- sha256 = "df9fc3563749939e20351021f90da4060adcf9c50eae74cc65eacc4c8e019e6c";
+ sha256 = "b793d4afc5b1d67b9f90461b1a82d389970ea1550876797b9ae031f9acb1f939";
}
- { 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.2/linux-i686/ta/firefox-94.0.2.tar.bz2";
locale = "ta";
arch = "linux-i686";
- sha256 = "2f1cef7b50cc9d44f816ab09c38a1b91a63fec3eee65d97a5a8637f503ed7eaa";
+ sha256 = "4b4a5d317c535d23e49c341da57563b10eca4fed88f269d3fd4b2d88d58efb51";
}
- { 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.2/linux-i686/te/firefox-94.0.2.tar.bz2";
locale = "te";
arch = "linux-i686";
- sha256 = "40385b07128cccea8a3210c301795ebaf32c860423c3206297f3ebe2363d868b";
+ sha256 = "ebe97cb46f66a10a429437c44ee7fc58112502ff72dd496a1deaf08deb35a492";
}
- { 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.2/linux-i686/th/firefox-94.0.2.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "e62c3317af6ba5ea55160898c628eaef21eba1be94a77de5c5280dfad12eef65";
+ sha256 = "e14f130d454ad543c26acc04fb8ae10b163e50f886eee95422976cce3109cc0d";
}
- { 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.2/linux-i686/tl/firefox-94.0.2.tar.bz2";
locale = "tl";
arch = "linux-i686";
- sha256 = "801226da66a4a08d48483ef894e8cd4076e0f9381ab949c619d976323ceac02a";
+ sha256 = "8fbec4b22f4abedc1f08e86f06b0bd58c4c9b37475dc036c48430dcf1221e2c0";
}
- { 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.2/linux-i686/tr/firefox-94.0.2.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "dde8d3b8947b8a9b87c6451cc4c1ede7fd0bb0eeb5f86eea4b58a3fa20028038";
+ sha256 = "99403ff004eee5e88098e37f3e5d62c56c72fb86358609f22826326751b81461";
}
- { 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.2/linux-i686/trs/firefox-94.0.2.tar.bz2";
locale = "trs";
arch = "linux-i686";
- sha256 = "1b0ca6672e149b343345f1d8fa7cfbe94054a9a4d67d6d04b4c06e7216e8be38";
+ sha256 = "ff0edf90e4122347430a9df1ad2d0e6fd05b7bbcf00ba92345d31b8bbaae67c2";
}
- { 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.2/linux-i686/uk/firefox-94.0.2.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "2eecee8d2d5f34222b0009b6f5e7638e650e5b692cbdafc2f1710da677ad1e5c";
+ sha256 = "3ddab9ade8f193ea1c5a61a92bfd502c8264de6f4b145793158c9cce99bf1cf5";
}
- { 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.2/linux-i686/ur/firefox-94.0.2.tar.bz2";
locale = "ur";
arch = "linux-i686";
- sha256 = "1386c6c018807e4ca189d6a9b400c3d6bd55abafee476f88b4ab7b958017d460";
+ sha256 = "5b9c92ab2ff9acf88148b9d9c9261aaf353740821fc62a2e2051217fde9c09e0";
}
- { 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.2/linux-i686/uz/firefox-94.0.2.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "7f92bd0536d32ca7af1f8dbe4fd7dd5eb7ce8c2f2d1383b21bfd5b1c8c7ca30e";
+ sha256 = "f1f4b441e1d76b0b92bc3af3f8bb4545699a1860935d008de12784d4a9fe0b9b";
}
- { 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.2/linux-i686/vi/firefox-94.0.2.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "04d7ac16f2d28bfe3d70e717c8a4ee10c291bea54f022521eb22856d41f421ae";
+ sha256 = "a10fa164778d39194d898d9e5159ba1db917751d63e0a84d7d52e5a12747753b";
}
- { 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.2/linux-i686/xh/firefox-94.0.2.tar.bz2";
locale = "xh";
arch = "linux-i686";
- sha256 = "12591a4fe50ef293015484dcef03d43e1922cca4724b3901d38e0cd136b12274";
+ sha256 = "3fdd7069f4f6d546f1eed76edd33b440b658c7519ef97368844f02aa8be6e851";
}
- { 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.2/linux-i686/zh-CN/firefox-94.0.2.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "a9b69bde93512f6531740a4bea967717fb56ad5cfe88a9b89db0e4fc1a971feb";
+ sha256 = "942611c8165b14eff15ebaf00415d60e45982e3eac4cdc79b765c1461a3f42fa";
}
- { 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.2/linux-i686/zh-TW/firefox-94.0.2.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "3c790d0a8ba551c22e7b92bd993eb077159e21e2e3748e64d2aa635739511c36";
+ sha256 = "60c2b8946b79d8d32248e7624c5292cf9d141beffbccb046f6c2a7308d16b23c";
}
];
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
index 2600b5209b..b0d11bd835 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/third_party/nixpkgs/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
@@ -27,7 +27,9 @@
, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
, gssSupport ? true, libkrb5
, pipewireSupport ? waylandSupport && webrtcSupport, pipewire
-, jemallocSupport ? true, jemalloc
+# Workaround: disabled since currently jemalloc causes crashes with LLVM 13.
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1741454
+, jemallocSupport ? false, jemalloc
## privacy-related options
@@ -71,6 +73,9 @@
# > the experience of Firefox users, you won't have any issues using the
# > official branding.
, enableOfficialBranding ? true
+
+# On 32bit platforms, we disable adding "-g" for easier linking.
+, enableDebugSymbols ? !stdenv.is32bit
}:
assert stdenv.cc.libc or null != null;
@@ -91,20 +96,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;
@@ -114,19 +115,12 @@ let
# When LTO for Darwin is fixed, the following will need updating as lld
# doesn't work on it. For now it is fine since ltoSupport implies no Darwin.
buildStdenv = if ltoSupport
- then overrideCC stdenv llvmPackages.clangUseLLVM
+ # LTO requires LLVM bintools including ld.lld and llvm-ar.
+ then overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override {
+ inherit (llvmPackages) bintools;
+ })
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
- releaseFlags = if stdenv.is32bit
- then [ "--disable-release" "--disable-debug-symbols" ]
- else [ "--enable-release" ];
in
buildStdenv.mkDerivation ({
@@ -137,27 +131,15 @@ 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;
-
+ # This fixes a race condition causing deadlock.
+ # https://phabricator.services.mozilla.com/D128657
+ lib.optional (lib.versionAtLeast version "94") (fetchpatch {
+ url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/9c7f25d45bb1dd6b1a865780bc249cdaa619aa83/trunk/0002-Bug-1735905-Upgrade-cubeb-pulse-to-fix-a-race-condit.patch";
+ sha256 = "l4bMK/YDXcDpIjPy9DPuUSFyDpzVQca201A4h9eav5g=";
+ }) ++
+ 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 +147,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 +161,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,15 +169,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;
-
- NIX_LDFLAGS = lib.optionalString ltoSupport ''
- -rpath ${llvmPackages.libunwind.out}/lib
- '';
+ Foundation libobjc AddressBook cups ];
MACH_USE_SYSTEM_PYTHON = "1";
@@ -203,22 +179,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 =
[
@@ -240,6 +201,9 @@ buildStdenv.mkDerivation ({
++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ]
++ extraNativeBuildInputs;
+ separateDebugInfo = enableDebugSymbols;
+ setOutputFlags = false; # `./mach configure` doesn't understand `--*dir=` flags.
+
preConfigure = ''
# remove distributed configuration files
rm -f configure
@@ -263,7 +227,11 @@ buildStdenv.mkDerivation ({
${lib.optionalString buildStdenv.cc.isClang "-idirafter ${buildStdenv.cc.cc.lib}/lib/clang/${lib.getVersion buildStdenv.cc.cc}/include"} \
${lib.optionalString buildStdenv.cc.isGNU "-isystem ${lib.getDev buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc} -isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc}/${buildStdenv.hostPlatform.config}"} \
$NIX_CFLAGS_COMPILE"
-
+ ${
+ # Bindgen doesn't like the flag added by `separateDebugInfo`.
+ lib.optionalString enableDebugSymbols ''
+ BINDGEN_CFLAGS="''${BINDGEN_CFLAGS/ -Wa,--compress-debug-sections/}"
+ ''}
echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
'' + (lib.optionalString googleAPISupport ''
# Google API key used by Chromium and Firefox.
@@ -307,7 +275,7 @@ buildStdenv.mkDerivation ({
# https://bugzilla.mozilla.org/show_bug.cgi?id=1538724
# elf-hack is broken when using clang+lld:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
- ++ lib.optional ltoSupport "--enable-lto"
+ ++ lib.optional ltoSupport "--enable-lto=cross" # Cross-language LTO.
++ lib.optional (ltoSupport && (buildStdenv.isAarch32 || buildStdenv.isi686 || buildStdenv.isx86_64)) "--disable-elf-hack"
++ lib.optional (ltoSupport && !buildStdenv.isDarwin) "--enable-linker=lld"
@@ -321,9 +289,13 @@ buildStdenv.mkDerivation ({
++ lib.optional drmSupport "--enable-eme=widevine"
++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
- else ([ "--disable-debug"
- "--enable-optimize"
- "--enable-strip" ] ++ releaseFlags))
+ else [ "--disable-debug" "--enable-optimize" ])
+ # --enable-release adds -ffunction-sections & LTO that require a big amount of
+ # RAM and the 32-bit memory space cannot handle that linking
+ ++ flag (!debugBuild && !stdenv.is32bit) "release"
+ ++ flag enableDebugSymbols "debug-symbols"
+ ++ lib.optionals enableDebugSymbols [ "--disable-strip" "--disable-install-strip" ]
+
++ lib.optional enableOfficialBranding "--enable-official-branding"
++ extraConfigureFlags;
@@ -331,14 +303,7 @@ buildStdenv.mkDerivation ({
cd obj-*
'';
- makeFlags = lib.optionals ltoSupport [
- "AR=${buildStdenv.cc.bintools.bintools}/bin/llvm-ar"
- "LLVM_OBJDUMP=${buildStdenv.cc.bintools.bintools}/bin/llvm-objdump"
- "NM=${buildStdenv.cc.bintools.bintools}/bin/llvm-nm"
- "RANLIB=${buildStdenv.cc.bintools.bintools}/bin/llvm-ranlib"
- "STRIP=${buildStdenv.cc.bintools.bintools}/bin/llvm-strip"
- ]
- ++ extraMakeFlags;
+ makeFlags = extraMakeFlags;
enableParallelBuilding = true;
doCheck = false; # "--disable-tests" above
@@ -356,6 +321,42 @@ buildStdenv.mkDerivation ({
gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped")
'';
+ # Workaround: The separateDebugInfo hook skips artifacts whose build ID's length is not 40.
+ # But we got 16-length build ID here. The function body is mainly copied from pkgs/build-support/setup-hooks/separate-debug-info.sh
+ # Remove it when PR #146275 is merged.
+ preFixup = lib.optionalString enableDebugSymbols ''
+ _separateDebugInfo() {
+ [ -e "$prefix" ] || return 0
+
+ local dst="''${debug:-$out}"
+ if [ "$prefix" = "$dst" ]; then return 0; fi
+
+ dst="$dst/lib/debug/.build-id"
+
+ # Find executables and dynamic libraries.
+ local i
+ while IFS= read -r -d $'\0' i; do
+ if ! isELF "$i"; then continue; fi
+
+ # Extract the Build ID. FIXME: there's probably a cleaner way.
+ local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')"
+ if [[ -z "$id" ]]; then
+ echo "could not find build ID of $i, skipping" >&2
+ continue
+ fi
+
+ # Extract the debug info.
+ header "separating debug info from $i (build ID $id)"
+ mkdir -p "$dst/''${id:0:2}"
+ $OBJCOPY --only-keep-debug "$i" "$dst/''${id:0:2}/''${id:2}.debug"
+ $STRIP --strip-debug "$i"
+
+ # Also a create a symlink .debug.
+ ln -sfn ".build-id/''${id:0:2}/''${id:2}.debug" "$dst/../$(basename "$i")"
+ done < <(find "$prefix" -type f -print0)
+ }
+ '';
+
doInstallCheck = true;
installCheckPhase = ''
# Some basic testing
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
deleted file mode 100644
index 18d3135698..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch
deleted file mode 100644
index b6f1b81fa9..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
deleted file mode 100644
index 3530954ea5..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
index 80750b966c..5923a967e7 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
rec {
firefox = common rec {
pname = "firefox";
- version = "93.0";
+ version = "94.0.2";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
- sha512 = "b29890e331819d47201b599b9feaaa7eaa0b02088fcbf980efc4f289d43da4f73970bf35ba2f763a2a892fd5318deb68cb9a66e71e9bc0c603642434c7e32e91";
+ sha512 = "00ce4f6be711e1f309828e030163e61bbd9fe3364a8e852e644177c93832078877dea1a516719b106a52c0d8462193ed52c1d3cc7ae34ea021eb1dd0f5b685e2";
};
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/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
index aa6f7da503..462c24a623 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -290,7 +290,7 @@ let
else
for res in 16 32 48 64 128; do
mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps"
- icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" )
+ icon=$( find "${browser}/lib/" -name "default''${res}.png" )
if [ -e "$icon" ]; then ln -s "$icon" \
"$out/share/icons/hicolor/''${res}x''${res}/apps/${applicationName}.png"
fi
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix
index 7baca62e67..4bc4e36012 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, lib, fetchFromSourcehut, pkg-config, bearssl, scdoc }:
+{ stdenv, lib, fetchFromSourcehut, bearssl, scdoc }:
stdenv.mkDerivation rec {
pname = "gmni";
- version = "unstable-2021-03-26";
+ version = "1.0";
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "gmni";
- rev = "77b73efbcd3ea7ed9e3e4c0aa19d9247e21d3c87";
- sha256 = "1wvnzyv7vyddcd39y6q5aflpnnsdl4k4y5aj5ssb7vgkld0h1b7r";
+ rev = version;
+ sha256 = "sha256-3MFNAI/SfFigNfitfFs3o9kkz7JeEflMHiH7iJpLfi4=";
};
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ bearssl scdoc ];
+ nativeBuildInputs = [ scdoc ];
+ buildInputs = [ bearssl ];
meta = with lib; {
description = "A Gemini client";
homepage = "https://git.sr.ht/~sircmpwn/gmni";
license = licenses.gpl3Only;
maintainers = with maintainers; [ bsima jb55 ];
- platforms = platforms.all;
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
index 4028f8622c..1435d24726 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
@@ -1,31 +1,44 @@
-{ lib, mkDerivation, fetchFromGitHub, qtbase, qtmultimedia }:
+{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, qmake, qtmultimedia }:
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "kristall";
version = "0.3";
+
src = fetchFromGitHub {
owner = "MasterQ32";
repo = "kristall";
- rev = "V" + version;
+ rev = "V${version}";
sha256 = "07nf7w6ilzs5g6isnvsmhh4qa1zsprgjyf0zy7rhpx4ikkj8c8zq";
};
- buildInputs = [ qtbase qtmultimedia ];
+ postPatch = lib.optionalString stdenv.cc.isClang ''
+ sed -i '1i #include ' src/browsertab.cpp
+ '';
+
+ nativeBuildInputs = [ wrapQtAppsHook qmake ];
+
+ buildInputs = [ qtmultimedia ];
qmakeFlags = [ "src/kristall.pro" ];
- installPhase = ''
+ installPhase = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ mv kristall.app $out/Applications
+ '' else ''
install -Dt $out/bin kristall
install -D Kristall.desktop $out/share/applications/net.random-projects.kristall.desktop
+ install -D src/icons/kristall.svg $out/share/icons/hicolor/scalable/apps/net.random-projects.kristall.svg
+ for size in 16 32 64 128; do
+ install -D src/icons/kristall-''${size}.png $out/share/icons/hicolor/''${size}x''${size}/apps/net.random-projects.kristall.png
+ done
'';
- meta = with lib;
- src.meta // {
- description =
- "Graphical small-internet client, supports gemini, http, https, gopher, finger";
- homepage = "https://random-projects.net/projects/kristall.gemini";
- maintainers = with maintainers; [ ehmry ];
- license = licenses.gpl3;
- inherit (qtmultimedia.meta) platforms;
- };
+ meta = with lib; {
+ description =
+ "Graphical small-internet client, supports gemini, http, https, gopher, finger";
+ homepage = "https://random-projects.net/projects/kristall.gemini";
+ maintainers = with maintainers; [ ehmry ];
+ license = licenses.gpl3Only;
+ inherit (qtmultimedia.meta) platforms;
+ };
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
index 6217862eb1..db791d9e43 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -13,18 +13,19 @@
, pcre
, SDL2
, AppKit
+, zip
, zlib
}:
stdenv.mkDerivation rec {
pname = "lagrange";
- version = "1.7.3";
+ version = "1.9.1";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${version}";
- sha256 = "sha256-peBdmz/aucrKO5Vsj8WkHkpGpLm4inQHee133Zph3MM=";
+ sha256 = "sha256-5mZbx9L7YDG2VwrF/iFhYCw8R/0FOnZz9cRkA5Wl9MA=";
fetchSubmodules = true;
};
@@ -32,18 +33,13 @@ stdenv.mkDerivation rec {
rm -r lib/fribidi lib/harfbuzz
'';
- nativeBuildInputs = [ cmake pkg-config ];
+ nativeBuildInputs = [ cmake pkg-config zip ];
buildInputs = [ fribidi harfbuzz libunistring libwebp mpg123 openssl pcre SDL2 zlib ]
++ lib.optional stdenv.isDarwin AppKit;
hardeningDisable = lib.optional (!stdenv.cc.isClang) "format";
- cmakeFlags = [
- "-DENABLE_HARFBUZZ_MINIMAL:BOOL=OFF"
- "-DENABLE_FRIBIDI_BUILD:BOOL=OFF"
- ];
-
installPhase = lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv Lagrange.app $out/Applications
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
index 5231b0a0f9..8a257ee626 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,37 +1,36 @@
-{ stdenv
-, lib
-, fetchzip
-, writeScript
+{ lib
+, stdenv
, alsa-lib
, autoconf213
, cairo
-, desktop-file-utils
, dbus
, dbus-glib
+, desktop-file-utils
+, fetchzip
, ffmpeg
, fontconfig
, freetype
, gnome2
, gnum4
-, gtk2
-, libevent
, libGL
, libGLU
+, libevent
, libnotify
, libpulseaudio
, libstartup_notification
+, pango
, perl
, pkg-config
, python2
, unzip
, which
, wrapGAppsHook
+, writeScript
, xorg
, yasm
, zip
, zlib
-, withGTK3 ? true
-, gtk3
+, withGTK3 ? true, gtk3, gtk2
}:
# Only specific GCC versions are supported with branding
@@ -43,38 +42,16 @@ assert with lib.strings; (
&& versionOlder stdenv.cc.version "11"
);
-let
- libPath = lib.makeLibraryPath [
- ffmpeg
- libpulseaudio
- ];
- gtkVersion = if withGTK3 then "3" else "2";
-in
stdenv.mkDerivation rec {
pname = "palemoon";
- version = "29.4.1";
+ version = "29.4.2.1";
src = fetchzip {
- url = "http://archive.palemoon.org/source/palemoon-${version}-source.tar.xz";
- stripRoot = false;
- sha256 = "0kb9yn1q8rrmnlsyvxvv2gdgyyf12g6rxlyh82lmc0gysvd4qd2c";
+ name = "${pname}-${version}";
+ url = "http://archive.palemoon.org/source/${pname}-${version}.source.tar.xz";
+ sha256 = "sha256-iTn1jbbsw7u+rVe/1J9yJbS0wi5Rlkcy4rO8nWcXu2I=";
};
- passthru.updateScript = writeScript "update-${pname}" ''
- #!/usr/bin/env nix-shell
- #!nix-shell -i bash -p common-updater-scripts curl libxml2
-
- set -eu -o pipefail
-
- # Only release note announcement == finalized release
- version="$(
- curl -s 'http://www.palemoon.org/releasenotes.shtml' |
- xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
- sed 's/v\(\S*\).*/\1/'
- )"
- update-source-version ${pname} "$version"
- '';
-
nativeBuildInputs = [
autoconf213
desktop-file-utils
@@ -99,12 +76,13 @@ stdenv.mkDerivation rec {
freetype
gnome2.GConf
gtk2
- libevent
libGL
libGLU
+ libevent
libnotify
libpulseaudio
libstartup_notification
+ pango
zlib
]
++ (with xorg; [
@@ -118,60 +96,30 @@ stdenv.mkDerivation rec {
pixman
xorgproto
])
- ++ lib.optional withGTK3 gtk3;
+ ++ lib.optionals withGTK3 [
+ gtk3
+ ];
enableParallelBuilding = true;
+ postPatch = ''
+ patchShebangs ./mach
+ '';
+
configurePhase = ''
runHook preConfigure
export MOZCONFIG=$PWD/mozconfig
export MOZ_NOSPAM=1
- # Keep this similar to the official .mozconfig file,
- # only minor changes for portability are permitted with branding.
- # https://developer.palemoon.org/build/linux/
- echo > $MOZCONFIG '
- # Clear this if not a 64bit build
- _BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}
+ export build64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}
+ export gtkversion=${if withGTK3 then "3" else "2"}
+ export xlibs=${lib.makeLibraryPath [ xorg.libX11 ]}
+ export prefix=$out
+ export mozmakeflags="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
+ export autoconf=${autoconf213}/bin/autoconf
- # Set GTK Version to 2 or 3
- _GTK_VERSION=${gtkVersion}
-
- # Standard build options for Pale Moon
- ac_add_options --enable-application=palemoon
- ac_add_options --enable-optimize="-O2 -w"
- ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION
- ac_add_options --enable-jemalloc
- ac_add_options --enable-strip
- ac_add_options --enable-devtools
- ac_add_options --enable-av1
-
- ac_add_options --disable-eme
- ac_add_options --disable-webrtc
- ac_add_options --disable-gamepad
- ac_add_options --disable-tests
- ac_add_options --disable-debug
- ac_add_options --disable-necko-wifi
- ac_add_options --disable-updater
-
- ac_add_options --with-pthreads
-
- # Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
- ac_add_options --enable-official-branding
- export MOZILLA_OFFICIAL=1
-
- ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}
-
- #
- # NixOS-specific adjustments
- #
-
- ac_add_options --prefix=$out
-
- mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
- mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
- '
+ substituteAll ${./mozconfig} $MOZCONFIG
runHook postConfigure
'';
@@ -212,14 +160,22 @@ stdenv.mkDerivation rec {
dontWrapGApps = true;
- preFixup = ''
- gappsWrapperArgs+=(
- --prefix LD_LIBRARY_PATH : "${libPath}"
- )
+ preFixup =
+ let
+ libPath = lib.makeLibraryPath [
+ ffmpeg
+ libpulseaudio
+ ];
+ in
+ ''
+ gappsWrapperArgs+=(
+ --prefix LD_LIBRARY_PATH : "${libPath}"
+ )
wrapGApp $out/lib/palemoon-${version}/palemoon
'';
meta = with lib; {
+ homepage = "https://www.palemoon.org/";
description = "An Open Source, Goanna-based web browser focusing on efficiency and customization";
longDescription = ''
Pale Moon is an Open Source, Goanna-based web browser focusing on
@@ -232,10 +188,24 @@ stdenv.mkDerivation rec {
experience, while offering full customization and a growing collection of
extensions and themes to make the browser truly your own.
'';
- homepage = "https://www.palemoon.org/";
changelog = "https://repo.palemoon.org/MoonchildProductions/Pale-Moon/releases/tag/${version}_Release";
license = licenses.mpl20;
maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
+
+ passthru.updateScript = writeScript "update-${pname}" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p common-updater-scripts curl libxml2
+
+ set -eu -o pipefail
+
+ # Only release note announcement == finalized release
+ version="$(
+ curl -s 'http://www.palemoon.org/releasenotes.shtml' |
+ xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
+ sed 's/v\(\S*\).*/\1/'
+ )"
+ update-source-version ${pname} "$version"
+ '';
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig b/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig
new file mode 100644
index 0000000000..0eab96e584
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig
@@ -0,0 +1,46 @@
+# -*- mode: sh; coding: utf-8-unix; fill-column: 80 -*-
+
+# Mozconfig template file for nixpkgs
+
+# Keep this similar to the official .mozconfig file, only minor changes for
+# portability are permitted with branding.
+# https://developer.palemoon.org/build/linux/
+
+_BUILD_64=@build64@
+
+# Set GTK Version
+_GTK_VERSION=@gtkversion@
+
+# Standard build options for Pale Moon
+ac_add_options --enable-application=palemoon
+ac_add_options --enable-optimize="-O2 -w"
+ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION
+ac_add_options --enable-jemalloc
+ac_add_options --enable-strip
+ac_add_options --enable-devtools
+ac_add_options --enable-av1
+
+ac_add_options --disable-eme
+ac_add_options --disable-webrtc
+ac_add_options --disable-gamepad
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-updater
+
+ac_add_options --with-pthreads
+
+# Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
+ac_add_options --enable-official-branding
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --x-libraries=@xlibs@
+
+#
+# NixOS-specific adjustments
+#
+
+ac_add_options --prefix=@prefix@
+
+mk_add_options MOZ_MAKE_FLAGS=@mozmakeflags@
+mk_add_options AUTOCONF=@autoconf@
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix
index dafcc0e63a..ae4a649724 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix
@@ -7,17 +7,18 @@
, libressl
, ncurses
, autoreconfHook
+, buildPackages
}:
stdenv.mkDerivation rec {
pname = "telescope";
- version = "0.5.2";
+ version = "0.6.1";
src = fetchFromGitHub {
owner = "omar-polo";
repo = pname;
rev = version;
- sha256 = "sha256-AdbFJfoicQUgJ9kesIWZ9ygttyjjDeC0UHRI98GwoZ8=";
+ sha256 = "sha256-r2+jvmnW9EeQf/2X2cOxnOa+HGuGHV6YMftT2MxbSYQ=";
};
nativeBuildInputs = [
@@ -32,6 +33,10 @@ stdenv.mkDerivation rec {
ncurses
];
+ configureFlags = [
+ "HOSTCC=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
+ ];
+
meta = with lib; {
description = "Telescope is a w3m-like browser for Gemini";
homepage = "https://telescope.omarpolo.com/";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 8ac9235121..c36d37ccfd 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -23,7 +23,7 @@
, pango
, audioSupport ? mediaSupport
-, pulseaudioSupport ? false
+, pulseaudioSupport ? mediaSupport
, libpulseaudio
, apulse
@@ -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 = "11.0";
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 = "0938a9yjfg9qa9rv5acrmbgqq11mc8j0pvl1n64jrdz29crk6sj2";
};
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 = "07v1ca66a69jl238qdq81mw654yffrcyq685y4rvv8xvx11fnzzp";
};
};
in
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix
index 7fa9fb5237..a54ccfdf6c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix b/third_party/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix
new file mode 100644
index 0000000000..33f35ba12a
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix b/third_party/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix
new file mode 100644
index 0000000000..c823dcbb1d
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
index c959dd61ba..54bf0641fc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cloudflared";
- version = "2021.9.2";
+ version = "2021.11.0";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflared";
rev = version;
- sha256 = "sha256-UAx3DY8d3I1g7DuNmBu4w+3NGUQqDdcScXdtq/VkpJ8=";
+ sha256 = "sha256-amwzMSPMaXbIj95RhSVnl0kwHnEluKj4L7q4Zu2HPgE=";
};
vendorSha256 = null;
@@ -22,6 +22,6 @@ buildGoModule rec {
homepage = "https://www.cloudflare.com/products/argo-tunnel";
license = licenses.unfree;
platforms = platforms.unix;
- maintainers = [ maintainers.thoughtpolice maintainers.enorris ];
+ maintainers = with maintainers; [ bbigras enorris thoughtpolice ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index 91ccf67f55..e70344f939 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,15 +2,15 @@
buildGoModule rec {
pname = "argocd";
- version = "2.1.2";
- commit = "7af9dfb3524c13e941ab604e36e49a617fe47d2e";
+ version = "2.1.7";
+ commit = "a408e299ffa743213df3aa9135bf7945644ec936";
tag = "v${version}";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo-cd";
rev = tag;
- sha256 = "1pr48z1qhv7xxnllr00zz2v0ygxmq2hjdyk0j3zazflnqr2mc596";
+ sha256 = "sha256-c6WUqD7x8/P+W64fWs4cw1RiUFepevIJCPpWSzNfIMc=";
};
vendorSha256 = "sha256-N45yRlBGZ/c9ve2YPcWA26pylV8hzxjPh6evKtkgnoc=";
@@ -69,6 +69,6 @@ buildGoModule rec {
downloadPage = "https://github.com/argoproj/argo-cd";
homepage = "https://argo-cd.readthedocs.io/en/stable/";
license = licenses.asl20;
- maintainers = with maintainers; [ shahrukh330 superherointj ];
+ maintainers = with maintainers; [ shahrukh330 bryanasdev000 ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
new file mode 100644
index 0000000000..f74f87ad11
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, kubectl
+}:
+
+buildGoModule rec {
+ pname = "arkade";
+ version = "0.8.11";
+
+ src = fetchFromGitHub {
+ owner = "alexellis";
+ repo = "arkade";
+ rev = version;
+ sha256 = "0mdi5cjcs0qzj238lfjqbjgi131r2vxj810zx1gv1lc9y0aq0hkl";
+ };
+
+ CGO_ENABLED = 0;
+
+ vendorSha256 = "05zdd5c2x4k4myxmgj32md8wq08i543l8q81rabqgyd3r9nwv4lx";
+
+ # Exclude pkg/get: tests downloading of binaries which fail when sandbox=true
+ subPackages = [
+ "."
+ "cmd"
+ "pkg/apps"
+ "pkg/archive"
+ "pkg/config"
+ "pkg/env"
+ "pkg/helm"
+ "pkg/k8s"
+ "pkg/types"
+ ];
+
+ ldflags = [
+ "-s" "-w"
+ "-X github.com/alexellis/arkade/cmd.GitCommit=ref/tags/${version}"
+ "-X github.com/alexellis/arkade/cmd.Version=${version}"
+ ];
+
+ buildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/arkade" \
+ --prefix PATH : ${lib.makeBinPath [ kubectl ]}
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/alexellis/arkade";
+ description = "Open Source Kubernetes Marketplace";
+ license = licenses.mit;
+ maintainers = with maintainers; [ welteki ];
+ platforms = [
+ "x86_64-linux"
+ "x86_64-darwin"
+ "aarch64-linux"
+ "aarch64-darwin"
+ "armv7l-linux"
+ "armv6l-linux"
+ ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
index 5984710d8c..da9f0938d1 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cilium-cli";
- version = "0.9.0";
+ version = "0.9.3";
src = fetchFromGitHub {
owner = "cilium";
repo = pname;
rev = "v${version}";
- sha256 = "05qc1fcf4ahl1zvxv92mq3awiy5b1rq6r9l896b4hkp0m5lx9m3c";
+ sha256 = "sha256-t4Im3/2qcKnDDcKWmUUa/lsZszDDlos+uTERKxd7x1c=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
new file mode 100644
index 0000000000..752c9b3c61
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "clusterctl";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "kubernetes-sigs";
+ repo = "cluster-api";
+ rev = "v${version}";
+ sha256 = "sha256-EkBZZUkr1u0u75WDDFAdLLpS01+3+eyXpu4HRg2Q780=";
+ };
+
+ vendorSha256 = "sha256-VO1Z4NUWrd4JuFYFg0a01psqoIM8ps3vKd0djR5OELU=";
+
+ subPackages = [ "cmd/clusterctl" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ ldflags = let t = "sigs.k8s.io/cluster-api/version"; in [
+ "-X ${t}.gitMajor=${lib.versions.major version}"
+ "-X ${t}.gitMinor=${lib.versions.minor version}"
+ "-X ${t}.gitVersion=v${version}"
+ ];
+
+ postInstall = ''
+ # errors attempting to write config to read-only $HOME
+ export HOME=$(mktemp -d)
+
+ installShellCompletion --cmd clusterctl \
+ --bash <($out/bin/clusterctl completion bash) \
+ --zsh <($out/bin/clusterctl completion zsh)
+ '';
+
+ meta = with lib; {
+ description = "Kubernetes cluster API tool";
+ homepage = "https://cluster-api.sigs.k8s.io/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ zowoq ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
new file mode 100644
index 0000000000..c42fb87d80
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -0,0 +1,56 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "driftctl";
+ version = "0.15.0";
+
+ src = fetchFromGitHub {
+ owner = "cloudskiff";
+ repo = "driftctl";
+ rev = "v${version}";
+ sha256 = "sha256-rWC4jqquVWJmHV/dnH+DsxlNiAY01xnq9z0/owS4Yis=";
+ };
+
+ vendorSha256 = "sha256-d8vASP8KnUeUkaHRU8kCE7FCt2QLGu5ET5BN3GM2O9c=";
+
+ postUnpack = ''
+ # Without this, tests fail to locate aws/3.19.0.json
+ for prefix in / \
+ /pkg \
+ /pkg/analyser \
+ /pkg/alerter \
+ /pkg/remote \
+ /pkg/middlewares \
+ /pkg/cmd/scan/output \
+ /pkg/iac/terraform/state \
+ /pkg/iac/supplier ; do
+ mkdir -p ./source/$prefix/github.com/cloudskiff
+ ln -sf $PWD/source ./source/$prefix/github.com/cloudskiff/driftctl
+ done
+
+ # Disable check for latest version and telemetry, which are opt-out.
+ # Making it out-in is quite a job, and why bother?
+ find -name '*.go' \
+ | xargs sed -i 's,https://2lvzgmrf2e.execute-api.eu-west-3.amazonaws.com/,https://0.0.0.0/,g'
+
+ # and remove corresponding flags from --help, so things look tidy.
+ find -name driftctl.go | \
+ xargs sed -i -e '/("no-version-check"/ d' -e '/("disable-telemetry"/ d'
+
+ # Presumably it can be done with ldflags, but I failed to find incantation
+ # that would work, we here we go old-school.
+ find -name version.go | xargs sed -i -e 's/"dev"/"${version}"/'
+ find -name build.go | xargs sed -i -e 's/"dev"/"release"/'
+
+ # Fix the tests that checks for dev-dev.
+ find -name version_test.go | xargs sed -i -e 's/"dev-dev/"${version}/'
+ find -name driftctl_test.go | xargs sed -i -e 's/"dev-dev/"${version}/'
+ '';
+
+ meta = with lib; {
+ description = "Tool to track infrastructure drift";
+ homepage = "https://github.com/cloudskiff/driftctl";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kaction ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
index 0867306e2f..3ff2621e29 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
let
- version = "0.19.1";
- sha256 = "184f5q3aa4p6gjdmr8x6a97rzaj64ws8bf3q8sz4xjyznznwcpp0";
- manifestsSha256 = "1xxf572yvjmik7dvijz810lxzfj7irddznl4icidn7hrljzjrv95";
+ version = "0.23.0";
+ sha256 = "15j4r43hy3slyahx4am7lj7jns4x3axrcbr9qwiznmk8qbvrzrdy";
+ manifestsSha256 = "10rh0q1la5dq6n9y1yvw9ilj5lhzx8vh1zi2lznfjsvc5niwx7wf";
manifests = fetchzip {
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
@@ -23,7 +23,7 @@ buildGoModule rec {
inherit sha256;
};
- vendorSha256 = "sha256-1ZIeS42LoreZKkzDNZxmF17HeDWWVo49CaZDrIR2U9g=";
+ vendorSha256 = "sha256-vFm9ai+VWOPLRckKJ7gfD/0iQ8b4o5HNQE4cekb0vA0=";
postUnpack = ''
cp -r ${manifests} source/cmd/flux/manifests
@@ -66,6 +66,6 @@ buildGoModule rec {
'';
homepage = "https://fluxcd.io";
license = licenses.asl20;
- maintainers = with maintainers; [ jlesquembre superherointj ];
+ maintainers = with maintainers; [ jlesquembre bryanasdev000 ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
new file mode 100644
index 0000000000..7214530a04
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "helm-docs";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = "norwoodj";
+ repo = "helm-docs";
+ rev = "v${version}";
+ sha256 = "sha256-eyFuF03rqwfXyjEkqNRkjrJlHBazGYij1EtN0LAKdFk=";
+ };
+
+ vendorSha256 = "sha256-aAn969C4UhFGu5/qXIG/rc1cErQIDtPwEA+f0d43y0w=";
+
+ subPackages = [ "cmd/helm-docs" ];
+ ldflags = [
+ "-w"
+ "-s"
+ "-X main.version=v${version}"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/norwoodj/helm-docs";
+ description = "A tool for automatically generating markdown documentation for Helm charts";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ sagikazarmark ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 425e7e2c24..f13c812d60 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index a802ce6794..d24dff6fb8 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm }:
+{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "helmfile";
@@ -15,17 +15,10 @@ buildGoModule rec {
doCheck = false;
- nativeBuildInputs = [ makeWrapper ];
-
subPackages = [ "." ];
ldflags = [ "-s" "-w" "-X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ];
- postInstall = ''
- wrapProgram $out/bin/helmfile \
- --prefix PATH : ${lib.makeBinPath [ kubernetes-helm ]}
- '';
-
meta = {
description = "Deploy Kubernetes Helm charts";
homepage = "https://github.com/roboll/helmfile";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index aa0abbae42..47da659d7e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
index 508ea403c5..acf9cea24e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix
index b552af837b..689922515d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
index 662f9df030..f3b5e4cd70 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -13,7 +13,6 @@
, pkg-config
, ethtool
, util-linux
-, ipset
, fetchFromGitHub
, fetchurl
, fetchzip
@@ -43,9 +42,9 @@ 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.22.2+k3s2"; # k3s git tag
- k3sCommit = "3f5774b41eb475eb10c93bb0ce58459a6f777c5f"; # k3s git commit at the above version
- k3sRepoSha256 = "1kjf2zkm5d3s1aj4w9gzsc3ms3a0cm900fyi9899ijczw1cbrc61";
+ k3sVersion = "1.22.3+k3s1"; # k3s git tag
+ k3sCommit = "61a2aab25eeb97c26fa3f2b177e4355a7654c991"; # k3s git commit at the above version
+ k3sRepoSha256 = "0lz5hr3c86gxm9w5jy3g26n6a26m8k0y559hv6220rsi709j7ma9";
traefikChartVersion = "10.3.0"; # taken from ./manifests/traefik.yaml at spec.version
traefikChartSha256 = "0y6wr64xp7bgx24kqil0x6myr3pnfrg8rw0d1h5zd2n5a8nfd73f";
@@ -60,7 +59,7 @@ let
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/third_party/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index 871ab8b934..ce3d24facb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "k9s";
- version = "0.24.15";
+ version = "0.25.7";
src = fetchFromGitHub {
owner = "derailed";
repo = "k9s";
rev = "v${version}";
- sha256 = "sha256-ws5JC2/WkgwxKwYtP9xtFELRhztzL6tNSvopyeC6H0Q=";
+ sha256 = "sha256-CFXPo8dpefrrBxCGpcGtZfLdfMYCBL/eQhHqZggK/yA=";
};
ldflags = [
@@ -17,14 +17,16 @@ buildGoModule rec {
"-X github.com/derailed/k9s/cmd.commit=${src.rev}"
];
- vendorSha256 = "sha256-T9khJeg5XPhVyUiu4gEEHZR6RgJF4P8LYFycqJglms8=";
+ vendorSha256 = "sha256-v4cd+f2GSE2ad0wWrW9x6/U6RREhFV83wVNFUMfWaA4=";
- doCheck = false;
+ preCheck = "export HOME=$(mktemp -d)";
+
+ doCheck = true;
meta = with lib; {
description = "Kubernetes CLI To Manage Your Clusters In Style";
homepage = "https://github.com/derailed/k9s";
license = licenses.asl20;
- maintainers = with maintainers; [ Gonzih markus1189 ];
+ maintainers = with maintainers; [ Gonzih markus1189 bryanasdev000 ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
index a41c3c0ad3..411efb6e52 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kn";
- version = "0.26.0";
+ version = "0.27.0";
src = fetchFromGitHub {
owner = "knative";
repo = "client";
rev = "v${version}";
- sha256 = "sha256-hquxv1BluR535WvMtJlVyP7JuARDNGDjPAbdSSj2juo=";
+ sha256 = "sha256-nuSx+JKXBgkVwuy6RMZc8pxDv5WjXN3+5pIudazTttc=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
index 8487afc208..b7a7ab3c5d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -52,21 +52,21 @@ rec {
mkKops = generic;
- kops_1_19 = mkKops rec {
- version = "1.19.2";
- sha256 = "15csxih1xy8myky37n5dyzp5mc31pc4bq9asaw6zz51mgw8ad5r9";
- rev = "v${version}";
- };
-
kops_1_20 = mkKops rec {
- version = "1.20.2";
- sha256 = "011ib3xkj6nn7qax8d0ns8y4jhkwwmry1qnzxklvzssaxhmzs557";
+ version = "1.20.3";
+ sha256 = "sha256-Yrh0wFz7MQgTDwENqQouYh3pr1gOq64Rqft5yxIiCAo=";
rev = "v${version}";
};
kops_1_21 = mkKops rec {
- version = "1.21.1";
- sha256 = "sha256-/C/fllgfAovHuyGRY+LM09bsUpYdA8zDw1w0b9HnlBc=";
+ version = "1.21.4";
+ sha256 = "sha256-f2xOVa3N/GH5IoI6H/QwDdKTeQoF/kEHX6lNytCZ9cs=";
+ rev = "v${version}";
+ };
+
+ kops_1_22 = mkKops rec {
+ version = "1.22.2";
+ sha256 = "sha256-9LT4/iwlPFiz+hUHE0y8DK8T9xwL9HkrrFUXrEqKbM8=";
rev = "v${version}";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock b/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock
index 7cc11b1af6..c2ef3e4b25 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -9,8 +9,10 @@ GEM
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
+ cgi (0.3.1)
colorize (0.8.1)
concurrent-ruby (1.1.9)
+ date (3.2.2)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
ejson (1.3.0)
@@ -55,16 +57,18 @@ GEM
http-form_data (2.3.0)
http-parser (1.2.3)
ffi-compiler (>= 1.0, < 2.0)
- i18n (1.8.10)
+ i18n (1.8.11)
concurrent-ruby (~> 1.0)
jsonpath (0.9.9)
multi_json
to_regexp (~> 0.2.1)
jwt (2.3.0)
- krane (2.3.0)
+ krane (2.3.4)
activesupport (>= 5.0)
+ cgi
colorize (~> 0.8)
concurrent-ruby (~> 1.1)
+ date
ejson (~> 1.0)
googleauth (~> 0.8)
jsonpath (~> 0.9.6)
@@ -77,15 +81,15 @@ GEM
recursive-open-struct (~> 1.1, >= 1.1.1)
rest-client (~> 2.0)
memoist (0.16.2)
- mime-types (3.3.1)
+ mime-types (3.4.1)
mime-types-data (~> 3.2015)
- mime-types-data (3.2021.0901)
+ mime-types-data (3.2021.1115)
minitest (5.14.4)
multi_json (1.15.0)
multipart-post (2.1.1)
netrc (0.11.0)
- oj (3.13.8)
- os (1.1.1)
+ oj (3.13.9)
+ os (1.1.4)
public_suffix (4.0.6)
rake (13.0.6)
recursive-open-struct (1.1.3)
@@ -108,7 +112,7 @@ GEM
unf (0.1.4)
unf_ext
unf_ext (0.0.8)
- zeitwerk (2.4.2)
+ zeitwerk (2.5.1)
PLATFORMS
ruby
@@ -117,4 +121,4 @@ DEPENDENCIES
krane
BUNDLED WITH
- 2.2.20
+ 2.2.24
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix
index 13163c193e..43bbe528cb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -21,6 +21,16 @@
};
version = "2.8.0";
};
+ cgi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vy8g58ns18x3dl566wg5rp4hymlx9584ddf75isdyig0yxjl0sn";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
colorize = {
groups = ["default"];
platforms = [];
@@ -41,6 +51,16 @@
};
version = "1.1.9";
};
+ date = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j1ghv5lqpn8jdvvci2fqvl30j4x31hhgzzc0mj54cga1sgh97n7";
+ type = "gem";
+ };
+ version = "3.2.2";
+ };
domain_name = {
dependencies = ["unf"];
groups = ["default"];
@@ -244,10 +264,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+ sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
type = "gem";
};
- version = "1.8.10";
+ version = "1.8.11";
};
jsonpath = {
dependencies = ["multi_json" "to_regexp"];
@@ -271,15 +291,15 @@
version = "2.3.0";
};
krane = {
- dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
+ dependencies = ["activesupport" "cgi" "colorize" "concurrent-ruby" "date" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1r4sfyapdqcgqns4skxwkxd9v7a4f0h7y7zrgyz7za1p56jmx9sr";
+ sha256 = "07pij3z7kz7n0nvf8xwcaackck8wyjwldjva7215k2dm8csdzaih";
type = "gem";
};
- version = "2.3.0";
+ version = "2.3.4";
};
kubeclient = {
dependencies = ["http" "recursive-open-struct" "rest-client"];
@@ -308,20 +328,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
+ sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
type = "gem";
};
- version = "3.3.1";
+ version = "3.4.1";
};
mime-types-data = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1z5wvk6qi4ws1kjh7xn1rfirqw5m72bwvqacck1fjpbh33pcrwxv";
+ sha256 = "03m3fkix2haah20kvh1jgv262yg9jlzn6wq0y31kafxk8fysfy27";
type = "gem";
};
- version = "3.2021.0901";
+ version = "3.2021.1115";
};
minitest = {
groups = ["default"];
@@ -368,20 +388,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1wk5vk0py65aqp3xrs8s8qkj8pw6xny5z5p9dx16qdx6j3zw5a6g";
+ sha256 = "1hcmczbp9afxijzg0gvp9milyzk15phfmbpmmsj5ppmziwkdls16";
type = "gem";
};
- version = "3.13.8";
+ version = "3.13.9";
};
os = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
+ sha256 = "0gwd20smyhxbm687vdikfh1gpi96h8qb1x28s2pdcysf6dm6v0ap";
type = "gem";
};
- version = "1.1.1";
+ version = "1.1.4";
};
public_suffix = {
groups = ["default"];
@@ -512,9 +532,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+ sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
type = "gem";
};
- version = "2.4.2";
+ version = "2.5.1";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
index 707abd5e2b..6ef24ded1a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index 2c571ff83a..b30d699947 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
index eb29cba7de..02c1c83478 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -4,19 +4,20 @@
, makeWrapper
, git
, go
+, gnumake
}:
buildGoModule rec {
pname = "kubebuilder";
- version = "3.1.0";
+ version = "3.2.0";
src = fetchFromGitHub {
owner = "kubernetes-sigs";
repo = "kubebuilder";
rev = "v${version}";
- sha256 = "0bl5ff2cplal6hg75800crhyviamk1ws85sq60h4zg21hzf21y68";
+ sha256 = "sha256-V/g2RHnZPa/9hkVG5WVXmbx6hnJAwUEyyUX/Q3OR2DM=";
};
- vendorSha256 = "0zxyd950ksjswja64rfri5v2yaalfg6qmq8215ildgrcavl9974n";
+ vendorSha256 = "sha256-bTCLuAo5xXNoafjGpjKLKlKVKB29PEFwdPu9+qjvufs=";
subPackages = ["cmd"];
@@ -33,7 +34,7 @@ buildGoModule rec {
postInstall = ''
mv $out/bin/cmd $out/bin/kubebuilder
wrapProgram $out/bin/kubebuilder \
- --prefix PATH : ${lib.makeBinPath [ go ]}
+ --prefix PATH : ${lib.makeBinPath [ go gnumake ]}
'';
allowGoReference = true;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
index 5efee961b4..0169442e1b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -2,13 +2,13 @@
buildGoPackage rec {
pname = "kubecfg";
- version = "0.21.0";
+ version = "0.22.0";
src = fetchFromGitHub {
owner = "bitnami";
repo = "kubecfg";
rev = "v${version}";
- sha256 = "sha256-Wu7+Xmb7ha3OG37DzLg2+/Sr9hB5oD3OIkC9h9Fa4QA=";
+ sha256 = "sha256-8U/A4F4DboS46ftpuk5fQGT2Y0V+X0y0L3/o4x8qpnY=";
};
goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
index 7249c2a5ce..29a8388bd5 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
new file mode 100644
index 0000000000..bd160db33c
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kubectl-evict-pod";
+ version = "0.0.10";
+
+ src = fetchFromGitHub {
+ owner = "rajatjindal";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-Z4fJzU317p7K+klcDQAukXAfZOpHd3PlH5fKO0PgKHA=";
+ };
+
+ vendorSha256 = "sha256-8VTrywlzrzoBEi/xOqkwhGW/R2B2oGqgh01Gv9FcW80=";
+
+ meta = with lib; {
+ description = "This plugin evicts the given pod and is useful for testing pod disruption budget rules";
+ homepage = "https://github.com/rajatjindal/kubectl-evict-pod";
+ license = licenses.asl20;
+ maintainers = [ maintainers.j4m3s ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index 655150580b..cbf14f43d2 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubedb-cli";
- version = "0.21.0";
+ version = "0.22.0";
src = fetchFromGitHub {
owner = "kubedb";
repo = "cli";
rev = "v${version}";
- sha256 = "sha256-7e1VQ9uXNj6Lmnl1IXHLcADSLuK7Jgiww8acxtD4xFM=";
+ sha256 = "sha256-pAvaScbwGJMW3iFS26D71nImWsXcEVx7ONUP82f6QDQ=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index 13b15da38c..c974b83034 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
index af8e04667b..774efb044a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -1,17 +1,21 @@
-{ lib, fetchFromGitHub, buildGoModule, makeWrapper }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, makeWrapper
+}:
buildGoModule rec {
pname = "kubeval";
- version = "0.16.0";
+ version = "0.16.1";
src = fetchFromGitHub {
owner = "instrumenta";
repo = "kubeval";
- rev = version;
- sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0=";
+ rev = "v${version}";
+ sha256 = "sha256-pwJOV7V78H2XaMiiJvKMcx0dEwNDrhgFHmCRLAwMirg=";
};
- vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4=";
+ vendorSha256 = "sha256-OAFxEb7IWhyRBEi8vgmekDSL/YpmD4EmUfildRaPR24=";
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix
new file mode 100644
index 0000000000..d7a58f09b4
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, coredns
+, installShellFiles
+, isFull ? false
+, enableGateway ? false
+, pname ? "kuma"
+, components ? lib.optionals isFull [
+ "kumactl"
+ "kuma-cp"
+ "kuma-prometheus-sd"
+ "kuma-dp"
+ ]
+}:
+
+buildGoModule rec {
+ inherit pname ;
+ version = "1.4.0";
+ tags = lib.optionals enableGateway ["gateway"];
+ vendorSha256 = "1fc5psvbd9bpc6c3y2cpx5dx8cgr2fcp7nln3kwfgbryahq2y8wl";
+
+ src = fetchFromGitHub {
+ owner = "kumahq";
+ repo = "kuma";
+ rev = version;
+ sha256 = "0agib3w5s270n5rhg54m3p4f21s5fhdrhaks374j7l21njs7xhqb";
+ };
+
+ doCheck = false;
+
+ nativeBuildInputs = [installShellFiles] ++ lib.optionals isFull [coredns];
+
+ preBuild = ''
+ export HOME=$TMPDIR
+ '';
+
+ subPackages = map (p: "app/" + p) components;
+
+ postInstall = lib.concatMapStringsSep "\n" (p: ''
+ installShellCompletion --cmd ${p} \
+ --bash <($out/bin/${p} completion bash) \
+ --fish <($out/bin/${p} completion fish) \
+ --zsh <($out/bin/${p} completion zsh)
+ '') components + lib.optionalString isFull ''
+ ln -sLf ${coredns}/bin/coredns $out/bin
+ '';
+
+ 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 = "Service mesh controller";
+ homepage = "https://kuma.io/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ zbioe ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kumactl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kumactl/default.nix
deleted file mode 100644
index d13db27444..0000000000
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kumactl/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ 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/third_party/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
index 6e04391d7a..985ae17632 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
@@ -2,13 +2,13 @@
let
pname = "lens";
- version = "5.1.3";
- build = "${version}-latest.20210722.1";
+ version = "5.2.6";
+ build = "${version}-latest.20211104.1";
name = "${pname}-${version}";
src = fetchurl {
url = "https://api.k8slens.dev/binaries/Lens-${build}.x86_64.AppImage";
- sha256 = "1iwwyqpn1x1m8n22f99snlhcbcr65i4przx697hlbpmnm40dw7q9";
+ sha256 = "1lkxzgwrgafraimpnciv89fs6r399275vb73drxlg5z83acacf5z";
name="${pname}.AppImage";
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
new file mode 100644
index 0000000000..ff91caf409
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "levant";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "hashicorp";
+ repo = "levant";
+ rev = "v${version}";
+ sha256 = "9M7a4i+DPKb1H9jOEVAvhvYxGwtj3dK/40n4GSy4Rqo=";
+ };
+
+ vendorSha256 = "5JlrgmIfhX0rPR72sUkFcofw/iIbIaca359GN9C9dhU=";
+
+ runVend = true;
+
+ # The tests try to connect to a Nomad cluster.
+ doCheck = false;
+
+ meta = with lib; {
+ description = "An open source templating and deployment tool for HashiCorp Nomad jobs";
+ homepage = "https://github.com/hashicorp/levant";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ max-niederman ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
index 51dced0af2..958640af65 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -2,7 +2,7 @@
(callPackage ./generic.nix { }) {
channel = "stable";
- version = "2.11.0";
- sha256 = "172in8vmr7c5sff111rrd5127lz2pv7bbh7p399xafnk8ri0fx2i";
+ version = "2.11.1";
+ sha256 = "09zwxcaqn537ls737js7rcsqarapw5k25gv41d844k73yvxm882c";
vendorSha256 = "sha256-c3EyVrblqtFuoP7+YdbyPN0DdN6TcQ5DTtFQ/frKM0Q=";
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix
index 82172ebb99..f2c4183f47 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 2a6d642d0c..874a6fdecc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
index 9eabf0ac1b..047a472c39 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
@@ -23,7 +23,7 @@ let
'';
meta = old.meta // {
- homepage = https://github.com/NixOS/nixops;
+ homepage = "https://github.com/NixOS/nixops";
description = "NixOS cloud provisioning and deployment tool";
maintainers = with lib.maintainers; [ adisbladis aminechikhaoui eelco rob domenkozar ];
platforms = lib.platforms.unix;
@@ -61,12 +61,14 @@ let
).python;
pkg = interpreter.pkgs.nixops.withPlugins(ps: [
- ps.nixops-encrypted-links
- ps.nixops-hercules-ci
- ps.nixops-virtd
ps.nixops-aws
+ ps.nixops-digitalocean
+ ps.nixops-encrypted-links
ps.nixops-gcp
+ ps.nixops-hercules-ci
+ ps.nixops-hetzner
ps.nixopsvbox
+ ps.nixops-virtd
]) // rec {
# Workaround for https://github.com/NixOS/nixpkgs/issues/119407
# TODO after #1199407: Use .overrideAttrs(pkg: old: { passthru.tests = .....; })
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
index 75b9471c9e..c05cf0038a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
@@ -5,8 +5,8 @@ self: super: {
_: {
src = pkgs.fetchgit {
url = "https://github.com/NixOS/nixops.git";
- rev = "35ac02085169bc2372834d6be6cf4c1bdf820d09";
- sha256 = "1jh0jrxyywjqhac2dvpj7r7isjv68ynbg7g6f6rj55raxcqc7r3j";
+ rev = "7ebdd8ace8d6bcefc18ee9e3e590f8bfa3368771";
+ sha256 = "16pwxs5bca6cd83f0rs4sf5r8yf07wmha051waysmxs9xxl856yc";
};
}
);
@@ -15,8 +15,18 @@ self: super: {
_: {
src = pkgs.fetchgit {
url = "https://github.com/NixOS/nixops-aws.git";
- rev = "371aedeb7fd53b8978a60dd7c37d3a6c38101c48";
- sha256 = "15jz9x3ra3hsh6xj4cbri1fvvjk2rplnnhnccz7qc6f176b5r01j";
+ rev = "83900880a413218020ddd91d6cd3f5b823acb3fb";
+ sha256 = "17gf4vfcl1vx81y9vk26zzcj6kac41kfhzwcx15cj91ivqrgn3b2";
+ };
+ }
+ );
+
+ nixops-digitalocean = super.nixops-digitalocean.overridePythonAttrs (
+ _: {
+ src = pkgs.fetchgit {
+ url = "https://github.com/nix-community/nixops-digitalocean.git";
+ rev = "b527b4bd27a419753e38c8231fd7528b3ea33886";
+ sha256 = "069jlgcjqgyb1v3dnrp2h0w4gv5hfx624iq2xazaix2wxpx9w7f8";
};
}
);
@@ -51,6 +61,16 @@ self: super: {
}
);
+ nixops-hetzner = super.nixops-hetzner.overridePythonAttrs (
+ _: {
+ src = pkgs.fetchgit {
+ url = "https://github.com/NixOS/nixops-hetzner";
+ rev = "84f4eebb89b049c4f86aa779349397c3dedc0c43";
+ sha256 = "0qx8v775jhlbqyhid8wkzy3xcha08kkzb42h6ayszwq4alyfx0b0";
+ };
+ }
+ );
+
nixops-virtd = super.nixops-virtd.overridePythonAttrs (
_: {
src = pkgs.fetchgit {
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock
index 87d8fce2f2..413d440c82 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock
@@ -8,11 +8,11 @@ python-versions = "*"
[[package]]
name = "apache-libcloud"
-version = "3.3.1"
+version = "3.4.1"
description = "A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see https://libcloud.apache.org"
category = "main"
optional = false
-python-versions = ">=3.5.*, <4"
+python-versions = ">=3.5, <4"
[package.dependencies]
requests = ">=2.5.0"
@@ -38,14 +38,14 @@ python-versions = "*"
[[package]]
name = "boto3"
-version = "1.18.64"
+version = "1.20.8"
description = "The AWS SDK for Python"
category = "main"
optional = false
python-versions = ">= 3.6"
[package.dependencies]
-botocore = ">=1.21.64,<1.22.0"
+botocore = ">=1.23.8,<1.24.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.64"
+version = "1.23.8"
description = "Low-level, data-driven core of boto 3."
category = "main"
optional = false
@@ -133,6 +133,14 @@ category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+[[package]]
+name = "hetzner"
+version = "0.8.3"
+description = "High level access to the Hetzner robot"
+category = "main"
+optional = false
+python-versions = "*"
+
[[package]]
name = "idna"
version = "3.3"
@@ -143,7 +151,7 @@ python-versions = ">=3.5"
[[package]]
name = "imagesize"
-version = "1.2.0"
+version = "1.3.0"
description = "Getting image size from png/jpeg/jpeg2000/gif file"
category = "dev"
optional = false
@@ -151,7 +159,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "jinja2"
-version = "3.0.2"
+version = "3.0.3"
description = "A very fast and expressive template engine."
category = "dev"
optional = false
@@ -171,9 +179,22 @@ category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+[[package]]
+name = "jsonpickle"
+version = "2.0.0"
+description = "Python library for serializing any arbitrary object graph into JSON"
+category = "main"
+optional = false
+python-versions = ">=2.7"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["coverage (<5)", "pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov", "ecdsa", "feedparser", "numpy", "pandas", "pymongo", "sklearn", "sqlalchemy", "enum34", "jsonlib"]
+"testing.libs" = ["demjson", "simplejson", "ujson", "yajl"]
+
[[package]]
name = "libvirt-python"
-version = "7.8.0"
+version = "7.9.0"
description = "The libvirt virtualization API python binding"
category = "main"
optional = false
@@ -206,7 +227,7 @@ typing-extensions = "^3.7.4"
type = "git"
url = "https://github.com/NixOS/nixops.git"
reference = "master"
-resolved_reference = "35ac02085169bc2372834d6be6cf4c1bdf820d09"
+resolved_reference = "7ebdd8ace8d6bcefc18ee9e3e590f8bfa3368771"
[[package]]
name = "nixops-aws"
@@ -228,7 +249,26 @@ typing-extensions = "^3.7.4"
type = "git"
url = "https://github.com/NixOS/nixops-aws.git"
reference = "master"
-resolved_reference = "371aedeb7fd53b8978a60dd7c37d3a6c38101c48"
+resolved_reference = "83900880a413218020ddd91d6cd3f5b823acb3fb"
+
+[[package]]
+name = "nixops-digitalocean"
+version = "2.0"
+description = "NixOps plugin for Digital Ocean"
+category = "main"
+optional = false
+python-versions = "^3.7"
+develop = false
+
+[package.dependencies]
+nixops = {git = "https://github.com/NixOS/nixops.git", branch = "master"}
+python-digitalocean = "^1.15.0"
+
+[package.source]
+type = "git"
+url = "https://github.com/nix-community/nixops-digitalocean.git"
+reference = "master"
+resolved_reference = "b527b4bd27a419753e38c8231fd7528b3ea33886"
[[package]]
name = "nixops-encrypted-links"
@@ -287,6 +327,27 @@ url = "https://github.com/hercules-ci/nixops-hercules-ci.git"
reference = "master"
resolved_reference = "e601d5baffd003fd5f22deeaea0cb96444b054dc"
+[[package]]
+name = "nixops-hetzner"
+version = "1.0"
+description = "NixOS deployment tool, but for hetzner"
+category = "main"
+optional = false
+python-versions = "^3.7"
+develop = false
+
+[package.dependencies]
+hetzner = "0.8.3"
+nixops = {git = "https://github.com/NixOS/nixops.git", rev = "master"}
+nixos-modules-contrib = {git = "https://github.com/nix-community/nixos-modules-contrib.git", rev = "master"}
+typing-extensions = "^3.7.4"
+
+[package.source]
+type = "git"
+url = "https://github.com/NixOS/nixops-hetzner"
+reference = "master"
+resolved_reference = "84f4eebb89b049c4f86aa779349397c3dedc0c43"
+
[[package]]
name = "nixops-virtd"
version = "1.0"
@@ -344,14 +405,14 @@ resolved_reference = "81a1c2ef424dcf596a97b2e46a58ca73a1dd1ff8"
[[package]]
name = "packaging"
-version = "21.0"
+version = "21.3"
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.0.5 || >3.0.5"
[[package]]
name = "pluggy"
@@ -374,7 +435,7 @@ python-versions = "*"
[[package]]
name = "pycparser"
-version = "2.20"
+version = "2.21"
description = "C parser in Python"
category = "main"
optional = false
@@ -390,11 +451,14 @@ python-versions = ">=3.5"
[[package]]
name = "pyparsing"
-version = "2.4.7"
+version = "3.0.6"
description = "Python parsing module"
category = "dev"
optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = ">=3.6"
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "python-dateutil"
@@ -407,6 +471,18 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
[package.dependencies]
six = ">=1.5"
+[[package]]
+name = "python-digitalocean"
+version = "1.17.0"
+description = "digitalocean.com API to manage Droplets and Images"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+jsonpickle = "*"
+requests = "*"
+
[[package]]
name = "pytz"
version = "2021.3"
@@ -457,7 +533,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "snowballstemmer"
-version = "2.1.0"
+version = "2.2.0"
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
category = "dev"
optional = false
@@ -601,7 +677,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[metadata]
lock-version = "1.1"
python-versions = "^3.8"
-content-hash = "8a294b2745b271983bac54258b4f3a2ab3b2e5b218440329fa7eea482c63774f"
+content-hash = "e75c6429aa8989659a345f903e2e67d87514b5864751e33890d90aa2d20ef3e2"
[metadata.files]
alabaster = [
@@ -609,8 +685,8 @@ alabaster = [
{file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
]
apache-libcloud = [
- {file = "apache-libcloud-3.3.1.tar.gz", hash = "sha256:d7450453eaf5904eb4fb4f74cf9f37dc83721a719bce34f5abb336b1a1ab974d"},
- {file = "apache_libcloud-3.3.1-py2.py3-none-any.whl", hash = "sha256:c3722c4dd58b0ee4beaf4e615e0ba82505d9a915e55319dc84383687166a3eed"},
+ {file = "apache-libcloud-3.4.1.tar.gz", hash = "sha256:88f18da0cf3fac0af723e743fb741d9d1be251881edab7a5a0d1629955b5011b"},
+ {file = "apache_libcloud-3.4.1-py2.py3-none-any.whl", hash = "sha256:af1a5b3cda7bc3220093726ff67dbb70928521e2ec19d0e33a31b1e22fde1850"},
]
babel = [
{file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
@@ -621,12 +697,12 @@ boto = [
{file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
]
boto3 = [
- {file = "boto3-1.18.64-py3-none-any.whl", hash = "sha256:b4d6299dd16a3042b7750cde00fe38d57fd59d3ce242308ba8488618ca931694"},
- {file = "boto3-1.18.64.tar.gz", hash = "sha256:9223b433b0d3b74f2b9574fb3c384048998343ccd6b608044318a7f9b904f661"},
+ {file = "boto3-1.20.8-py3-none-any.whl", hash = "sha256:c0ac23cc36dc484edd1edd28903b5712cb07507af1ae19b2e8d6db176416d9e2"},
+ {file = "boto3-1.20.8.tar.gz", hash = "sha256:81ebdcabc534a52e2b7a2bfcbe1a1d7f1e34f028f7fe1cb16ccd80e34cea867a"},
]
botocore = [
- {file = "botocore-1.21.64-py3-none-any.whl", hash = "sha256:d57287377e4c7c7d7bf6c5fa39e02994de1d99fced9492a58a00e5a54bae1cca"},
- {file = "botocore-1.21.64.tar.gz", hash = "sha256:0a30dca4dad7d43fd856e671ace95f9afc4726caa1e22f0ae11b654fc76e0c7d"},
+ {file = "botocore-1.23.8-py3-none-any.whl", hash = "sha256:a0c7cfea155a0202ab197a016736dd4e6a26f9e416bdd9cdd2c9a3fb88ffa5a8"},
+ {file = "botocore-1.23.8.tar.gz", hash = "sha256:ae4ed9666199020a9e53c3d3efc0a7d417315cd2313b70cb013282afe70ac358"},
]
certifi = [
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
@@ -715,24 +791,31 @@ docutils = [
{file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
]
+hetzner = [
+ {file = "hetzner-0.8.3.tar.gz", hash = "sha256:9a43dbbeb4a1f3efc86c5fe1c1d7039aaa635dfdb829506ec3aa34382d3a7114"},
+]
idna = [
{file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
{file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
]
imagesize = [
- {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
- {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
+ {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"},
+ {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
]
jinja2 = [
- {file = "Jinja2-3.0.2-py3-none-any.whl", hash = "sha256:8569982d3f0889eed11dd620c706d39b60c36d6d25843961f33f77fb6bc6b20c"},
- {file = "Jinja2-3.0.2.tar.gz", hash = "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45"},
+ {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"},
+ {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
]
jmespath = [
{file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
{file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
]
+jsonpickle = [
+ {file = "jsonpickle-2.0.0-py2.py3-none-any.whl", hash = "sha256:c1010994c1fbda87a48f8a56698605b598cb0fc6bb7e7927559fc1100e69aeac"},
+ {file = "jsonpickle-2.0.0.tar.gz", hash = "sha256:0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a"},
+]
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-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
@@ -772,15 +855,17 @@ markupsafe = [
]
nixops = []
nixops-aws = []
+nixops-digitalocean = []
nixops-encrypted-links = []
nixops-gcp = []
nixops-hercules-ci = []
+nixops-hetzner = []
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.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
]
pluggy = [
{file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
@@ -792,21 +877,25 @@ prettytable = [
{file = "prettytable-0.7.2.zip", hash = "sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"},
]
pycparser = [
- {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
- {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
+ {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
+ {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
pygments = [
{file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"},
{file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"},
]
pyparsing = [
- {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
- {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+ {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
+ {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
]
python-dateutil = [
{file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
]
+python-digitalocean = [
+ {file = "python-digitalocean-1.17.0.tar.gz", hash = "sha256:107854fde1aafa21774e8053cf253b04173613c94531f75d5a039ad770562b24"},
+ {file = "python_digitalocean-1.17.0-py3-none-any.whl", hash = "sha256:0032168e022e85fca314eb3f8dfaabf82087f2ed40839eb28f1eeeeca5afb1fa"},
+]
pytz = [
{file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
{file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
@@ -824,8 +913,8 @@ six = [
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
]
snowballstemmer = [
- {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
- {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"},
+ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
+ {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
]
sphinx = [
{file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"},
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml
index 3cd3025b1f..89e6e34c77 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml
@@ -8,10 +8,12 @@ authors = ["Adam Hoese "]
python = "^3.8"
nixops = {git = "https://github.com/NixOS/nixops.git"}
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-digitalocean = {git = "https://github.com/nix-community/nixops-digitalocean.git"}
nixops-encrypted-links = {git = "https://github.com/nix-community/nixops-encrypted-links.git"}
+nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"}
nixops-hercules-ci = {git = "https://github.com/hercules-ci/nixops-hercules-ci.git"}
+nixops-hetzner = {git = "https://github.com/NixOS/nixops-hetzner"}
+nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"}
nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"}
[tool.poetry.dev-dependencies]
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
index 910317bd96..e70856ef9d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "popeye";
- version = "0.9.7";
+ version = "0.9.8";
src = fetchFromGitHub {
rev = "v${version}";
owner = "derailed";
repo = "popeye";
- sha256 = "sha256-oft1zLLd5TP8S9GMjp5kYaoPoOYnbhJwL2wBerkhp+c=";
+ sha256 = "sha256-uGy2BbZS4SGT0w9ICYPUIfFawSvIVMsEezPfPAPQU/Q=";
};
ldflags = [
@@ -21,6 +21,11 @@ buildGoModule rec {
doCheck = true;
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/popeye version | grep ${version} > /dev/null
+ '';
+
meta = with lib; {
description = "A Kubernetes cluster resource sanitizer";
homepage = "https://github.com/derailed/popeye";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
index b82b6cf610..c256f23dbc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/third_party/nixpkgs/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 = "237bd35906f5c4bed1f4de4aa58cc6a6a676d4fd";
in
buildGoModule rec {
pname = "sonobuoy";
- version = "0.53.2"; # Do not forget to update `rev` above
+ version = "0.55.1"; # Do not forget to update `rev` above
ldflags =
let t = "github.com/vmware-tanzu/sonobuoy";
@@ -17,13 +17,13 @@ buildGoModule rec {
];
src = fetchFromGitHub {
- sha256 = "sha256-8bUZsknG1Z2TKWwtuJtnauK8ibikGphl3oiLXT3PZzY=";
- rev = "v${version}";
- repo = "sonobuoy";
owner = "vmware-tanzu";
+ repo = "sonobuoy";
+ rev = "v${version}";
+ sha256 = "sha256-pHpnh+6O9yjnDA8u0jyLvqNQbXC+xz8fRn47aQNdOAo=";
};
- vendorSha256 = "sha256-Lkwv95BZa7nFEXk1KcwXIRVpj9DZmqnWjkdrZkO/k24=";
+ vendorSha256 = "sha256-jPKCWTFABKRZCg6X5VVdrmOU/ZFc7yGD7R8RJrpcITg=";
subPackages = [ "." ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
index 7cbb2328ae..9d532a3861 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
@@ -6,7 +6,7 @@
let
nodeEnv = import ../../../../development/node-packages/node-env.nix {
- inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index 089f0b7bd9..b5c732282b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
homepage =
"https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
description = "Amazon SSM Session Manager Plugin";
- platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
license = licenses.unfree;
maintainers = with maintainers; [ mbaillie ];
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
index 60fdc69023..a03f69a9fc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 44ceb3f162..50efacfd62 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 54959e4583..afcd55a2b5 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -17,6 +17,7 @@ let
inherit (data) owner repo rev sha256;
};
vendorSha256 = data.vendorSha256 or null;
+ deleteVendor = data.deleteVendor or false;
# Terraform allow checking the provider versions, but this breaks
# if the versions are not provided via file paths.
@@ -57,6 +58,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/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
index ed2409ead9..5e8b0bdc0a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub, fetchpatch, libvirt, pkg-config, makeWrapper, cdrtools }:
+{ buildGoModule, cdrtools, fetchFromGitHub, lib, libvirt, makeWrapper, pkg-config }:
# USAGE:
# install the following package globally or in nix-shell:
@@ -9,33 +9,25 @@
#
# virtualisation.libvirtd.enable = true;
#
-# terraform-provider-libvirt does not manage pools at the moment:
-#
-# $ virsh --connect "qemu:///system" pool-define-as default dir - - - - /var/lib/libvirt/images
-# $ virsh --connect "qemu:///system" pool-start default
-#
# pick an example from (i.e ubuntu):
-# https://github.com/dmacvicar/terraform-provider-libvirt/tree/master/examples
+# https://github.com/dmacvicar/terraform-provider-libvirt/tree/main/examples
+
+let
+ sha256 = "sha256-8GGPd0+qdw7s4cr0RgLoS0Cu4C+RAuuboZzTyYN/kq8=";
+ vendorSha256 = "sha256-fpO2sGM+VUKLmdfJ9CQfTFnCfxVTK2m9Sirj9oerD/I=";
+ version = "0.6.11";
+in buildGoModule {
+ inherit version;
+ inherit vendorSha256;
-buildGoPackage rec {
pname = "terraform-provider-libvirt";
- version = "0.6.3";
-
- goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt";
-
- patches = [
- (fetchpatch {
- name = "base_volume_copy.patch";
- url = "https://github.com/cyril-s/terraform-provider-libvirt/commit/52df264e8a28c40ce26e2b614ee3daea882931c3.patch";
- sha256 = "1fg7ii2fi4c93hl41nhcncy9bpw3avbh6yiq99p1vkf87hhrw72n";
- })
- ];
src = fetchFromGitHub {
+ inherit sha256;
+
owner = "dmacvicar";
repo = "terraform-provider-libvirt";
rev = "v${version}";
- sha256 = "0ak2lpnv6h0i7lzfcggd90jpfhvsasdr6nflkflk2drlcpalggj9";
};
nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -48,7 +40,12 @@ buildGoPackage rec {
# Terraform allow checking the provider versions, but this breaks
# if the versions are not provided via file paths.
- postBuild = "mv go/bin/terraform-provider-libvirt{,_v${version}}";
+ postBuild = "mv $GOPATH/bin/terraform-provider-libvirt{,_v${version}}";
+
+ ldflags = [ "-X main.version=${version}" ];
+ passthru.provider-source-address = "registry.terraform.io/dmacvicar/libvirt";
+
+ doCheck = false;
meta = with lib; {
homepage = "https://github.com/dmacvicar/terraform-provider-libvirt";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
index ab3d07a7f4..4ea2194a03 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
index ffcc0b3d43..e2f181d02a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -10,43 +10,47 @@
"owner": "vancluever",
"provider-source-address": "registry.terraform.io/vancluever/acme",
"repo": "terraform-provider-acme",
- "rev": "v2.5.2",
- "sha256": "0yk5yxx8vdfymxggydpzsb2a0iw4n8010wlprz23qg37gb2p26yf",
- "vendorSha256": "04zrrn67w30ib0n5s4f31x3nl3h3xz2r522ldkbbx20jy5iabrkk",
- "version": "2.5.2"
+ "rev": "v2.7.0",
+ "sha256": "0dyzsfazhxjjfkykykz823n0fk2fbl53nwxpv7wvl1zzmg72lk37",
+ "vendorSha256": "1sw83jxa3kjjqrjv3z1hczlszskc7lk0i4lrnvdnxa6s642i7brl",
+ "version": "2.7.0"
},
"aiven": {
"owner": "aiven",
"provider-source-address": "registry.terraform.io/aiven/aiven",
"repo": "terraform-provider-aiven",
- "rev": "v2.1.14",
- "sha256": "14bfdhn3daygj1v3lm9b3791sx2cd5h0panchpp39h6vrccrpmmk",
- "vendorSha256": "1j09bfbld03yxq0vv9ld0xmw5axbza2bwlz01i1gl1v9dprlnbkc",
- "version": "2.1.14"
+ "rev": "v2.3.2",
+ "sha256": "14ivvb1ql06gxfi6ffg1kg9k9xadds6fgzj9wp2hh3an2rf7v9ym",
+ "vendorSha256": "0akqbhjz309znzjqm633nk2zbf925l6027n88bb7mgbv1zjxqw9j",
+ "version": "2.3.2"
},
"akamai": {
- "owner": "terraform-providers",
+ "owner": "akamai",
"provider-source-address": "registry.terraform.io/akamai/akamai",
"repo": "terraform-provider-akamai",
- "rev": "v0.7.1",
- "sha256": "0mg81147yz0m24xqljpw6v0ayhvb4fwf6qwaj7ii34hy2gjwv405",
- "version": "0.7.1"
+ "rev": "v1.8.0",
+ "sha256": "0jpw16bap4q75dzchimfqgqqkkn3ckw19q9rjfb8zbkvini5ybw1",
+ "vendorSha256": "sha256-03Q0/YrivaG2fMgIjW6mxWOIdFZ7FKYB8C6DZIGr+/w=",
+ "version": "1.8.0"
},
"alicloud": {
- "owner": "terraform-providers",
+ "deleteVendor": true,
+ "owner": "aliyun",
+ "provider-source-address": "registry.terraform.io/aliyun/alicloud",
"repo": "terraform-provider-alicloud",
- "rev": "v1.86.0",
- "sha256": "1hbv9ah7fd173sapwgsbg7790piwxw9zx90wfj5vz5b96ggbg28d",
- "version": "1.86.0"
+ "rev": "v1.144.0",
+ "sha256": "14nphpz15p83n6fsvvrnaz96nb87wvb10ri21hlhlsm2579zcbqd",
+ "vendorSha256": "1k28fcfm7437i7gfbcbrigk2i50c1mix7z1rb2g617prih84wa6y",
+ "version": "1.144.0"
},
"archive": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/archive",
"repo": "terraform-provider-archive",
- "rev": "v2.0.0",
- "sha256": "1d5n379zyjp2srg43g78a8h33qwcpkfkj7c35idvbyydi35vzlpl",
+ "rev": "v2.2.0",
+ "sha256": "11iv6c0bnrp2s69h3b7f238jdnkcjgrihp8c46lhw393ki6aqfhk",
"vendorSha256": null,
- "version": "2.0.0"
+ "version": "2.2.0"
},
"arukas": {
"owner": "terraform-providers",
@@ -80,28 +84,28 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/aws",
"repo": "terraform-provider-aws",
- "rev": "v3.56.0",
- "sha256": "0fa61i172maanxmxz28mj7mkgrs9a5bs61mlvb0d5y97lv6pm2xg",
- "vendorSha256": "1s22k4b2zq5n0pz6iqbqsf6f7chsbvkpdn432rvyshcryxlklfvl",
- "version": "3.56.0"
+ "rev": "v3.66.0",
+ "sha256": "1s9bdpadg34wbr0qgiafn86xnaryfdfa5vdbvz6i24dps082gv6y",
+ "vendorSha256": "1cycfd3vc9980ijfwldgyvx3v003khrcm3qg18928s7k16xaql0b",
+ "version": "3.66.0"
},
"azuread": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/azuread",
"repo": "terraform-provider-azuread",
- "rev": "v1.4.0",
- "sha256": "13y0h8af37gfsjhccbfsnj6kqcn61lr1znmsxipjr5h9ka5lc209",
+ "rev": "v2.10.0",
+ "sha256": "1q70kighdgsq1jwwfhcjx6458242lvkczlzjl0mf5j5y7k5g3m42",
"vendorSha256": null,
- "version": "1.4.0"
+ "version": "2.10.0"
},
"azurerm": {
- "owner": "terraform-providers",
+ "owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/azurerm",
"repo": "terraform-provider-azurerm",
- "rev": "v2.58.0",
- "sha256": "1zy3q5d63pz2rdczcs9xnxzasb2jbzhyg8nbk2r252mdnhx6h9vh",
+ "rev": "v2.86.0",
+ "sha256": "0p508qvqh0bg3x80i62i4p3q4nzgq0il651vrcg4c13lwynk2wcn",
"vendorSha256": null,
- "version": "2.58.0"
+ "version": "2.86.0"
},
"azurestack": {
"owner": "hashicorp",
@@ -179,10 +183,10 @@
"owner": "cloudflare",
"provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
"repo": "terraform-provider-cloudflare",
- "rev": "v2.23.0",
- "sha256": "0cyw6lddw3pj5lqra78qn0nd16ffay86vc8sqa68grx7ik9jgn7l",
- "vendorSha256": "19fdwif81lqp848jhawd09b0lalslrwadd519vsdw03v2wp4p962",
- "version": "2.23.0"
+ "rev": "v3.4.0",
+ "sha256": "1w37wkpb785jfqq91piclcsrhy3idpbmwb90n5y7rkgmm37ij7ij",
+ "vendorSha256": "004pb5xnvisq3j113i6qfvnh1j06nkpkgzav3wb08k0bl19b6jks",
+ "version": "3.4.0"
},
"cloudinit": {
"owner": "hashicorp",
@@ -229,38 +233,49 @@
"version": "0.1.0"
},
"consul": {
- "owner": "terraform-providers",
+ "owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/consul",
"repo": "terraform-provider-consul",
- "rev": "v2.8.0",
- "sha256": "1brd0fp9ksc3x8cygxm0k2q1sh4v5x89298pnidg6xirn41lvcr4",
- "version": "2.8.0"
+ "rev": "v2.14.0",
+ "sha256": "19kmjjg4f74askwwwslbh5wvi5ndcr4wzm0374qr8gc57qiwxkpy",
+ "vendorSha256": null,
+ "version": "2.14.0"
},
"ct": {
"owner": "poseidon",
"provider-source-address": "registry.terraform.io/poseidon/ct",
"repo": "terraform-provider-ct",
- "rev": "v0.8.0",
- "sha256": "1mm86q3rl81dm2yfg2hdf88x8g5mhwwixrxgrffpkjvjqy42a8h7",
- "version": "0.8.0"
+ "rev": "v0.9.1",
+ "sha256": "1d8q6ffh64v46r80vmbpsgmjw1vg6y26hpq3nz2h5mvqm0fqya9r",
+ "vendorSha256": "sha256-e/r59hnVRxrSqmQUwYZiN+YCCz+LbxUHGV2MFGcmJn4=",
+ "version": "0.9.1"
},
"datadog": {
"owner": "DataDog",
"provider-source-address": "registry.terraform.io/DataDog/datadog",
"repo": "terraform-provider-datadog",
- "rev": "v3.2.0",
- "sha256": "1qrk40w81qzcmm52gr3ysrh077417cxyh4xy7igwdjfzl85z22mx",
- "vendorSha256": "0iphsz6y9gajwmw5rj4yq65azx02ki093agqbqw49rnzdhc6jahr",
- "version": "3.2.0"
+ "rev": "v3.6.0",
+ "sha256": "00j40m720m2kh0pn4953n8zis78g02ah9yjkcavcjkpxy4p899ma",
+ "vendorSha256": "1i5ph7p4pj5ph9rkynii50n3npjprrcsmd15i430wpyjxvsjnw8c",
+ "version": "3.6.0"
+ },
+ "dhall": {
+ "owner": "awakesecurity",
+ "provider-source-address": "registry.terraform.io/awakesecurity/dhall",
+ "repo": "terraform-provider-dhall",
+ "rev": "v0.0.1",
+ "sha256": "1cymabpa03a5avf0j6jj2mpnc62ap9b82zmpsgzwdjrb3mf954fa",
+ "vendorSha256": "0m11cpis171j9aicw0c66y4m1ckg41gjknj86qvblh57ai96gc1n",
+ "version": "0.0.1"
},
"digitalocean": {
"owner": "digitalocean",
"provider-source-address": "registry.terraform.io/digitalocean/digitalocean",
"repo": "terraform-provider-digitalocean",
- "rev": "v2.2.0",
- "sha256": "14v9sh2qqdflzzp5mvkr7hd5c21hch8b8shxiwm0ar4qgdxq3wfy",
+ "rev": "v2.16.0",
+ "sha256": "0l67yd7l0s36lwp1hm44d77i7d5019j0ddjzf22aw8cv9xd5fhxw",
"vendorSha256": null,
- "version": "2.2.0"
+ "version": "2.16.0"
},
"dme": {
"owner": "terraform-providers",
@@ -273,10 +288,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/dns",
"repo": "terraform-provider-dns",
- "rev": "v3.0.0",
- "sha256": "160dbmg7xg7iyc70f66dphyiysrdbscwya2n28idi8wp5rjx8bid",
- "vendorSha256": null,
- "version": "3.0.0"
+ "rev": "v3.2.1",
+ "sha256": "1zynfwm7hl7pnldjr2nxj0a06j209r62g8zpkasj6zdjscy62rc8",
+ "vendorSha256": "sha256-D/CD3O/EHIa2GTwmIAZM3e3bFSLMXy4KhAGWeD4i7kI=",
+ "version": "3.2.1"
},
"dnsimple": {
"owner": "terraform-providers",
@@ -310,10 +325,10 @@
"owner": "phillbaker",
"provider-source-address": "registry.terraform.io/phillbaker/elasticsearch",
"repo": "terraform-provider-elasticsearch",
- "rev": "v1.5.2",
- "sha256": "1yfmlqab2jb679gbns04sdcjfihzsa0dfp7blhfk3v5zhgv1g7ys",
- "vendorSha256": "15m9aqb2lqjv6g3k46zyha2m118wpbjrh4ap1bfps0fcxn20qvr5",
- "version": "1.5.2"
+ "rev": "v2.0.0-beta.2",
+ "sha256": "1pr0vaag0b0i83381pcpxnq5bpjfj80bm6m483rivbaqbxr0dakw",
+ "vendorSha256": "1w92k895ikrqm9n1hf36wlh9nq278vifl3r14v0rxa8g9awizfdr",
+ "version": "2.0.0-beta.2"
},
"exoscale": {
"owner": "terraform-providers",
@@ -335,10 +350,10 @@
"owner": "fastly",
"provider-source-address": "registry.terraform.io/fastly/fastly",
"repo": "terraform-provider-fastly",
- "rev": "v0.34.0",
- "sha256": "1za00gzmyxr6wfzzq92m3spi9563pbpjwj24sm95kj34l6mfwpyx",
+ "rev": "v0.38.0",
+ "sha256": "1pfwpx83f5v12r9h2a89z8xvqpmwzsadzxx6wh0d1csdkdrr9z1n",
"vendorSha256": null,
- "version": "0.34.0"
+ "version": "0.38.0"
},
"flexibleengine": {
"owner": "terraform-providers",
@@ -362,19 +377,22 @@
"version": "1.1.0"
},
"github": {
- "owner": "terraform-providers",
+ "owner": "integrations",
+ "provider-source-address": "registry.terraform.io/integrations/github",
"repo": "terraform-provider-github",
- "rev": "v3.1.0",
- "sha256": "1xl4fd1lfbn1vnrdmg2xljnv8hy6rmf0iv7g8pzbnzbvj2pi7w3b",
- "version": "3.1.0"
+ "rev": "v4.18.2",
+ "sha256": "1m4ddj4bm84ljrkg8i98gdgbf5c89chv3yz13xbmyl2iga2x5bf7",
+ "vendorSha256": null,
+ "version": "4.18.2"
},
"gitlab": {
"owner": "gitlabhq",
"provider-source-address": "registry.terraform.io/gitlabhq/gitlab",
"repo": "terraform-provider-gitlab",
- "rev": "v3.4.0",
- "sha256": "03k3xjhxw70n00dvwd0fkdshff9hnicrah6rm6zqmksb4mb7wji3",
- "version": "3.4.0"
+ "rev": "v3.8.0",
+ "sha256": "0ha6lp0z3lqdk05fhggdgdz50dm7z6ksn648khp44n7in0c0c5pj",
+ "vendorSha256": "sha256-tkPenz+gkghIGMYF9iFj1TXUV3NGm/zYGQ3nP2hWdZA=",
+ "version": "3.8.0"
},
"google": {
"owner": "hashicorp",
@@ -398,10 +416,10 @@
"owner": "grafana",
"provider-source-address": "registry.terraform.io/grafana/grafana",
"repo": "terraform-provider-grafana",
- "rev": "v1.12.0",
- "sha256": "0jqm8ql8kams2rh90fwdmv9nnf4npzpxaagm9725nsf0iqn3qlhn",
- "vendorSha256": "0pxd3sgpkry7gik6rgfl3cpgawhvgpb0sn1rkhdp9p11iwx7xxbi",
- "version": "1.12.0"
+ "rev": "v1.14.0",
+ "sha256": "1d8w2a86m1q79f41ypgwg4i4w5269br1yvh437xiypvabajn7yjl",
+ "vendorSha256": "0gk0hk4f060hbl89ay1r91ayp5mwnc236x5jxvw4sgi2cq7mmns2",
+ "version": "1.14.0"
},
"gridscale": {
"owner": "terraform-providers",
@@ -421,10 +439,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/helm",
"repo": "terraform-provider-helm",
- "rev": "v2.1.2",
- "sha256": "1385r9wk6mpb9fj53bkq586v8lw2310dim3kgj3pkrc1fssvwj0z",
+ "rev": "v2.4.1",
+ "sha256": "1lkkydjmm99qmj9bl498swdil909akznhvlqpwr4m67imwlzi1cy",
"vendorSha256": null,
- "version": "2.1.2"
+ "version": "2.4.1"
},
"heroku": {
"owner": "terraform-providers",
@@ -437,10 +455,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/http",
"repo": "terraform-provider-http",
- "rev": "v2.0.0",
- "sha256": "0x6a9qf819g16dj9inyvhwff67xy0ixyy70ck56lkidrldara444",
+ "rev": "v2.1.0",
+ "sha256": "1gih0ksrmhz82966c45ad2yv829pcgbvls92cll7r5haqgvx6k79",
"vendorSha256": null,
- "version": "2.0.0"
+ "version": "2.1.0"
},
"huaweicloud": {
"owner": "terraform-providers",
@@ -469,10 +487,10 @@
"owner": "IBM-Cloud",
"provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
"repo": "terraform-provider-ibm",
- "rev": "v1.14.0",
- "sha256": "1r3y7r0mnbzd7xk6d5f7pvysl3p8vl5i5phya89dfwrk2x9xyw21",
- "vendorSha256": null,
- "version": "1.14.0"
+ "rev": "v1.36.0",
+ "sha256": "09lhxh1cmg1k939gaksaqx11j06f971s1091wk03vivgfzrjy3hn",
+ "vendorSha256": "sha256-IjCLN/7EKenJbbHfBnRJh1LT3Ym/R2yEu+7zCnJ8Giw=",
+ "version": "1.36.0"
},
"icinga2": {
"owner": "terraform-providers",
@@ -520,10 +538,10 @@
"owner": "Mongey",
"provider-source-address": "registry.terraform.io/Mongey/kafka",
"repo": "terraform-provider-kafka",
- "rev": "v0.3.3",
- "sha256": "10il2mmsrk27zgzdkwn495sfhlad2nnc2xa7qzn7rlqzh92bb8rb",
- "vendorSha256": "1gxx561s7jghiq6kqb2nns52bbcp0ks2dylrb1lvy7g2798cpspf",
- "version": "0.3.3"
+ "rev": "v0.4.1",
+ "sha256": "0k1vrd2h7d01ypyhs2q1x83nnmiivglwsbrmwrj4k750x2wniygq",
+ "vendorSha256": "06n2xpic0lmb81rbkx39avz6zgnspmi6xv69kfzdvx7q3zpf7w4s",
+ "version": "0.4.1"
},
"kafka-connect": {
"owner": "Mongey",
@@ -538,10 +556,10 @@
"owner": "mrparkers",
"provider-source-address": "registry.terraform.io/mrparkers/keycloak",
"repo": "terraform-provider-keycloak",
- "rev": "v3.1.1",
- "sha256": "0qh0y1j3y5hzcr8h8wzralv7h8dmrg8jnjccz0fzcmhbkazfrs4p",
- "vendorSha256": "0il4rvwa23zghrq0b8qrzgxyjy0211v9z2a4ln2xmlhcz0105zg8",
- "version": "3.1.1"
+ "rev": "v3.6.0",
+ "sha256": "1lrnzfjrw0yn4hsklhikf75n6drra7nljlzxf2asfkfaiwgcik99",
+ "vendorSha256": "17v5h5s2vijfx5yxhindr30g8ilmz7hamkxhmlk0zg5qb80mzqc1",
+ "version": "3.6.0"
},
"ksyun": {
"owner": "terraform-providers",
@@ -554,19 +572,19 @@
"owner": "gavinbunney",
"provider-source-address": "registry.terraform.io/gavinbunney/kubectl",
"repo": "terraform-provider-kubectl",
- "rev": "v1.10.0",
- "sha256": "1w8g47dh77i7bhvxwysn7ldrcxl999sivxc7ws71ly5mnsljhhz0",
- "vendorSha256": "1qrw2mg8ik2n6xlrnbcrgs9zhr9mwh1niv47kzhbp3mxvj5vdskk",
- "version": "1.10.0"
+ "rev": "v1.13.1",
+ "sha256": "0jm6zri6j3wdgwg8wixfh6w8il3vnqmwlbpa6scbfa8zq71qi1a0",
+ "vendorSha256": "1ahxhb6ws1mq4x7nbww8di0b19z6669gn18scqipvxcvmsihfx4m",
+ "version": "1.13.1"
},
"kubernetes": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
"repo": "terraform-provider-kubernetes",
- "rev": "v2.6.1",
- "sha256": "164x0ddgqk3bj0za4h9kz69npgr4cw7w5hnl0pmxsgvsb04vwc0g",
+ "rev": "v2.7.0",
+ "sha256": "07rqk60k87dff2wgg72ar7sdg99hd210k8afvvz9xh1arj63ixxi",
"vendorSha256": null,
- "version": "2.6.1"
+ "version": "2.7.0"
},
"launchdarkly": {
"owner": "terraform-providers",
@@ -630,10 +648,10 @@
"owner": "equinix",
"provider-source-address": "registry.terraform.io/equinix/metal",
"repo": "terraform-provider-metal",
- "rev": "v3.0.0",
- "sha256": "08h1h0rpaxpidhslpq1i4bmc6i48rwcg7fsvwgqc202l5m7yk3wd",
+ "rev": "v3.2.0",
+ "sha256": "07qdgxvdk564psb4v5d8saaak2037y04b3cj2p09m18fbam8cpry",
"vendorSha256": null,
- "version": "3.0.0"
+ "version": "3.2.0"
},
"metalcloud": {
"owner": "terraform-providers",
@@ -687,11 +705,13 @@
"version": "0.0.1"
},
"nomad": {
- "owner": "terraform-providers",
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/nomad",
"repo": "terraform-provider-nomad",
- "rev": "v1.4.5",
- "sha256": "1sccm4mspjn92ky6nscsrmbb573mx53wzsvvapsf2p4119h9s30i",
- "version": "1.4.5"
+ "rev": "v1.4.16",
+ "sha256": "11pw1ss4rk8hmfk0q9n8nim441ig0cgl1qxsjzcfsznkp5bb11rw",
+ "vendorSha256": "0b813dnkn15sdgvi4lh1l5fppgivzrcv5w56w0yf98vyy8wq7p0j",
+ "version": "1.4.16"
},
"ns1": {
"owner": "terraform-providers",
@@ -727,10 +747,10 @@
"owner": "terraform-providers",
"provider-source-address": "registry.terraform.io/hashicorp/oci",
"repo": "terraform-provider-oci",
- "rev": "v4.49.0",
- "sha256": "1s1gfnj3pi3q11jrdc2qxz9ccdk549nki0qkcnd0s7lxac8xzyfh",
+ "rev": "v4.53.0",
+ "sha256": "0vbi8k6mvcwvmjrs7walw1gfam77simvcr89gmh84jagvz0mngbw",
"vendorSha256": null,
- "version": "4.49.0"
+ "version": "4.53.0"
},
"okta": {
"owner": "terraform-providers",
@@ -771,10 +791,10 @@
"owner": "terraform-provider-openstack",
"provider-source-address": "registry.terraform.io/terraform-provider-openstack/openstack",
"repo": "terraform-provider-openstack",
- "rev": "v1.43.1",
- "sha256": "0n6r88p3a6p8p0gjys2r1kcgkwq450jmyd741g45lxmaf3jz2ynb",
- "vendorSha256": "0k4srszs8xgf8gz4fa7ysqyww52d7kvqy6zf22f1gkcjyiks9pl7",
- "version": "1.43.1"
+ "rev": "v1.45.0",
+ "sha256": "0r769ckswcz6q3qmdxkvhqkq77x9qlv3359lvaplmkilk7zhpvcj",
+ "vendorSha256": "1wcls4kc19wy2nkwzrc1zc2lrlazfqr6dmfvzv9andldvd8swspg",
+ "version": "1.45.0"
},
"opentelekomcloud": {
"owner": "terraform-providers",
@@ -801,10 +821,10 @@
"owner": "ovh",
"provider-source-address": "registry.terraform.io/ovh/ovh",
"repo": "terraform-provider-ovh",
- "rev": "v0.15.0",
- "sha256": "1cmcfg9vq8cl98d5xambm5hr516b9pblm06y1py9v7msmfh3g09i",
+ "rev": "v0.16.0",
+ "sha256": "0vvxcm4ff6zw5ngwq9cia2ifjg8a2adyf66dyc2d8lavvfld22v9",
"vendorSha256": null,
- "version": "0.15.0"
+ "version": "0.16.0"
},
"packet": {
"owner": "packethost",
@@ -838,10 +858,10 @@
"owner": "cyrilgdn",
"provider-source-address": "registry.terraform.io/cyrilgdn/postgresql",
"repo": "terraform-provider-postgresql",
- "rev": "v1.8.1",
- "sha256": "07qaiy3vmz179am1qrxwvrk7xpraaa8g0hf49bj54pw7nkrmaixq",
+ "rev": "v1.14.0",
+ "sha256": "08z8i2y4qmq7zd50hjaiz6vazwb9yszm1c0mxc87sxayj0mcyl6r",
"vendorSha256": null,
- "version": "1.8.1"
+ "version": "1.14.0"
},
"powerdns": {
"owner": "terraform-providers",
@@ -868,10 +888,10 @@
"owner": "cyrilgdn",
"provider-source-address": "registry.terraform.io/cyrilgdn/rabbitmq",
"repo": "terraform-provider-rabbitmq",
- "rev": "v1.5.1",
- "sha256": "1yxvhzrp63wv5zbzj3ma2745g1marpj32b5h41ha27h0i42498ky",
- "vendorSha256": null,
- "version": "1.5.1"
+ "rev": "v1.6.0",
+ "sha256": "0src4d032z3mpv10fgya2izqm8qfdgr87rfhpnld1r90yvxqgnl2",
+ "vendorSha256": "sha256-wbnjAM2PYocAtRuY4fjLPGFPJfzsKih6Q0YCvFyMulQ=",
+ "version": "1.6.0"
},
"rancher": {
"owner": "terraform-providers",
@@ -960,10 +980,10 @@
"owner": "scottwinkler",
"provider-source-address": "registry.terraform.io/scottwinkler/shell",
"repo": "terraform-provider-shell",
- "rev": "v1.6.0",
- "sha256": "0jxb30vw93ibnwz8nfqapac7p9r2famzvsf2h4nfbmhkm6mpan4l",
- "vendorSha256": "1p2ja6cw3dl7mx41svri6frjpgb9pxsrl7sq0rk1d3sviw0f88sg",
- "version": "1.6.0"
+ "rev": "v1.7.10",
+ "sha256": "15pw8i1j47ppwrrh1gpfdkba54zab50ziqfqsc17pmv2gisq8d9d",
+ "vendorSha256": "0d76xpzfba4xxxafgw0k2dkm22xpzgsa2bf53jwrgwyfvjgvj41c",
+ "version": "1.7.10"
},
"signalfx": {
"owner": "terraform-providers",
@@ -988,6 +1008,7 @@
},
"sops": {
"owner": "carlpett",
+ "provider-source-address": "registry.terraform.io/carlpett/sops",
"repo": "terraform-provider-sops",
"rev": "v0.5.1",
"sha256": "1x32w1qw46rwa8bjhkfn6ybr1dkbdqk0prlm0bnwn3gvvj0hc7kh",
@@ -1062,18 +1083,19 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/time",
"repo": "terraform-provider-time",
- "rev": "v0.6.0",
- "sha256": "0fb81hisjicib9rzbn51jqfrchyjd3hzq98adnf22cbra8wlnxlm",
- "version": "0.6.0"
+ "rev": "v0.7.2",
+ "sha256": "02b7l65civmphhdax05ajvbfm2ilqf421di1p3vj1zysz194wgl2",
+ "vendorSha256": "sha256-oBgHd0KTAdlnAZZZdT1FOzcfC0afdIKoDEIwx/rMxRk=",
+ "version": "0.7.2"
},
"tls": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/tls",
"repo": "terraform-provider-tls",
- "rev": "v3.0.0",
- "sha256": "1p9d5wrr4xwf2i930zlcarm1zl8ysj3nyc6rrbhpxk04kr6ap0wz",
+ "rev": "v3.1.0",
+ "sha256": "0g2bgvw02ydwgb6blica5a139crnyp4hdhzxf433n3fflwyvl6r1",
"vendorSha256": null,
- "version": "3.0.0"
+ "version": "3.1.0"
},
"triton": {
"owner": "terraform-providers",
@@ -1107,10 +1129,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/vault",
"repo": "terraform-provider-vault",
- "rev": "v2.24.1",
- "sha256": "1xk14q06js774lqyylkbp53dnlsbgh3vi38mqqmndh80xigs6d99",
- "version": "2.24.1",
- "vendorSha256": "1ksla455qfgxpk2dmq3pg52nyyw3v0bg6fm5s60j6cb0lzvjbq48"
+ "rev": "v3.0.1",
+ "sha256": "0ppx8kc4zf0yp09vbkmj875sqvklbx0p8a1ganpzdm3462zskra4",
+ "vendorSha256": "03l8bk9jsqf4c7gv0hs1rli7wmlcvpdxmxhra9vndnz6g0jvkvyx",
+ "version": "3.0.1"
},
"vcd": {
"owner": "terraform-providers",
@@ -1137,10 +1159,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/vsphere",
"repo": "terraform-provider-vsphere",
- "rev": "v2.0.1",
- "sha256": "0ah3bi4zpg8j59v4bj9a8vyknpnyl1g8bx4qyfwwz4gnqp9m4anr",
+ "rev": "v2.0.2",
+ "sha256": "0ncl2vs6gcx9wm710hg575hqinkg45ds73n209xwdbpxlbv8qb7m",
"vendorSha256": null,
- "version": "2.0.1"
+ "version": "2.0.2"
},
"vthunder": {
"owner": "terraform-providers",
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/teleport/default.nix
new file mode 100644
index 0000000000..733d154087
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
index f97bbce83f..03d92452eb 100755
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -165,7 +165,7 @@ if [[ -z "$vendorSha256" ]]; then
vendorSha256=$(echo "${BASH_REMATCH[1]#sha256:}" | head -n 1)
# Deal with nix unstable
if [[ $vendorSha256 = sha256-* ]]; then
- vendorSha256=$(nix to-base32 "$vendorSha256")
+ vendorSha256=$(nix --extra-experimental-features nix-command hash to-base32 "$vendorSha256")
fi
fi
fi
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index ba034056c9..036ee7d824 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -195,9 +195,9 @@ rec {
};
terraform_1_0 = mkTerraform {
- version = "1.0.9";
- sha256 = "0g97l53xrcafjrzz5inij4q4aaadibn5ilr5j39a6569pkvcvsh3";
- vendorSha256 = "00cl42w1mzsi9qd09wydfvp5f2h7lxaay6s2dv0mf47k6h7prf42";
+ version = "1.0.11";
+ sha256 = "0k05s4zm16vksq21f1q00y2lzfgi5fhs1ygydm8jk0srs9x8ask7";
+ vendorSha256 = "1brgghl7fb26va4adix443rl1dkjaqrr4jkknxjkcaps0knqp172";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index e07b9b88dd..f2ae9a9490 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
index d06393718a..a8541336b3 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
@@ -1,28 +1,31 @@
-{ lib, stdenv, fetchFromGitHub, ... }:
+{ stdenv, lib, fetchFromGitHub, jq, nix, makeWrapper }:
stdenv.mkDerivation rec {
pname = "terranix";
- version = "2.4.0";
+ version = "2.5.0";
src = fetchFromGitHub {
owner = "mrVanDalo";
repo = "terranix";
rev = version;
- sha256 = "sha256-3N4a5VhZqIgJW11w8oJKJ9T8mhfwEM33kEwV/zZkCs8=";
+ sha256 = "sha256-HDiyJGgyDUoLnpL8N+wDm3cM/vEfYYc/p4N1kKH/kLk=";
};
+ nativeBuildInputs = [ makeWrapper ];
+
installPhase = ''
- mkdir -p $out
+ mkdir -p $out/{bin,core,modules,lib}
mv bin core modules lib $out/
+
+ wrapProgram $out/bin/terranix-doc-json \
+ --prefix PATH : ${lib.makeBinPath [ jq nix ]}
'';
meta = with lib; {
description = "A NixOS like terraform-json generator";
homepage = "https://terranix.org";
license = licenses.gpl3;
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = with maintainers; [ mrVanDalo ];
};
-
}
-
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
new file mode 100644
index 0000000000..9a1652f25d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
@@ -0,0 +1,21 @@
+{ buildGoPackage, lib, fetchFromGitHub }:
+buildGoPackage rec {
+ pname = "tgswitch";
+ version = "0.5.378";
+
+ src = fetchFromGitHub {
+ owner = "warrensbox";
+ repo = "tgswitch";
+ rev = version;
+ sha256 = "0q2aqh75acbpkmvkws0rl3d5dzq3sisy637c0x6cnc88h34g3n3i";
+ };
+
+ goPackagePath = "github.com/warrensbox/tgswitch";
+
+ meta = with lib; {
+ description = "A command line tool to switch between different versions of terragrunt";
+ homepage = "https://github.com/warrensbox/tgswitch";
+ license = licenses.mit;
+ maintainers = with maintainers; [ psibi ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
index eee449de53..cd8d1f703d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
/* Do not use "dev" as a version. If you do, Tilt will consider itself
running in development environment and try to serve assets from the
source tree, which is not there once build completes. */
- version = "0.22.9";
+ version = "0.22.15";
src = fetchFromGitHub {
owner = "tilt-dev";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-h19Cj4ztgypT/j1gB+PbvgDJ7jlJ3CYPEbK62tJeMss=";
+ sha256 = "sha256-Aim80bg1vGRkiIlVqDa4qOFQ+mwSOL75HOPYQYovYlE=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
index ecef365068..d373316b19 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,26 +2,23 @@
buildGoModule rec {
pname = "velero";
- # When updating, change the commit underneath
- version = "1.7.0";
- commit = "9e52260568430ecb77ac38a677ce74267a8c2176";
+ version = "1.7.1";
src = fetchFromGitHub {
owner = "vmware-tanzu";
repo = "velero";
rev = "v${version}";
- sha256 = "sha256-n5Rk+Fyb6yAI5sRZi+WE1KyQZyGryZSP4yd/gmmsQxw=";
+ sha256 = "sha256-Jz3Tp5FqpmPuBscRB0KleQxtCvB43qmeLZNtGPnjuL0=";
};
ldflags = [
"-s" "-w"
"-X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}"
- "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=${commit}"
"-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean"
];
- vendorSha256 = "sha256-qsRbwLKNnuQRIsx0+sfOfR2OQ0+el0vptxz7mMew7zY=";
+ vendorSha256 = "sha256-fX9FeoIkxxSi3dl5W2MZLz5vN1VHkPNpTBGRxGP5Qx8=";
excludedPackages = [ "issue-template-gen" "crd-gen" "release-tools" "velero-restic-restore-helper" "v1" "v1beta1" ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/droopy/default.nix b/third_party/nixpkgs/pkgs/applications/networking/droopy/default.nix
index 63afa5ce76..e6dca02dac 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/droopy/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/droopy/default.nix
@@ -18,6 +18,10 @@ stdenv.mkDerivation {
url = "https://patch-diff.githubusercontent.com/raw/stackp/Droopy/pull/30.patch";
sha256 = "Y6jBraKvVQAiScbvLwezSKeWY3vaAbhaNXEGNaItigQ=";
})
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/stackp/Droopy/pull/31.patch";
+ sha256 = "1ig054rxn5r0ph4w4fhmrxlh158c97iqqc7dbnc819adn9nw96l5";
+ })
];
nativeBuildInputs = [ wrapPython ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/dropbox/default.nix b/third_party/nixpkgs/pkgs/applications/networking/dropbox/default.nix
index 845d0f2779..9c4340fffe 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/dropbox/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/dropbox/default.nix
@@ -26,6 +26,7 @@ let
genericName = "File Synchronizer";
categories = "Network;FileTransfer;";
startupNotify = "false";
+ icon = "dropbox";
};
in
diff --git a/third_party/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
new file mode 100644
index 0000000000..9bb34ffbbd
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchurl, unzip, makeDesktopItem, copyDesktopItems
+, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+ pname = "indigenous-desktop";
+ version = "1.3.0";
+
+ src = fetchurl {
+ url = "https://github.com/marksuth/indigenous-desktop/releases/download/v${version}/indigenous-linux-x64-${version}.zip";
+ sha256 = "sha256-1nqj9N5RQE0PogJSULu75CTVLHeQsHIimtFXSCP6SPA=";
+ };
+
+ nativeBuildInputs = [
+ copyDesktopItems
+ makeWrapper
+ unzip
+ ];
+
+ desktopItems = [
+ (makeDesktopItem {
+ name = pname;
+ exec = "indigenous-desktop";
+ icon = "indigenous-desktop";
+ comment = meta.description;
+ desktopName = "Indigenous";
+ genericName = "Feed Reader";
+ })
+ ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/opt/indigenous $out/share/indigenous $out/share/pixmaps
+ cp -r ./ $out/opt/indigenous
+ mv $out/opt/indigenous/{locales,resources} $out/share/indigenous
+ mv $out/share/indigenous/resources/app/images/icon.png $out/share/pixmaps/indigenous-desktop.png
+
+ makeWrapper ${electron}/bin/electron $out/bin/indigenous-desktop \
+ --add-flags $out/share/indigenous/resources/app
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "IndieWeb app with extensions for sharing to/reading from micropub endpoints";
+ homepage = "https://indigenous.realize.be/indigenous-desktop";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/third_party/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 289f631ee8..65835aa10c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/third_party/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 012d00026c..fdecf62c6a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/third_party/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
index 7fd2a9684a..c3c58dc075 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/firehol/default.nix b/third_party/nixpkgs/pkgs/applications/networking/firehol/default.nix
index 424c677210..145fae2553 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/firehol/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/flexget/default.nix b/third_party/nixpkgs/pkgs/applications/networking/flexget/default.nix
index cb2abecf82..0bf312bd97 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
- version = "3.1.148";
+ version = "3.2.1";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "v${version}";
- sha256 = "0gf07qa1wsysvl0mckh2r3a40065rxhgszf4767jkbryz8z174bc";
+ sha256 = "sha256-EOE72zpQj2yxxqDL9gqmu1NQ1B/lY1fh3EUwqpxf2xg=";
};
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/third_party/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
index c6015a6696..411031f605 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/gmailctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
index 3e0a20a371..8d0b9915d0 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/hyprspace/default.nix b/third_party/nixpkgs/pkgs/applications/networking/hyprspace/default.nix
index 89c04508b7..037feccca4 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/hyprspace/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix b/third_party/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
index 5d24f589ab..4edc97a064 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
@@ -34,11 +34,11 @@
in
stdenv.mkDerivation rec {
pname = "suricata";
- version = "6.0.3";
+ version = "6.0.4";
src = fetchurl {
url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz";
- sha256 = "sha256-2vE0uy18mAA16a5g96rzEzI6gJNAAJ8m5IEQzN6B9gI=";
+ sha256 = "sha256-qPGX4z0WeGieu/e8Gr6Ek0xGXSLFBMR8LH6bdKoELQ0=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
new file mode 100644
index 0000000000..52754e3ad5
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, makeWrapper
+, alsa-lib, dbus, fontconfig, freetype, glib, gst_all_1, libGL
+, libinput, libpulseaudio, libsecret, libtiff, libxkbcommon
+, mesa, openssl, systemd, xorg }:
+
+stdenv.mkDerivation rec {
+ pname = "alfaview";
+ version = "8.32.0";
+
+ src = fetchurl {
+ url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
+ sha256 = "sha256-cBf/9MdNXhFRYPAOhQQ8j3rpY4JYh/+NyA7Eji9/E9Q=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ makeWrapper
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ alsa-lib
+ dbus
+ fontconfig
+ freetype
+ glib
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-base
+ libGL
+ libinput
+ libpulseaudio
+ libsecret
+ libtiff
+ libxkbcommon
+ mesa
+ openssl
+ stdenv.cc.cc
+ systemd
+ xorg.libX11
+ xorg.xcbutilwm
+ xorg.xcbutilimage
+ xorg.xcbutilkeysyms
+ xorg.xcbutilrenderutil
+ ];
+
+ libPath = lib.makeLibraryPath buildInputs;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv usr $out
+ mv opt $out
+
+ substituteInPlace $out/share/applications/alfaview.desktop \
+ --replace "/opt/alfaview" "$out/bin" \
+ --replace "/usr/share/pixmaps/alfaview_production.png" alfaview_production
+
+ makeWrapper $out/opt/alfaview/alfaview $out/bin/alfaview \
+ --prefix LD_LIBRARY_PATH : ${libPath}
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Video-conferencing application, specialized in virtual online meetings, seminars, training sessions and conferences";
+ homepage = "https://alfaview.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index bb87bd38dc..97530b722f 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -44,11 +44,11 @@ in
stdenv.mkDerivation rec {
pname = "bluejeans";
- version = "2.24.0.89";
+ version = "2.25.0.78";
src = fetchurl {
url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm";
- sha256 = "sha256-rneX8ys/oKfVLavAZk5RJouOZkVsp+9BIAReSeYiKJc=";
+ sha256 = "sha256-Xk9iU7mNm3YlXKsmf6yPqd1YAklsFOWu+04Llb+2yWQ=";
};
nativeBuildInputs = [ rpmextract makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 99e3a90b60..7a24151993 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index a359f0a4ac..cd29268bec 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -3,6 +3,7 @@
, electron
, esbuild
, fetchFromGitHub
+, fetchpatch
, libdeltachat
, makeDesktopItem
, makeWrapper
@@ -14,6 +15,33 @@
}:
let
+ libdeltachat' = libdeltachat.overrideAttrs (old: rec {
+ version = "1.60.0";
+ src = fetchFromGitHub {
+ owner = "deltachat";
+ repo = "deltachat-core-rust";
+ rev = version;
+ sha256 = "1agm5xyaib4ynmw4mhgmkhh4lnxs91wv0q9i1zfihv2vkckfm2s2";
+ };
+ cargoDeps = rustPlatform.fetchCargoTarball {
+ inherit src;
+ name = "${old.pname}-${version}";
+ sha256 = "09d3mw2hb1gmqg7smaqwnfm7izw40znl0h1dz7s2imms2cnkjws1";
+ };
+ patches = [
+ # https://github.com/deltachat/deltachat-core-rust/pull/2589
+ (fetchpatch {
+ url = "https://github.com/deltachat/deltachat-core-rust/commit/408467e85d04fbbfd6bed5908d84d9e995943487.patch";
+ sha256 = "1j2ywaazglgl6370js34acrg0wrh0b7krqg05dfjf65n527lzn59";
+ })
+ ./no-static-lib.patch
+ # https://github.com/deltachat/deltachat-core-rust/pull/2660
+ (fetchpatch {
+ url = "https://github.com/deltachat/deltachat-core-rust/commit/8fb5e038a97d8ae68564c885d61b93127a68366d.patch";
+ sha256 = "088pzfrrkgfi4646dc72404s3kykcpni7hgkppalwlzg0p4is41x";
+ })
+ ];
+ });
electronExec = if stdenv.isDarwin then
"${electron}/Applications/Electron.app/Contents/MacOS/Electron"
else
@@ -38,7 +66,7 @@ in nodePackages.deltachat-desktop.override rec {
];
buildInputs = [
- libdeltachat
+ libdeltachat'
] ++ lib.optionals stdenv.isDarwin [
CoreServices
];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/no-static-lib.patch b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/no-static-lib.patch
new file mode 100644
index 0000000000..95238cf885
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/no-static-lib.patch
@@ -0,0 +1,39 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fe7abe08..acdbe0d6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,7 +13,6 @@ find_program(CARGO cargo)
+
+ add_custom_command(
+ OUTPUT
+- "target/release/libdeltachat.a"
+ "target/release/libdeltachat.${DYNAMIC_EXT}"
+ "target/release/pkgconfig/deltachat.pc"
+ COMMAND
+@@ -38,13 +37,11 @@ add_custom_target(
+ lib_deltachat
+ ALL
+ DEPENDS
+- "target/release/libdeltachat.a"
+ "target/release/libdeltachat.${DYNAMIC_EXT}"
+ "target/release/pkgconfig/deltachat.pc"
+ )
+
+ include(GNUInstallDirs)
+ install(FILES "deltachat-ffi/deltachat.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+-install(FILES "target/release/libdeltachat.a" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "target/release/libdeltachat.${DYNAMIC_EXT}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "target/release/pkgconfig/deltachat.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+diff --git a/deltachat-ffi/Cargo.toml b/deltachat-ffi/Cargo.toml
+index a34a27ba..cf354abb 100644
+--- a/deltachat-ffi/Cargo.toml
++++ b/deltachat-ffi/Cargo.toml
+@@ -12,7 +12,7 @@ categories = ["cryptography", "std", "email"]
+
+ [lib]
+ name = "deltachat"
+-crate-type = ["cdylib", "staticlib"]
++crate-type = ["cdylib"]
+
+ [dependencies]
+ deltachat = { path = "../", default-features = false }
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
index 162de501e6..dbe249d56d 100755
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
-#! nix-shell -i bash -p curl jq nix-prefetch
+#! nix-shell -i bash -p coreutils curl gnused jq moreutils nix-prefetch
set -euo pipefail
cd "$(dirname "$0")"
@@ -13,7 +13,7 @@ rev=$(
jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output
)
ver=$(echo "$rev" | sed 's/^v//')
-old_ver=$(sed -n 's/.*\bversion = "\(.*\)".*/\1/p' default.nix)
+old_ver=$(tac default.nix | sed -n 's/.*\bversion = "\(.*\)".*/\1/p' | head -1)
if [ "$ver" = "$old_ver" ]; then
echo "Up to date: $ver"
exit
@@ -21,9 +21,12 @@ fi
echo "$old_ver -> $ver"
sha256=$(nix-prefetch -f "$nixpkgs" deltachat-desktop --rev "$rev")
-sed -e "s#\\bversion = \".*\"#version = \"$ver\"#" \
- -e "s#\\bsha256 = \".*\"#sha256 = \"$sha256\"#" \
- -i default.nix
+tac default.nix \
+ | sed -e "0,/version = \".*\"/s//version = \"$ver\"/" \
+ -e "0,/sha256 = \".*\"/s//sha256 = \"$sha256\"/" \
+ | tac \
+ | sponge default.nix
+
src=$(nix-build "$nixpkgs" -A deltachat-desktop.src --no-out-link)
jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@typescript-eslint/eslint-plugin","@typescript-eslint/parser","esbuild","electron-builder","electron-devtools-installer","electron-notarize","esbuild","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","prettier","tape","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","walk"]))) }' \
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
index 18f73de2fd..5e362784c8 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -5,7 +5,7 @@
, libnotify, libsoup, libgee
, librsvg, libsignal-protocol-c
, libgcrypt
-, epoxy
+, libepoxy
, at-spi2-core
, sqlite
, dbus
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
libgcrypt
libsoup
pcre
- epoxy
+ libepoxy
at-spi2-core
dbus
icu
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
index 2d67236c90..5943917dc6 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
@@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
- libXtst nspr nss libxcb pango systemd libXScrnSaver
+ libXtst nspr nss libxcb pango libXScrnSaver
libappindicator-gtk3 libdbusmenu
];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index fbc61c23b5..d00efd5ac8 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/third_party/nixpkgs/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.3",
+ "version": "1.9.5",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
@@ -54,7 +54,7 @@
"@types/minimist": "^1.2.1",
"@typescript-eslint/eslint-plugin": "^4.17.0",
"@typescript-eslint/parser": "^4.17.0",
- "allchange": "^1.0.2",
+ "allchange": "^1.0.5",
"asar": "^2.0.1",
"chokidar": "^3.5.2",
"electron": "13.5",
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index dd7c6f0c57..bce13052e5 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 33af19a9a5..fae96e8e5e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
index 432d69ac7a..ae9627afe3 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json
index dfb9791b3a..7697c0d5b9 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,6 +1,6 @@
{
- "version": "1.9.3",
- "desktopSrcHash": "Pb9iiCYtmuD6DzdvgY8c6pCFdVAxIIUZTWLCa7y5RMI=",
- "desktopYarnHash": "0iwbszhaxaxggymixljzjb2gqrsij67fwakxhd3yj9g1zds49ghh",
- "webHash": "06lpb8i7fyimm06y6h3ngh19bx416if9lvs2ah2112vx28hs14zp"
+ "version": "1.9.5",
+ "desktopSrcHash": "8x3TBu0zSNEVWp+ULydule8bPSd01pMkCZHdJbQf82U=",
+ "desktopYarnHash": "0axz0d5qryd0k89lrziah1r6j1154c1cibf1qsjk1azlri3k4298",
+ "webHash": "04pabvvb3l88gp866fkbjngl9r20s300pvw7qykynl0ps8fjms0l"
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
index ff3b2ba913..de38c7a90b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index 05ba66f937..a1c63cc983 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -17,10 +17,10 @@ in
mkFranzDerivation' rec {
pname = "ferdi";
name = "Ferdi";
- version = "5.6.2";
+ version = "5.6.3";
src = fetchurl {
url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
- sha256 = "sha256-8rB7SnaIaeCXAaKELNO1CnxpV8TyeKRCVamwpATeia4=";
+ sha256 = "sha256-cfX3x0ZRxT6sxMm20uL8lKhMbrI/yiCHVrBTPKIlDSE=";
};
extraBuildInputs = [ xorg.libxshmfence ];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
index ced3dcf5fe..2b6cb9969e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
index 019ffb468d..8cb748f540 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
@@ -39,6 +39,10 @@ stdenv.mkDerivation {
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 = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
index 2e106289a9..5b9579f8f9 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches
@@ -1,20 +1 @@
-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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix
index 456ca85ed1..a324d061aa 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix
@@ -3,6 +3,7 @@
, jami-meta
, stdenv
, lib
+, fetchFromGitHub
, autoreconfHook
, pkg-config
, perl # for pod2man
@@ -49,13 +50,23 @@ let
++ 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
+ src-args = import ./pjproject-src.nix;
+ version = lib.concatStrings (lib.lists.take 7 (lib.stringToCharacters src-args.rev));
patch-src = src + "/daemon/contrib/src/pjproject/";
in
{
+ inherit version;
+
+ src = fetchFromGitHub src-args;
+
patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
});
@@ -64,7 +75,8 @@ let
enablePushNotifications = true;
};
-in stdenv.mkDerivation {
+in
+stdenv.mkDerivation {
pname = "jami-daemon";
inherit src version;
sourceRoot = "source/daemon";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
index ee9762a8f0..e3bf705494 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -8,11 +8,11 @@
}:
rec {
- version = "20211005.2.251ac7d";
+ version = "20211104.2.e80361d";
src = fetchzip {
url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
- sha256 = "12ppbwhnk5zajb73szd04sz80bp17q577bkb9j8p45apvq201db3";
+ sha256 = "1l48svppshh8mg7y1dymnh0rgwswy4qwdyl7qlg25mmh4y1li21f";
stripRoot = false;
extraPostFetch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
new file mode 100644
index 0000000000..1681769248
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
@@ -0,0 +1,6 @@
+{
+ owner = "savoirfairelinux";
+ repo = "pjproject";
+ rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
+ sha256 = "sha256-6t+3b7pvvwi+VD05vxtujabEJmWmJTAeyD/Dapav10Y=";
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh
index 22233a81bf..10d9bb885c 100755
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p coreutils curl gnused common-updater-scripts
+#!nix-shell -i bash -p coreutils curl gnused common-updater-scripts nix-prefetch
set -e
@@ -40,3 +40,11 @@ echo "${ffmpeg_args_x86}" > "$config_dir/ffmpeg_args_x86"
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"
+
+# Update pjsip version
+pjsip_version=$(sed -n -E 's/.*PJPROJECT_VERSION := ([0-9a-f]+).*/\1/p' ${src}/daemon/contrib/src/pjproject/rules.mak)
+nix-prefetch fetchFromGitHub \
+ --owner savoirfairelinux \
+ --repo pjproject \
+ --rev ${pjsip_version} \
+ --output nix > "${jami_dir}/pjproject-src.nix"
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index a7cd911619..5fc8b0527b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -14,13 +14,13 @@
mkDerivation rec {
pname = "kdeltachat";
- version = "unstable-2021-09-10";
+ version = "unstable-2021-11-14";
src = fetchFromSourcehut {
owner = "~link2xt";
repo = "kdeltachat";
- rev = "40092aa096bac7e279eb5a4cc97758bac484236c";
- sha256 = "0vmsbxx4hxh35v1lbj82vq2w8z8inj83xpf24wzlbdr9inlbmym4";
+ rev = "796b5ce8a11e294e6325dbe92cd1834d140368ff";
+ hash = "sha256-Zjh83TrAm9pWieqz1e+Wzoy6g/xfsjhI/3Ll73iJoD4=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index 2ebf762c41..ad3248fabb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation {
pname = "matrix-commander";
- version = "unstable-2021-05-26";
+ version = "unstable-2021-08-05";
src = fetchFromGitHub {
owner = "8go";
repo = "matrix-commander";
- rev = "06b4738bc74ee86fb3ac88c04b8230abf82e7421";
- sha256 = "1skpq3xfnz11m298qnsw68xv391p5qg47flagzsk86pnzi841vc1";
+ rev = "7ab3fd9a0ef4eb19d882cb3701d2025b4d41b63a";
+ sha256 = "sha256-WWf7GbJxGlqIdsS1d0T1DO0WN2RBepHGgJrl/nt7UIg=";
};
buildInputs = [
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
pillow
urllib3
aiofiles
+ notify2
]))];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
index 7c5bff9408..2ca94953c4 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
index b097864af4..2a2c25e559 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -18,10 +18,12 @@
, mtxclient
, boost17x
, spdlog
-, fmt
, olm
, pkg-config
, nlohmann_json
+, coeurl
+, libevent
+, curl
, voipSupport ? true
, gst_all_1
, libnice
@@ -29,13 +31,13 @@
mkDerivation rec {
pname = "nheko";
- version = "0.8.2";
+ version = "0.9.0";
src = fetchFromGitHub {
owner = "Nheko-Reborn";
repo = "nheko";
rev = "v${version}";
- sha256 = "sha256-w4l91/W6F1FL+Q37qWSjYRHv4vad/10fxdKwfNeEwgw=";
+ sha256 = "1akhnngxkxbjwjkg5ispl6j5s2ylbcj92r3zxqqry4gbfxbjpx8k";
};
nativeBuildInputs = [
@@ -52,7 +54,6 @@ mkDerivation rec {
libsecret
lmdb
spdlog
- fmt
cmark
qtbase
qtmultimedia
@@ -60,6 +61,9 @@ mkDerivation rec {
qtquickcontrols2
qtgraphicaleffects
qtkeychain
+ coeurl
+ libevent
+ curl
] ++ lib.optional stdenv.isDarwin qtmacextras
++ lib.optionals voipSupport (with gst_all_1; [
gstreamer
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index 153819fc84..9722d3b89e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
prompt-toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
- setuptools, installShellFiles,
+ setuptools, installShellFiles, nixosTests,
pytest, faker, pytest-aiohttp, aioresponses,
@@ -63,6 +63,10 @@ buildPythonApplication rec {
installManPage docs/man/*.[1-9]
'';
+ passthru.tests = {
+ inherit (nixosTests) pantalaimon;
+ };
+
meta = with lib; {
description = "An end-to-end encryption aware Matrix reverse proxy daemon";
homepage = "https://github.com/matrix-org/pantalaimon";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
index 9af8b0aff7..a396e9acc0 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "pidgin-opensteamworks";
- version = "1.7";
+ version = "1.7.2";
src = fetchFromGitHub {
owner = "EionRobb";
repo = "pidgin-opensteamworks";
rev = version;
- sha256 = "0zxd45g9ycw5kmm4i0800jnqg1ms2gbqcld6gkyv6n3ac1wxizpj";
+ sha256 = "sha256-VWsoyFG+Ro+Y6ngSTMQ7yBYf6awCMNOc6U0WqNeg/jU=";
};
sourceRoot = "source/steam-mobile";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
index 10cbcb6c1d..8af6811d6a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-googlechat/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-googlechat/default.nix
new file mode 100644
index 0000000000..b274b55ac2
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-googlechat/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, pidgin, glib, json-glib, protobuf, protobufc }:
+
+stdenv.mkDerivation {
+ pname = "purple-googlechat";
+ version = "unstable-2021-10-18";
+
+ src = fetchFromGitHub {
+ owner = "EionRobb";
+ repo = "purple-googlechat";
+ rev = "56ba7f79883eca67d37629d365776f6c0b40abdc";
+ sha256 = "sha256-iTYVgYI9+6rqqBl5goeEAXpK8FgHDv0MmPsV/82reWA=";
+ };
+
+ nativeBuildInputs = [ protobufc ];
+ buildInputs = [ pidgin glib json-glib protobuf ];
+
+ PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
+ PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
+
+ meta = with lib; {
+ homepage = "https://github.com/EionRobb/purple-googlechat";
+ description = "Native Google Chat support for pidgin";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
index 2170aac16e..c0497ed86c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 341d9e1d84..bd6febeaf9 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -1,26 +1,18 @@
-{ stdenv, fetchurl, makeWrapper, pkg-config, gtk2, gtk2-x11
-, gtkspell2, aspell
-, gst_all_1, startupnotification, gettext
-, perlPackages, libxml2, nss, nspr, farstream
-, libXScrnSaver, avahi, dbus, dbus-glib, intltool, libidn
-, lib, python3, libICE, libXext, libSM
-, libgnt, ncurses
-, cyrus_sasl ? null
-, openssl ? null
-, gnutls ? null
-, libgcrypt ? null
-, plugins, symlinkJoin
+{ callPackage, stdenv, fetchurl, makeWrapper, pkg-config, gtk2, gtk2-x11, gtkspell2, aspell
+, gst_all_1, libstartup_notification, gettext, perlPackages, libxml2, nss
+, nspr, farstream, libXScrnSaver, avahi, dbus, dbus-glib, intltool, libidn
+, lib, python3, libICE, libXext, libSM, libgnt, ncurses, cyrus_sasl, openssl
+, gnutls, libgcrypt, symlinkJoin, cacert, plugins, withOpenssl, withGnutls, withCyrus_sasl ? true
}:
# FIXME: clean the mess around choosing the SSL library (nss by default)
let unwrapped = stdenv.mkDerivation rec {
pname = "pidgin";
- majorVersion = "2";
- version = "${majorVersion}.14.8";
+ version = "2.14.8";
src = fetchurl {
- url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2";
+ url = "mirror://sourceforge/pidgin/pidgin-${version}.tar.bz2";
sha256 = "1jjc15pfyw3012q5ffv7q4r88wv07ndqh0wakyxa2k0w4708b01z";
};
@@ -31,7 +23,7 @@ let unwrapped = stdenv.mkDerivation rec {
buildInputs = let
python-with-dbus = python3.withPackages (pp: with pp; [ dbus-python ]);
in [
- aspell startupnotification
+ aspell libstartup_notification
gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
libxml2 nss nspr
libXScrnSaver python-with-dbus
@@ -39,17 +31,16 @@ let unwrapped = stdenv.mkDerivation rec {
libICE libXext libSM cyrus_sasl
libgnt ncurses # optional: build finch - the console UI
]
- ++ (lib.optional (openssl != null) openssl)
- ++ (lib.optional (gnutls != null) gnutls)
- ++ (lib.optional (libgcrypt != null) libgcrypt)
- ++ (lib.optionals (stdenv.isLinux) [gtk2 gtkspell2 farstream])
- ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
+ ++ lib.optional withOpenssl openssl
+ ++ lib.optionals withGnutls [ gnutls libgcrypt ]
+ ++ lib.optionals stdenv.isLinux [ gtk2 gtkspell2 farstream ]
+ ++ lib.optional stdenv.isDarwin gtk2-x11;
propagatedBuildInputs = [ pkg-config gettext ]
++ (with perlPackages; [ perl XMLParser ])
- ++ (lib.optional (stdenv.isLinux) gtk2)
- ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
+ ++ lib.optional stdenv.isLinux gtk2
+ ++ lib.optional stdenv.isDarwin gtk2-x11;
patches = [ ./pidgin-makefile.patch ./add-search-path.patch ];
@@ -59,14 +50,15 @@ let unwrapped = stdenv.mkDerivation rec {
"--with-nss-includes=${nss.dev}/include/nss"
"--with-nss-libs=${nss.out}/lib"
"--with-ncurses-headers=${ncurses.dev}/include"
+ "--with-system-ssl-certs=${cacert}/etc/ssl/certs"
"--disable-meanwhile"
"--disable-nm"
"--disable-tcl"
"--disable-gevolution"
]
- ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ])
- ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"])
- ++ (lib.optionals (stdenv.isDarwin) ["--disable-gtkspell" "--disable-vv"]);
+ ++ lib.optionals withCyrus_sasl [ "--enable-cyrus-sasl=yes" ]
+ ++ lib.optionals withGnutls ["--enable-gnutls=yes" "--enable-nss=no"]
+ ++ lib.optionals stdenv.isDarwin ["--disable-gtkspell" "--disable-vv"];
enableParallelBuilding = true;
@@ -88,12 +80,12 @@ let unwrapped = stdenv.mkDerivation rec {
'';
passthru = {
- makePluginPath = lib.makeSearchPathOutput "lib" "lib/purple-${majorVersion}";
+ makePluginPath = lib.makeSearchPathOutput "lib" "lib/purple-${lib.versions.major version}";
};
meta = with lib; {
description = "Multi-protocol instant messaging client";
- homepage = "http://pidgin.im";
+ homepage = "https://pidgin.im/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ maintainers.vcunat ];
@@ -101,7 +93,7 @@ let unwrapped = stdenv.mkDerivation rec {
};
in if plugins == [] then unwrapped
- else import ./wrapper.nix {
- inherit makeWrapper symlinkJoin plugins;
+ else callPackage ./wrapper.nix {
+ inherit plugins;
pidgin = unwrapped;
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
index 095f838fe9..d5641c24fb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
@@ -1,4 +1,4 @@
-{ symlinkJoin, pidgin, makeWrapper, plugins }:
+{ lib, symlinkJoin, pidgin, makeWrapper, plugins }:
let
extraArgs = map (x: x.wrapArgs or "") plugins;
@@ -11,10 +11,10 @@ in symlinkJoin {
postBuild = ''
wrapProgram $out/bin/pidgin \
- --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \
+ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${lib.versions.major pidgin.version} $out/lib/pidgin" \
${toString extraArgs}
wrapProgram $out/bin/finch \
- --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion}" \
+ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${lib.versions.major pidgin.version}" \
${toString extraArgs}
'';
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
index 9b15e12d66..42671f5d97 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchpatch
, autoconf-archive
, autoreconfHook
, cmocka
@@ -46,6 +47,23 @@ stdenv.mkDerivation rec {
patches = [
./patches/packages-osx.patch
+
+ # pullupstream fixes for ncurses-6.3
+ (fetchpatch {
+ name = "ncurses-6.3-p1.patch";
+ url = "https://github.com/profanity-im/profanity/commit/e5b6258c997d4faf36e2ffb8a47b386c5629b4eb.patch";
+ sha256 = "sha256-4rwpvsgfIQ60GcLS0O7Hyn7ZidREjYT+dVND54z0zrw=";
+ })
+ (fetchpatch {
+ name = "ncurses-6.3-p2.patch";
+ url = "https://github.com/profanity-im/profanity/commit/fd9ccec8dc604902bbb1d444dba4223ccee0a092.patch";
+ sha256 = "sha256-4gZaXoDNulBIR+e6y/9bJKXVactCHWS8H8lPJaJwVwE=";
+ })
+ (fetchpatch {
+ name = "ncurses-6.3-p3.patch";
+ url = "https://github.com/profanity-im/profanity/commit/242696f09a49c8446ba6aef8bdad65fb58a77715.patch";
+ sha256 = "sha256-BOYHkae9aIA7HaVM23Yu25TTK9e3SuV+u0FEi7Sn62I=";
+ })
];
enableParallelBuilding = true;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index fae4eff734..b8ee5182c2 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -40,43 +40,15 @@ assert builtins.elem (lib.toLower chatType) [
assert enablePsiMedia -> enablePlugins;
-mkDerivation {
+mkDerivation rec {
pname = "psi-plus";
-
- # Version mask is “X.X.XXXX-R” where “X.X.XXXX” is a mandatory version of Psi
- # and “-R” ending is optional revision number.
- #
- # The “psi-plus-snapshots” generally provides snapshots of these separate
- # repositories glued together (there are also dependencies/libraries):
- #
- # 1. Psi
- # 2. Plugins pack for Psi
- # 3. “psimedia” plugin
- # 4. Resources for Psi (icons, skins, sounds)
- #
- # “X.X.XXXX” is literally a version of Psi.
- # So often when for instance plugins are updated separately a new snapshot is
- # created. And that snapshot would also be linked to “X.X.XXXX” version.
- # So many commits may have the same associated version of the snapshot.
- # But mind that only one Git tag is created for “X.X.XXXX” version.
- #
- # It’s not yet defined in the Psi+ project what value to use as a version for
- # any further releases that don’t change Psi version.
- #
- # Let’s do what Debian does for instance (appends “-R” where “R” is a revision
- # number).
- # E.g. https://tracker.debian.org/news/1226321/psi-plus-14554-5-migrated-to-testing/
- #
- # This has been communicated with the Psi+ main devs in this XMPP MUC chat:
- # psi-dev@conference.jabber.ru
- #
- version = "1.5.1556-2";
+ version = "1.5.1576";
src = fetchFromGitHub {
owner = "psi-plus";
repo = "psi-plus-snapshots";
- rev = "635879010b6697f7041a7bbea1853a1f4673c7f7";
- sha256 = "18xvljcm0a9swkyz4diwxi4xaj0w27jnhfgpi8fv5fj11j0g1b3a";
+ rev = version;
+ sha256 = "15iqa8hd4p968sp79zsi32g7bhamgg267pk2bxspl646viv91f6g";
};
cmakeFlags = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 359c0fa7aa..268a077e7c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
index 97d8d39f65..0aa2d4cc67 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
@@ -1,15 +1,27 @@
-{ mkDerivation, lib, fetchurl, pkg-config, makeDesktopItem
-, qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols
-, openssl, protobuf, qmake
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, pkg-config
+, makeDesktopItem
+, qtbase
+, qttools
+, qtmultimedia
+, qtquick1
+, qtquickcontrols
+, openssl
+, protobuf
+, qmake
}:
mkDerivation rec {
pname = "ricochet";
version = "1.1.4";
- src = fetchurl {
- url = "https://github.com/ricochet-im/ricochet/archive/v${version}.tar.gz";
- sha256 = "1kfj42ksvj7axc809lb8siqzj5hck2pib427b63a3ipnqc5h1faf";
+ src = fetchFromGitHub {
+ owner = "ricochet-im";
+ repo = "ricochet";
+ rev = "v${version}";
+ sha256 = "sha256-CGVTHa0Hqj90WvB6ZbA156DVgzv/R7blsU550y2Ai9c=";
};
desktopItem = makeDesktopItem {
@@ -23,8 +35,13 @@ mkDerivation rec {
};
buildInputs = [
- qtbase qttools qtmultimedia qtquick1 qtquickcontrols
- openssl protobuf
+ qtbase
+ qttools
+ qtmultimedia
+ qtquick1
+ qtquickcontrols
+ openssl
+ protobuf
];
nativeBuildInputs = [ pkg-config qmake ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index 36e7a651eb..d96f113943 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -1,16 +1,20 @@
-{ lib, stdenv, pkgs, fetchurl }:
+{ lib, stdenv, pkgs, fetchurl, wrapGAppsHook }:
let
libPathNative = { packages }: lib.makeLibraryPath packages;
in
stdenv.mkDerivation rec {
pname = "rocketchat-desktop";
- version = "3.5.7";
+ version = "3.7.0";
src = fetchurl {
url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat_${version}_amd64.deb";
- sha256 = "1ri8a60fsbqgq83f8wkyfnd59nqk4d0gpz1vanj54769zflpl71s";
+ sha256 = "1z6crwb7svg7iw59gm88d29yknhk84hwcps9f565c3mabjdxzhw2";
};
+ nativeBuildInputs = [
+ wrapGAppsHook #to fully work with gnome also needs programs.dconf.enable = true in your configuration.nix
+ ];
+
buildInputs = with pkgs; [
gtk3
stdenv.cc.cc
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json
new file mode 100644
index 0000000000..299598063c
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
new file mode 100644
index 0000000000..4e1d330f50
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
new file mode 100644
index 0000000000..c1bfc98047
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/update.sh b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/update.sh
new file mode 100755
index 0000000000..3f5289de8c
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
index 29d4c3600c..76e6dc0f3d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
@@ -1,12 +1,14 @@
-{ lib, fetchurl, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages }:
-let version = "1.63";
-in python3Packages.buildPythonPackage {
- name = "scudcloud-${version}";
+python3Packages.buildPythonPackage rec {
+ pname = "scudcloud";
+ version = "1.63";
- src = fetchurl {
- url = "https://github.com/raelgc/scudcloud/archive/v${version}.tar.gz";
- sha256 = "e0d1cb72115d0fda17db92d28be51558ad8fe250972683fac3086dbe8d350d22";
+ src = fetchFromGitHub {
+ owner = "raelgc";
+ repo = "scudcloud";
+ rev = "v${version}";
+ sha256 = "sha256-b8+MVjYKbSpnfM2ow2MNVY6MiT+urpNYDkFR/yUC7ik=";
};
propagatedBuildInputs = with python3Packages; [ pyqt5_with_qtwebkit dbus-python jsmin ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index ea5ca8bebf..e83e45370c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 33a746e039..59ff3554eb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 49e8227b21..fef5c11ae8 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -21,9 +21,10 @@ let
in lib.optionalString (spellcheckerLanguage != null) ''
--set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
--set LC_MESSAGES "${spellcheckerLanguage}"'');
+
in stdenv.mkDerivation rec {
pname = "signal-desktop";
- version = "5.21.0"; # Please backport all updates to the stable channel.
+ version = "5.25.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 +34,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 = "19bp5gjf13n87cyicqaikmz3bdx6szazq1kbp4gkyhq0mw7nah7c";
+ sha256 = "0ql9rzxrisqms3plcrmf3fjinpxba10asmpsxvhn0zlfajy47d0a";
};
nativeBuildInputs = [
@@ -115,15 +116,9 @@ 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"
${customLanguageWrapperArgs}
)
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
index a26fbed2a0..649cc8843d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch
deleted file mode 100644
index 2f4830e27d..0000000000
--- a/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
index 6952654758..fec988a94e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
index 4f87601390..5e01755187 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -45,14 +45,14 @@ let
pname = "slack";
- x86_64-darwin-version = "4.20.0";
- x86_64-darwin-sha256 = "1argl690i4dgz5ih02zg9v4zrlzm282wmibnc6p7xy5jisd5g79w";
+ x86_64-darwin-version = "4.22.0";
+ x86_64-darwin-sha256 = "094p9vyv56m5qfp9jh2205ijfqcp0dr6bkmiv0wxihy2rg20b5zp";
- x86_64-linux-version = "4.20.0";
- x86_64-linux-sha256 = "1r8w8s3y74lh4klsmzq2d3f0h721b3a2b53nx8v7b0s6j8w0g0mh";
+ x86_64-linux-version = "4.22.0";
+ x86_64-linux-sha256 = "0k84glxp653lxgfv5b65zvvysax7fr3lhsjgq76safk7g7cjc86i";
- aarch64-darwin-version = "4.20.0";
- aarch64-darwin-sha256 = "1argl690i4dgz5ih02zg9v4zrlzm282wmibnc6p7xy5jisd5g79w";
+ aarch64-darwin-version = "4.22.0";
+ aarch64-darwin-sha256 = "1z2pcgva9ixjx702c1535b4k0xr9fdnfzi5m08xgvabk9x66hqx4";
version = {
x86_64-darwin = x86_64-darwin-version;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix
index e7ca8c320a..7cb9798517 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index d9f9cd91a5..cb4f3e5e5d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -4,7 +4,7 @@
, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
, tl-expected, hunspell, glibmm, webkitgtk
# Transitive dependencies:
-, pcre, xorg, util-linux, libselinux, libsepol, epoxy
+, pcre, xorg, util-linux, libselinux, libsepol, libepoxy
, at-spi2-core, libXtst, libthai, libdatrie
}:
@@ -41,7 +41,7 @@ in mkDerivation rec {
tl-expected hunspell glibmm webkitgtk
tg_owt
# Transitive dependencies:
- pcre xorg.libXdmcp util-linux libselinux libsepol epoxy
+ pcre xorg.libXdmcp util-linux libselinux libsepol libepoxy
at-spi2-core libXtst libthai libdatrie
];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index d39ac978d8..1611185ca7 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -29,6 +29,7 @@
, webkitgtk
, jemalloc
, rnnoise
+, abseil-cpp
# Transitive dependencies:
, util-linuxMinimal
, pcre
@@ -36,7 +37,7 @@
, libXdmcp
, libselinux
, libsepol
-, epoxy
+, libepoxy
, at-spi2-core
, libXtst
, libthai
@@ -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 = ''
@@ -130,7 +135,7 @@ mkDerivation rec {
libXdmcp
libselinux
libsepol
- epoxy
+ libepoxy
at-spi2-core
libXtst
libthai
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 60baf734aa..878fea994d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
index bff3d3769a..3b69aa5566 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
index 172d11f6b8..943ec299cd 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -1,17 +1,24 @@
-{ mkDerivation, lib, stdenv, fetchgit, qtbase, qtquickcontrols, qmake
-, makeDesktopItem }:
+{ mkDerivation
+, lib
+, stdenv
+, fetchgit
+, qtbase
+, qtquickcontrols
+, qmake
+, makeDesktopItem
+}:
# we now have libqmatrixclient so a future version of tensor that supports it
# should use that
mkDerivation rec {
- pname = "tensor-git";
- version = "2017-02-21";
+ pname = "tensor";
+ version = "unstable-2017-02-21";
src = fetchgit {
- url = "https://github.com/davidar/tensor.git";
- rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5";
- sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9";
+ url = "https://github.com/davidar/tensor.git";
+ rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5";
+ sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9";
fetchSubmodules = true;
};
@@ -19,14 +26,14 @@ mkDerivation rec {
nativeBuildInputs = [ qmake ];
desktopItem = makeDesktopItem {
- name = "tensor";
- exec = "@bin@";
- icon = "tensor.png";
- comment = meta.description;
+ name = "tensor";
+ exec = "@bin@";
+ icon = "tensor.png";
+ comment = meta.description;
desktopName = "Tensor Matrix Client";
genericName = meta.description;
- categories = "Chat;Utility";
- mimeType = "application/x-chat";
+ categories = "Chat;Utility";
+ mimeType = "application/x-chat";
};
installPhase = if stdenv.isDarwin then ''
@@ -34,7 +41,6 @@ mkDerivation rec {
mkdir -p $out/Applications
cp -r tensor.app $out/Applications/tensor.app
- wrapQtApp $out/Applications/tensor.app/Contents/MacOS/tensor
runHook postInstall
'' else ''
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
new file mode 100644
index 0000000000..30bfde7a96
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
index 3082748a35..a6d6cac4ac 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
index 256e026a06..42dd9f835c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -1,7 +1,30 @@
-{ lib, fetchpatch, python3Packages }:
+{ lib
+, fetchpatch
+, fetchFromGitHub
+, python3
+}:
-with lib;
-with python3Packages;
+let
+ py = python3.override {
+ packageOverrides = self: super: {
+
+ # Support for later tweepy releases is missing
+ # https://github.com/louipc/turses/issues/12
+ tweepy = super.tweepy.overridePythonAttrs (oldAttrs: rec {
+ version = "3.10.0";
+
+ src = fetchFromGitHub {
+ owner = "tweepy";
+ repo = "tweepy";
+ rev = "v${version}";
+ sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw";
+ };
+ doCheck = false;
+ });
+ };
+ };
+in
+with py.pkgs;
buildPythonPackage rec {
pname = "turses";
@@ -12,8 +35,18 @@ buildPythonPackage rec {
sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6";
};
- checkInputs = [ mock pytest coverage tox ];
- propagatedBuildInputs = [ urwid tweepy future ];
+ propagatedBuildInputs = with py.pkgs; [
+ urwid
+ tweepy
+ future
+ ];
+
+ checkInputs = with py.pkgs; [
+ mock
+ pytest
+ coverage
+ tox
+ ];
LC_ALL = "en_US.UTF-8";
@@ -29,6 +62,17 @@ buildPythonPackage rec {
})
];
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "urwid==1.3.0" "urwid" \
+ --replace "future==0.14.3" "future" \
+ --replace "tweepy==3.3.0" "tweepy"
+ substituteInPlace tests/test_config.py \
+ --replace "config.generate_config_file.assert_called_once()" "assert config.generate_config_file.call_count == 1"
+ substituteInPlace tests/test_meta.py \
+ --replace "self.observer.update.assert_called_once()" "assert self.observer.update.call_count == 1"
+ '';
+
checkPhase = ''
TMP_TURSES=`echo turses-$RANDOM`
mkdir $TMP_TURSES
@@ -36,18 +80,10 @@ buildPythonPackage rec {
rm -rf $TMP_TURSES
'';
- postPatch = ''
- sed -i -e 's|urwid==1.3.0|urwid==${getVersion urwid}|' setup.py
- sed -i -e "s|future==0.14.3|future==${getVersion future}|" setup.py
- sed -i -e "s|tweepy==3.3.0|tweepy==${getVersion tweepy}|" setup.py
- sed -i -e "s|config.generate_config_file.assert_called_once()|assert config.generate_config_file.call_count == 1|" tests/test_config.py
- sed -i -e "s|self.observer.update.assert_called_once()|assert self.observer.update.call_count == 1|" tests/test_meta.py
- '';
-
meta = with lib; {
- homepage = "https://github.com/louipc/turses";
description = "A Twitter client for the console";
- license = licenses.gpl3;
+ homepage = "https://github.com/louipc/turses";
+ license = licenses.gpl3Only;
maintainers = with maintainers; [ ];
platforms = platforms.unix;
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
index 01c83ba7b1..3dd912da90 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
@@ -15,20 +15,19 @@
, alsa-lib
, speex
, ilbc
-, fetchurl
, mkDerivation
, bcg729
}:
mkDerivation rec {
pname = "twinkle";
- version = "1.10.2";
+ version = "unstable-2021-02-06";
src = fetchFromGitHub {
- repo = pname;
owner = "LubosD";
- rev = "v${version}";
- sha256 = "0s0gi03xwvzp02ah4q6j33r9jx9nbayr6dxlg2ck9pwbay1nq1hx";
+ repo = "twinkle";
+ rev = "2301b66a3f54b266675415d261985488d86e9e4c";
+ sha256 = "xSwcaj1Hm62iL7C/AxqjVR07VEae8gDgYdr2EWmCoOM=";
};
buildInputs = [
@@ -46,19 +45,6 @@ mkDerivation rec {
ilbc
];
- patches = [
- # patch for bcg729 1.0.2+
- (fetchurl { # https://github.com/LubosD/twinkle/pull/152
- url = "https://github.com/LubosD/twinkle/compare/05082ae12051821b1d969e6672d9e4e5afe1bc07...7a6c533cda387652b5b4cb2a867be1a18585890c.patch";
- sha256 = "39fc6cef3e88cfca8db44612b2d082fb618027b0f99509138d3c0d2777a494c2";
- })
- # patch manual link to not link to old url, which now points to NSFW page
- (fetchurl { # https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07
- url = "https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07.diff";
- sha256 = "1iamragr9wp2vczsnp6n261fpr1ai2nc2abp0228jlar9zafksw0";
- })
- ];
-
nativeBuildInputs = [
cmake
bison
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
index e5a2c201d8..4392f58799 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
index 53eea50767..97df6d643c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -6,12 +6,12 @@
stdenv.mkDerivation {
pname = "viber";
- version = "13.3.1.22";
+ version = "16.1.0.37";
src = fetchurl {
# Official link: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb
- url = "http://web.archive.org/web/20210602004133/https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
- sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh";
+ url = "https://web.archive.org/web/20211119123858/https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
+ sha256 = "sha256-hOz+EQc2OOlLTPa2kOefPJMUyWvSvrgqgPgBKjWE3p8=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index 4e61f39cac..34bd755b78 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -1,25 +1,26 @@
{ fetchFromGitHub
, lib
, stdenv
-, gtkmm3
-, webkitgtk
, cmake
-, pkg-config
-, libappindicator-gtk3
+, glib-networking
, gst_all_1
+, gtkmm3
+, libappindicator-gtk3
, pcre
+, pkg-config
+, webkitgtk
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "whatsapp-for-linux";
- version = "1.2.1";
+ version = "1.3.1";
src = fetchFromGitHub {
owner = "eneshecan";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-dEJRufOqlY+DnJdUaG5WP9hR1qO7KxR6MjKWq1SJB8A=";
+ sha256 = "sha256-TX6fMuhe6VHbhWJSsPM0iOV4CuCfULD5McJyHuTW4lI=";
};
nativeBuildInputs = [
@@ -29,14 +30,15 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- gtkmm3
- webkitgtk
- libappindicator-gtk3
+ glib-networking
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
- gst_all_1.gst-plugins-bad
- gst_all_1.gst-libav
+ gtkmm3
+ libappindicator-gtk3
pcre
+ webkitgtk
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index d04f2d18f9..9451dcd2d2 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -28,11 +28,11 @@
}:
let
- version = "5.8.3.145";
+ version = "5.8.6.739";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
- sha256 = "1p4agpbcpk95r04m775dr17fmlm18vxq9mb65pyfbhvsd1ypw6kr";
+ sha256 = "12gzdfxf6xy558smsfazvjj4g1rnaiw7l2lznzlh2qazyaq6f3mq";
};
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index b2f80c70d2..1775ce9a48 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
lxml
typing-extensions
python-dateutil
+ pytz
tzlocal
];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
index f45f803e80..d807e3bd03 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
buildInputs = [ libressl ncurses ];
strictDeps = true;
+ enableParallelBuilding = true;
+
meta = with lib; {
homepage = "https://git.causal.agency/catgirl/about/";
license = licenses.gpl3Plus;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
index 9148a26567..df7168ac30 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/irc/ii/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
index 93056ef399..18a9a8882f 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
@@ -9,9 +9,9 @@ stdenv.mkDerivation rec {
sha256 = "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr";
};
- installPhase = ''
- make install PREFIX=$out
- '';
+ makeFlags = [ "CC:=$(CC)" ];
+
+ installFlags = [ "PREFIX=$(out)" ];
meta = {
homepage = "https://tools.suckless.org/ii/";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
index 81a984c84c..bd660660e4 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "senpai";
- version = "unstable-2021-05-27";
+ version = "unstable-2021-11-29";
src = fetchFromSourcehut {
owner = "~taiite";
repo = "senpai";
- rev = "6be718329175c6d11e359f1a366ab6ab22b101d2";
- sha256 = "sha256-hW6DHJlDBYEqK8zj5PvGKU54sbeXjx1tdqwKXPXlKHc=";
+ rev = "3904c9190d94f273c0ae9937d3161b9fe4adf856";
+ sha256 = "sha256-4ZhJuAxcoGjRO5xVqzlmaUvipnyiFMuJ1A3n8vlhYxU=";
};
- vendorSha256 = "sha256-OLi5y1hrYK6+l5WB1SX85QU4y3KjFyGaEzgbE6lnW2k=";
+ vendorSha256 = "sha256-xkJh7k8GZmoZqE0HgbFp2xMJQOVDkPEXOZEl6bJZz1A=";
subPackages = [
"cmd/senpai"
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/sic/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
index 129b72d847..705fc12510 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
@@ -4,12 +4,15 @@ stdenv.mkDerivation rec {
pname = "sic";
version = "1.2";
- makeFlags = [ "PREFIX=$(out)" ];
src = fetchurl {
url = "https://dl.suckless.org/tools/sic-${version}.tar.gz";
sha256 = "ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185";
};
+ makeFlags = [ "CC:=$(CC)" ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
meta = {
description = "Simple IRC client";
homepage = "https://tools.suckless.org/sic/";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/srain/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
new file mode 100644
index 0000000000..282506c5e0
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, gtk3
+, libconfig
+, libsoup
+, libsecret
+, openssl
+, gettext
+, glib
+, glib-networking
+, appstream-glib
+, dbus-glib
+, python3Packages
+, meson
+, ninja
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "srain";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "SrainApp";
+ repo = "srain";
+ rev = version;
+ sha256 = "14s0h5wgvlkdylnjis2fa7m835142jzw0d0yqjnir1wqnwmq1rld";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ gettext
+ appstream-glib
+ wrapGAppsHook
+ python3Packages.sphinx
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ glib-networking
+ dbus-glib
+ libconfig
+ libsoup
+ libsecret
+ openssl
+ ];
+
+ meta = with lib; {
+ description = "Modern IRC client written in GTK";
+ homepage = "https://srain.im";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ rewine ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix b/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
index 253143d000..e102b1077a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
@@ -10,31 +10,26 @@
rustPlatform.buildRustPackage rec {
pname = "tiny";
- version = "0.9.0";
+ version = "0.10.0";
src = fetchFromGitHub {
owner = "osa1";
repo = pname;
rev = "v${version}";
- sha256 = "gKyHR3FZHDybaP38rqB8/gvr8T+mDO4QQxoTtWS+TlE=";
+ sha256 = "177d1x4z0mh0p7c5ldq70cn1j3pac50d8cil2ni50hl49c3x6yy1";
};
- cargoSha256 = "0ChfW8vaqC2kCp4lpS0HOvhuihPw9G5TOmgwKzVDfws=";
-
- # Fix Cargo.lock version. Remove with the next release.
- cargoPatches = [
- ./fix-Cargo.lock.patch
- ];
-
- cargoBuildFlags = lib.optionals stdenv.isLinux [ "--features=desktop-notifications" ];
+ cargoSha256 = "05q3f1wp48mwkz8n0102rwb6jzrgpx3dlbxzf3zcw8r1mblgzim1";
nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ] ++ lib.optional stdenv.isDarwin Foundation;
+ buildFeatures = lib.optional stdenv.isLinux "desktop-notifications";
+
meta = with lib; {
description = "A console IRC client";
homepage = "https://github.com/osa1/tiny";
- changelog = "https://github.com/osa1/tiny/blob/v${version}/CHANGELOG.md";
+ changelog = "https://github.com/osa1/tiny/raw/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne vyp ];
};
diff --git a/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/fix-Cargo.lock.patch b/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/fix-Cargo.lock.patch
deleted file mode 100644
index 71bc4709be..0000000000
--- a/third_party/nixpkgs/pkgs/applications/networking/irc/tiny/fix-Cargo.lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 3a184dc..0e58cb1 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -1023,7 +1023,7 @@ dependencies = [
-
- [[package]]
- name = "tiny"
--version = "0.8.0"
-+version = "0.9.0"
- dependencies = [
- "clap",
- "dirs 3.0.1",
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
index 09ce39027b..5ab0bfd803 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -5,17 +5,17 @@
buildGoModule rec {
pname = "aerc";
- version = "0.5.2";
+ version = "0.6.0";
src = fetchFromSourcehut {
- owner = "~sircmpwn";
+ owner = "~rjarry";
repo = pname;
rev = version;
- sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils";
+ sha256 = "sha256-RaHigTp1YGkjQ46gFLhKcJuajekcCgfozu0ndCNq5Ac=";
};
runVend = true;
- vendorSha256 = "9PXdUH0gu8PGaKlRJCUF15W1/LxA+sv3Pwl2UnjYxWY=";
+ vendorSha256 = "sha256-A2MZzTYzGuZLFENn9OBIBBreJan+b3RKOEu5bQcDwS8=";
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 5090b1fd02..93dfc4d8a1 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,10 +1,7 @@
{ stdenv, lib, fetchgit, fetchpatch, wrapGAppsHook, autoreconfHook, bison, flex
-, curl, gtk2, gtk3, pkg-config, python2, python3, shared-mime-info
+, curl, gtk3, pkg-config, python3, shared-mime-info
, glib-networking, gsettings-desktop-schemas
-# Selector between the GTK+ 3 and GTK+ 2 releases.
-, useGtk3
-
# Package compatibility: old parameters whose name were not directly derived
, enablePgp ? true
, enablePluginNotificationDialogs ? true
@@ -34,14 +31,14 @@
, enablePluginBsfilter ? true
, enablePluginClamd ? true
, enablePluginDillo ? true
-, enablePluginFancy ? useGtk3, libsoup, webkitgtk
+, enablePluginFancy ? true, libsoup, webkitgtk
, enablePluginFetchInfo ? true
, enablePluginLibravatar ? enablePluginRavatar
, enablePluginLitehtmlViewer ? true, gumbo
, enablePluginMailmbox ? true
, enablePluginManageSieve ? true
, enablePluginNewMail ? true
-, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk2, libcanberra-gtk3, libnotify
+, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk3, libnotify
, enablePluginPdfViewer ? enablePluginPdf, poppler
, enablePluginPerl ? true, perl
, enablePluginPython ? true
@@ -57,23 +54,7 @@
with lib;
let
- # Last release and hash for both the GTK+ 3 and GTK+ 2 version.
- version = if useGtk3 then "4.0.0" else "3.18.0";
-
- gtk2src = {
- sha256 = "1vsiy3xsppw4d8ylsz70wsyrvmgy88lp2hj7vrc353ckny80r9lh";
- };
-
- gtk3src = {
- sha256 = "0mwnjiqg2sj61va0y9yi3v52iyr5kzmbnvsqxav3a48m2f8p27qn";
- };
-
- python = if useGtk3 then python3 else python2;
- pythonPkgs = if useGtk3
- then
- with python.pkgs; [ python wrapPython pygobject3 ]
- else
- with python.pkgs; [ python wrapPython pygtk pygobject2 ];
+ pythonPkgs = with python3.pkgs; [ python3 wrapPython pygobject3 ];
features = [
{ flags = [ "acpi_notifier-plugin" ]; enabled = enablePluginAcpiNotifier; }
@@ -99,7 +80,7 @@ let
{ flags = [ "managesieve-plugin" ]; enabled = enablePluginManageSieve; }
{ flags = [ "networkmanager" ]; enabled = enableNetworkManager; deps = [ networkmanager ]; }
{ flags = [ "newmail-plugin" ]; enabled = enablePluginNewMail; }
- { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [(if useGtk3 then libcanberra-gtk3 else libcanberra-gtk2)]; }
+ { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [libcanberra-gtk3]; }
{ flags = [ "pdf_viewer-plugin" ]; enabled = enablePluginPdfViewer; deps = [ poppler ]; }
{ flags = [ "perl-plugin" ]; enabled = enablePluginPerl; deps = [ perl ]; }
{ flags = [ "pgpcore-plugin" "pgpinline-plugin" "pgpmime-plugin" ]; enabled = enablePluginPgp; deps = [ gnupg gpgme ]; }
@@ -115,12 +96,13 @@ let
];
in stdenv.mkDerivation rec {
pname = "claws-mail";
- inherit version;
+ version = "4.0.0";
- src = fetchgit ({
+ src = fetchgit {
rev = version;
url = "git://git.claws-mail.org/claws.git";
- } // (if useGtk3 then gtk3src else gtk2src));
+ sha256 = "0mwnjiqg2sj61va0y9yi3v52iyr5kzmbnvsqxav3a48m2f8p27qn";
+ };
outputs = [ "out" "dev" ];
@@ -140,7 +122,7 @@ in stdenv.mkDerivation rec {
preConfigure = ''
# autotools check tries to dlopen libpython as a requirement for the python plugin
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python3}/lib
# generate version without .git
[ -e version ] || echo "echo ${version}" > version
'';
@@ -154,8 +136,7 @@ in stdenv.mkDerivation rec {
propagatedBuildInputs = pythonPkgs;
buildInputs =
- [ curl gsettings-desktop-schemas glib-networking ]
- ++ [(if useGtk3 then gtk3 else gtk2)]
+ [ curl gsettings-desktop-schemas glib-networking gtk3 ]
++ concatMap (f: optionals f.enabled f.deps) (filter (f: f ? deps) features)
;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
index 1f7d663cf8..b6dca7e70b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
@@ -1,13 +1,13 @@
-{ appimageTools, lib, fetchurl }:
+{ appimageTools, lib, fetchurl, libsecret }:
let
pname = "electron-mail";
- version = "4.12.2";
+ version = "4.12.7";
name = "ElectronMail-${version}";
src = fetchurl {
url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-linux-x86_64.AppImage";
- sha256 = "D+0qoIb0EwUVbgKOiKQpqoLDgm8l/UKDWm/BjhW4MYU=";
+ sha256 = "42d0b49a2feba628f4845940ffd9607739bd5fcdbe6ba37e15f993c511d21e46";
};
appimageContents = appimageTools.extract { inherit name src; };
@@ -16,13 +16,16 @@ in appimageTools.wrapType2 {
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
-
install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
+ extraPkgs = pkgs: with pkgs; [
+ libsecret
+ ];
+
meta = with lib; {
description = "ElectronMail is an Electron-based unofficial desktop client for ProtonMail";
homepage = "https://github.com/vladimiry/ElectronMail";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index baad7602cf..432544c60c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 564a4c5499..34b25c17a2 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
index d0575b6065..d4076c88bb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -25,14 +25,14 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "sha256-ZE653OtXyZ9454bKPApmuL2kVko/hGBWEAya1L1KIoc=";
- cargoBuildFlags = lib.optional withNotmuch "--features=notmuch";
-
nativeBuildInputs = [ pkg-config gzip makeWrapper ];
buildInputs = [ openssl dbus sqlite ] ++ lib.optional withNotmuch notmuch;
checkInputs = [ file ];
+ buildFeatures = lib.optional withNotmuch [ "notmuch" ];
+
postInstall = ''
mkdir -p $out/share/man/man1
gzip < docs/meli.1 > $out/share/man/man1/meli.1.gz
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 5eeec874de..6d5ab96b4e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/third_party/nixpkgs/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 = "20211022";
+ version = "20211029";
pname = "neomutt";
src = fetchFromGitHub {
owner = "neomutt";
repo = "neomutt";
rev = version;
- sha256 = "sha256-gPMbl+g9tU7YmT3uJoJozCdDBb/4eFyVyvHdREK1Ss0=";
+ 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/third_party/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
index a618a696d0..df5c9de29d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "notmuch";
- version = "0.34";
+ version = "0.34.1";
src = fetchurl {
url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz";
- sha256 = "1dk16xa9q7adp1jaswxvw4p92f4h5mg0zkrh3zv8gqxn88amisc3";
+ sha256 = "05nq64gp8vnrwrl22d60v7ixgdhm9339ajhcdfkq0ll1qiycyyj5";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 5af24287c1..95a5dda5ac 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
{
- version = "91.2.1";
+ version = "91.3.2";
sources = [
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/af/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/af/thunderbird-91.3.2.tar.bz2";
locale = "af";
arch = "linux-x86_64";
- sha256 = "953e07d7198b8b13f312ef620caf6e232c361f78dd04ebd69c753f7b75e55f42";
+ sha256 = "a70d31f96a38b8a6b00378dad36a932da42e5cf42eb06bd607a164e288abae05";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ar/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ar/thunderbird-91.3.2.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
- sha256 = "29f34eac79855c01550a259d3663c662ec9bd259c0b20bf392efb0de1f44af8d";
+ sha256 = "7dd139bece8893dc9579286b3c1e7e16ab50b5fcc84779f99698b40bd39c3cb3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ast/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ast/thunderbird-91.3.2.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
- sha256 = "284d8935a5527b58f84ba9acabc0a67c51a7e1587f843d8b0ec9555e6f6d8f4e";
+ sha256 = "0bede384e4dfccc76975fd3e3dbc689f8567fd45e04fea8f1d8d07ac1e08cd6a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/be/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/be/thunderbird-91.3.2.tar.bz2";
locale = "be";
arch = "linux-x86_64";
- sha256 = "6a535aac3b4eb839a2aca1df28ac8425c142c68bd5c6907f5b9999a45b62c9c3";
+ sha256 = "a3af4449763b93eb77cca28b0df8893960f673c57bfd8a1afa847b80d8c5e391";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/bg/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/bg/thunderbird-91.3.2.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
- sha256 = "74dde907aaa3877651e1f2bec43a208ff36bf7d860333eaac6f8cdd20d48dc39";
+ sha256 = "c27164ddb394b0fff8e80a808696a9c2a1d01260a13985d75961071ebab6d3f1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/br/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/br/thunderbird-91.3.2.tar.bz2";
locale = "br";
arch = "linux-x86_64";
- sha256 = "6b396a289addae8d5ade8355f8c93c285ce6833852149a0fed3f741d9ceea220";
+ sha256 = "774f03ee82577773a73e84fdd0cc9e3b44dd3379cefa24d98c2c55b5801cddaf";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ca/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ca/thunderbird-91.3.2.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
- sha256 = "0611d49fd90777b3af1bd5b5effd3b4a5b267c7c33e6476ceed906a070a0e675";
+ sha256 = "b4ad2a2158f21473877b59272d45410a759b626ad78e23d59ab027044fbca6dd";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/cak/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/cak/thunderbird-91.3.2.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
- sha256 = "032e7034ab5aada649258dfa43cc10d6e00cf5be6f06b8bede06d2ca19625d79";
+ sha256 = "3bd57a316f11afe0ef6e8aca914b3366c989d88af043a4210ccdabb96dad9d7a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/cs/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/cs/thunderbird-91.3.2.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
- sha256 = "b0591e3bdf5e9273269354924fcfa8001579961f089f1011226faf1f4b0ab2e6";
+ sha256 = "d52ad37a9afd3a8fd382b1793739b92248cad9518d6d6e6a8da7615da44e8128";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/cy/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/cy/thunderbird-91.3.2.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
- sha256 = "4087f5c5609169b6834e2eed3fdaf614826c47f3ca99177292fd379ef5d430b3";
+ sha256 = "b76c69828c516e1082d55c91be982df12ec8e5119b24d8b3d3d54199ed032f11";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/da/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/da/thunderbird-91.3.2.tar.bz2";
locale = "da";
arch = "linux-x86_64";
- sha256 = "b72f768cc2d9c2bad536e2467d1abfe68671b242fcac801e57297694fd41d231";
+ sha256 = "c21c50a458e482251b95d087215c500eb50160affc3c15248921eb783c102cb6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/de/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/de/thunderbird-91.3.2.tar.bz2";
locale = "de";
arch = "linux-x86_64";
- sha256 = "48990ead3d84cb023e8c3e6e34113209b49e6ed3e29766fb5374fe577cd5cd94";
+ sha256 = "5c3c684eaceefbc6d12969d629a3b7bf71d1a1a028f4faba167cde98190bdd6e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/dsb/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/dsb/thunderbird-91.3.2.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
- sha256 = "c7e93ffe9d8ab0bc00db145771e65fec6c589208c28c3e0ecb5bb49471b9ed61";
+ sha256 = "798af909549b6d21ac7cec66c52ca137b4e1fc132b7212aaefb6f2ffd56f83f4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/el/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/el/thunderbird-91.3.2.tar.bz2";
locale = "el";
arch = "linux-x86_64";
- sha256 = "c35372524d77123bb9827d26efcd29e0fb9de402744b22a3c99563531410e2b3";
+ sha256 = "f7ab1f1c5bb0ad942296f52c683f146fb656b9baff5b1457e552b9d8b817fcdb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/en-CA/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/en-CA/thunderbird-91.3.2.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
- sha256 = "d20fa4b8c7224f35f06d384b5f37c277c56ac35f2099f59735197a0334c9f3ec";
+ sha256 = "420067b22babc35fca02d3843dedf0b22a5ff637b696efc2fc4a4eeda2e9fd85";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/en-GB/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/en-GB/thunderbird-91.3.2.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
- sha256 = "af0787957918aee6bb931b30ab92722c3ea8fe1e3fd60602d172a598422f7896";
+ sha256 = "c4b52a08b7feea6c30b950e5b1cd9b2a73c5533b03d15596061e220568a9799b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/en-US/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/en-US/thunderbird-91.3.2.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
- sha256 = "f8968d5ecf27e37bb8204291a9739ab804ef77c082e11b4e82fc7e02c8bf0da4";
+ sha256 = "28a2a9f63a17f6343f884b8960019aa43c25e5b03f5f5d2e430aa2354a851730";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/es-AR/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/es-AR/thunderbird-91.3.2.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
- sha256 = "ec281675876941240ccebe0c48bbb4ae0ed442b795cd7ee1be51ec59c4331220";
+ sha256 = "7b57ea2efcb26819c6634b8d5c1746d53422a6ccf2fc5c9c16f3366373d07f3e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/es-ES/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/es-ES/thunderbird-91.3.2.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
- sha256 = "6436ab381f1ab7fbcf1289d50300d7238f1095022cf18d6441832a8f61df68ea";
+ sha256 = "754e6750a98ab5f28e33d494d00deae29a21d532a29e47742b22a407186a1e2f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/et/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/et/thunderbird-91.3.2.tar.bz2";
locale = "et";
arch = "linux-x86_64";
- sha256 = "1e49089b98dcfebdc1465b93d625b6ea1b6fee4642ca915035fabdc97710eb0f";
+ sha256 = "e8f709c3e640191527f3e86b78550cf37688a06352650b3f358d18d0b4760cd4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/eu/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/eu/thunderbird-91.3.2.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
- sha256 = "c6a1418f15a019924b459b952330b9851c50907a7c12f3d430a79268ebdb7bac";
+ sha256 = "64f66589f960cc3574e8d7fe0e73198d89d22a1d9cc927ca51469ad1314749a4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/fi/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/fi/thunderbird-91.3.2.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
- sha256 = "588261a4c0e9cfa0c9f506f4fd2e9e14f123d10e96f0cc1724b4ea4607151264";
+ sha256 = "8bb8b200e9e1785d4e0545ba79f350eb49a744d8754eda2d802edb6ab6b77f54";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/fr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/fr/thunderbird-91.3.2.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
- sha256 = "9ca2d54c6f6f04ee887621332cc35aeabd0f9b73db621c41e8925bafb316670a";
+ sha256 = "14c25e9bb2c9b33e82fb30138577494da5493aba56022509085441652d6269c7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/fy-NL/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/fy-NL/thunderbird-91.3.2.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
- sha256 = "df9bae4cc2d3bd2778047d4589ec1a8e23f7b8c7fc760817decb9341b59dc0b9";
+ sha256 = "572f68545c5ea7fa6760aef7bd474f434ec3e1bff5fd4d2d95d4e6fb33442464";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ga-IE/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ga-IE/thunderbird-91.3.2.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
- sha256 = "8d6445032f39152c62e98fe9093cefbaa383d2bff203734ca04a501b44a3a0c2";
+ sha256 = "1b53bf57aba6885b84c19b3371833050966828ef389622ceaff6b42d1ee2dc19";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/gd/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/gd/thunderbird-91.3.2.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
- sha256 = "b947847398a8e086d062f8e54f515d53e39afab48ec59ca0aceb956ea0e0917f";
+ sha256 = "a483426e49b78522b3c8894e5519747b6e016ff0f3418ae811c9604e7294b74e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/gl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/gl/thunderbird-91.3.2.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
- sha256 = "3dddbb5cc78171719ed2e7c3ba854c0a346ca5324a898c698dfb79c7881051c0";
+ sha256 = "1dd9702ae44be14921671c16b5329e7e2dc7d6eaf428844441129dc2a0d53648";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/he/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/he/thunderbird-91.3.2.tar.bz2";
locale = "he";
arch = "linux-x86_64";
- sha256 = "e77eb74db9111e54b1e492fb5752fa92ec6eed96a7146392d1ba19d63b5e2ab8";
+ sha256 = "650abb7073b80adb79ab70462b8447fbbf57e1a683799ed1ed94ea964cdbe221";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/hr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/hr/thunderbird-91.3.2.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
- sha256 = "3e4d46ecc0ef83a619775d48e4df81295e3e95ad1e9a96efeafa26d7f24b85ee";
+ sha256 = "82c296083a2959375e17df6342528f2266b4e8ac6f93730f74cfb7e4e3982c55";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/hsb/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/hsb/thunderbird-91.3.2.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
- sha256 = "36453d6aca463fce338ac4a15c438290bdaa377aff72a56f0acefeba19860986";
+ sha256 = "ebb8c7735502f7e2f476cc166341c39d51525fa32b9012d393e28bc1a093f1c1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/hu/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/hu/thunderbird-91.3.2.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
- sha256 = "dd05c379727762fde0c2456a7bbd67cc45fb7ccfbbf88958b887d6637867e80e";
+ sha256 = "86975f13f69c499240ad12fbdc7bd36edc8f160b1632b29b1287498b8b96221d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/hy-AM/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/hy-AM/thunderbird-91.3.2.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
- sha256 = "35e4db20ff927cf079607fd0e7d207c155f23c7890cc6347ac069c9d252f6ad3";
+ sha256 = "80f70343153c66183cc549b93f90345fe53452c61f676c01f3651fc92d7263af";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/id/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/id/thunderbird-91.3.2.tar.bz2";
locale = "id";
arch = "linux-x86_64";
- sha256 = "9cc7a35aed1e5808a80cade5b77d064f3bd36f08107dbbdd3b92ac11c8c83766";
+ sha256 = "a210ff5e680c60eb4777b50ea4f326e3534710b6f269f8469803821ba23ee4fb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/is/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/is/thunderbird-91.3.2.tar.bz2";
locale = "is";
arch = "linux-x86_64";
- sha256 = "de645fdf79f33195a7caed9461214f834fb2e52f3da764bde71608fd3783305e";
+ sha256 = "fdd6a126ac887155670f817b432ef1ca143af379a1b33e49de7a857421a8c164";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/it/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/it/thunderbird-91.3.2.tar.bz2";
locale = "it";
arch = "linux-x86_64";
- sha256 = "f9a80f01d18cd36ac5c0a18d65908f329bc3d7ec506e0f201b833ed973528dca";
+ sha256 = "f0c0aa278eded34a9f42ee4cd5c8e6404448e7255cc08cb237448b9cdd4bf434";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ja/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ja/thunderbird-91.3.2.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
- sha256 = "9345cfdb7e35fc15e94bab52f058dacecd813da210c81770f3037c6f3f982478";
+ sha256 = "638de4c6608ba8a11ae5b382577d69fca1734758a3ff1531dd46425c53d331c6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ka/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ka/thunderbird-91.3.2.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
- sha256 = "49e535b7b8322645b81b8137ded607cbe54e70977a07b800114421fb529b045b";
+ sha256 = "6d2d54d83c8ac86ee597cf50f7d361a81c91aed52ee0765f97dfcd2cf46c30c5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/kab/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/kab/thunderbird-91.3.2.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
- sha256 = "9e66e0654c5ca2d4fec6101bd40a2ab68f17ad4a27ff58db4a1c5d927d76761d";
+ sha256 = "b676d9d005c86be8fac271425583193f123e459dbe01d4f94ba61014c86ebffa";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/kk/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/kk/thunderbird-91.3.2.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
- sha256 = "c929ef91d1ed17db64a36b5c8653e98e1be05b7bef48c062c40c0e37a88f6844";
+ sha256 = "1da38b82624c6f0ce4912b19f89721f94198f4d687f773e980ab89ad657facbb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ko/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ko/thunderbird-91.3.2.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
- sha256 = "758c31e642a796e3c8be2848e9789bf9c3d4f896790c80603491235ba126a195";
+ sha256 = "736d2034353357067b8db31c20d7e828d78c1a164871bbdc2fe981cfa972b025";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/lt/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/lt/thunderbird-91.3.2.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
- sha256 = "7173cb778a4f1bc625b5dde4eedf59911eb649e29c20f8f2a2eca455696fbdfb";
+ sha256 = "e44ca65a140dc9d2bc9015ee21d03b95fba74d350de81e7864dbc391bd008151";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/lv/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/lv/thunderbird-91.3.2.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
- sha256 = "ec9ef897898c788521725879906c56593dd08e9b862b1ad32f7133bba7843b94";
+ sha256 = "befc625cf52baea4644c2b6db5d648a5970217539330bc9fb10600d8a1329aec";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ms/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ms/thunderbird-91.3.2.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
- sha256 = "1f95835843d33a80821c077b26ea5e6330ea3d1a818bb122623a6024dc98515c";
+ sha256 = "6dcead2d35ef9b2ce6fe7729db4773f8ec6c91d1488af039f434da317e1fc618";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/nb-NO/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/nb-NO/thunderbird-91.3.2.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
- sha256 = "f5aff84dd6016a4223df28fc92185cffc1771107bc4f7c442bef0d19ae4cccf5";
+ sha256 = "570ef4140e196f30c2a61d8a9cf1e5dc5ed0826d4323c0186ca5571f92026eaf";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/nl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/nl/thunderbird-91.3.2.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
- sha256 = "1146a72a68b454abdb3ab19e0a487e0aa46af0fec4c9261459ac20785a66f8ca";
+ sha256 = "6a0bc25308550e9135439669a86d038443433c769298a5f011a730341eab7ba8";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/nn-NO/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/nn-NO/thunderbird-91.3.2.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
- sha256 = "a63d1124b72b4ad1e26f34b26792e576a63ade3aee161965058f6ba2144f4edc";
+ sha256 = "8bf93992f564be4fc73be844482f5f00ec3441f9ad68f0b71b916c696dcfe385";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/pa-IN/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/pa-IN/thunderbird-91.3.2.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
- sha256 = "245692605721b9610bb730f7164c64daebad372f881842a3e2d92dd27cf2c23c";
+ sha256 = "f3958c9a00594b5f3291787d2456be13662c3081ce295bd98dec506ea0d59d76";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/pl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/pl/thunderbird-91.3.2.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
- sha256 = "b3b3f9b4f4e2f310b24b148960dbbada8dedd444968f923e7295ce2e3f561bc0";
+ sha256 = "3f7b1478bac86e988f7625f0d8e15359b5b6dbab26964c1718e15dfbf7737a2a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/pt-BR/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/pt-BR/thunderbird-91.3.2.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
- sha256 = "dc0a70cb19880a9ea7a076ea03c12150bf2ed6349bee7f7cd64b9ba261366e99";
+ sha256 = "6c6a8ece61dfc1b9d4209d6a0322395dbf6a30e0a57d248c1adc11705d7cc087";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/pt-PT/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/pt-PT/thunderbird-91.3.2.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
- sha256 = "be20940db6d0b0399ea90e97ce4073c698c9caa822535cfdadaf5019aaa283f0";
+ sha256 = "c05dd90a3fd612d5b36901b055bfd7dd001d2058bf4f48844bd79e7012129106";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/rm/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/rm/thunderbird-91.3.2.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
- sha256 = "8e996281032049eeb70c12ecc10dd321b055d917edc3f16c12b073160552a76a";
+ sha256 = "26965f20e1c866d36ad321775076ba1d3d0171cf6e17a4b51b3a0122551f120f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ro/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ro/thunderbird-91.3.2.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
- sha256 = "d015483952516c37169d263660776a572877d6db50b4e4bc42c9d285cc413032";
+ sha256 = "2d35b21e8d346781aabb8420ce5aab92e5860c43dc79ec93c508fb2a1e6daa2a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/ru/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/ru/thunderbird-91.3.2.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
- sha256 = "90404c19d3ab7d5142310ae23699b346ee07ab5704b02f3b89e1972737460448";
+ sha256 = "c58cfdace7e7d68a9f9e3f2f157effdf119de25788d2410dc2608f3eb7f2b44b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/sk/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/sk/thunderbird-91.3.2.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
- sha256 = "2ed8cea88291714fe25b3f06777340536e24c1837743e6dd16bf2e66e90ed057";
+ sha256 = "3db373c9d2a25e6b37351ad680c4a68576c00254f5a11f3d4b952bca0ce5817f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/sl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/sl/thunderbird-91.3.2.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
- sha256 = "be29a12cd0d52f11f19cff89df0d0a883802328cbe036e9f01c2be7d296d5a4a";
+ sha256 = "fefcf1ed769fb6c49d0a0faa5f909a208351a9c033b7d318b600dcb3dad90c6e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/sq/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/sq/thunderbird-91.3.2.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
- sha256 = "b9f0b22b8004af1e7704048eb7223bda77723f664aab3596a3e2fed538eab39f";
+ sha256 = "99be3d86aa1cf4c923d23df4d0be1524446c39769ab05fc2d08d7e247bb6c9af";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/sr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/sr/thunderbird-91.3.2.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
- sha256 = "1edd87244be553d61bd5db1de74068130e9a3ccfa387d21c489f9a777bbae732";
+ sha256 = "8312687765087091e83e161f608514f44a119f25ba102abc58da940bd5fb6e28";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/sv-SE/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/sv-SE/thunderbird-91.3.2.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
- sha256 = "e218a20074e50dbe20d2dba7e81d5febdbcad8031e0fd9d88aca469da9cea267";
+ sha256 = "a11af66be088c801c0921668132629487bbb8594d516ba44b47f0c1f03d50217";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/th/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/th/thunderbird-91.3.2.tar.bz2";
locale = "th";
arch = "linux-x86_64";
- sha256 = "fa65b90c1cc903f3e1b743e142736b1c7e897eb6bf9a80cb0bffa60db627aba2";
+ sha256 = "5c029101c30f62557013bb8d86d7d8264b630f9bcfa4f46eb0a6f03e864cdabf";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/tr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/tr/thunderbird-91.3.2.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
- sha256 = "5af2e6453aa5523169d6922a8a888b757accad60802d7a457a1ee244cd74c3bc";
+ sha256 = "c35c4375100e12595c3d5c6810f5f6c102f6d7f90894f101f9ee40c704d9faf1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/uk/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/uk/thunderbird-91.3.2.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
- sha256 = "effad7de717f0597447a7559e666ee3cdb0a1270daa01226d662cab0be84a4dc";
+ sha256 = "78e56e473be676e044a5e6022dc6ef218a89b9f222bd18af8f7e0ccd92361e43";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/uz/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/uz/thunderbird-91.3.2.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
- sha256 = "f3c8d3d4ca4c076eb8bcc8a06df32622b87b4d4ae397ee36f5de27a947d443ee";
+ sha256 = "6bdf37da688fd49460dae136b33c89ea87f2558a55ebffc778065a2f425ba941";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/vi/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/vi/thunderbird-91.3.2.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
- sha256 = "ac464ab32927c822776b1cf873ea9b9a9473c18ac08b18534332050bde7b1dfe";
+ sha256 = "d0cfd6419636573ec2a3493c5776e08a19d943b3af985c4ecbf77b086cc7259e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/zh-CN/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/zh-CN/thunderbird-91.3.2.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
- sha256 = "44869c19113316a02518eb19fb5b1a7a85e266fccf7a3172d1938d758a5efa6a";
+ sha256 = "567123c2337a5c38ae32cdff319dd4d8dd1a3dba5c1d3b7552a6a3229412f65b";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-x86_64/zh-TW/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-x86_64/zh-TW/thunderbird-91.3.2.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
- sha256 = "82d915747e3e5459acba3e17663de422586f27e7bbc3a5698d992f82ee3d0cc1";
+ sha256 = "264f159e077656e5b1eaca8e1680482b255f95e4951a3d4c3d4e5d9b965d7e72";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/af/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/af/thunderbird-91.3.2.tar.bz2";
locale = "af";
arch = "linux-i686";
- sha256 = "5ccbc3453b76c3e02a05b94905c48cdad99bb15042fb2cfc58c7f619a263da07";
+ sha256 = "5c8a4883d5cc671647d63b4c86af3eae5e5e7b3a2a13a83da23932d0d3470cb9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ar/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ar/thunderbird-91.3.2.tar.bz2";
locale = "ar";
arch = "linux-i686";
- sha256 = "616fc2f0265f204b8699dd0beafc02220d7ba9b2243350730573824f6fa49462";
+ sha256 = "4ec73fd474418a391a7e89aad2cd200842b9c7057c57d5be6cb746d7d82973b0";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ast/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ast/thunderbird-91.3.2.tar.bz2";
locale = "ast";
arch = "linux-i686";
- sha256 = "046386e67e1b775f1f228e3056660db023093180f1c200f6380b6d3744b8ce4d";
+ sha256 = "c87b3d0da98ab808c897a53b30d169f283ce062b6209dcb52e496fde51db7e94";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/be/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/be/thunderbird-91.3.2.tar.bz2";
locale = "be";
arch = "linux-i686";
- sha256 = "bf64b91b16bdf4dbdfb88972432f2d2cce002a6ff8c708779511b54a05a7008f";
+ sha256 = "1ce44b1068706a536e6387b035717676b67002429163536aa34000206d29a5d3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/bg/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/bg/thunderbird-91.3.2.tar.bz2";
locale = "bg";
arch = "linux-i686";
- sha256 = "f544fbff341165e8e304a8a643be60c8b742973402861b298171699c45fe622b";
+ sha256 = "07db4b60aab6db39fafaf79e7cca867bacf7b6d487990e5591022dc31a5049d1";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/br/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/br/thunderbird-91.3.2.tar.bz2";
locale = "br";
arch = "linux-i686";
- sha256 = "c76ec7e65fc4980f12e05f863d8babab09d771f9679d21c93d8dab0f76d16898";
+ sha256 = "13653159296fe74943d450b8d17723604928dd50c0018ecc2493a2d029acf084";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ca/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ca/thunderbird-91.3.2.tar.bz2";
locale = "ca";
arch = "linux-i686";
- sha256 = "6c609f7b5886e7a7c70470d4bb35370284a454b109ca92cff9741bcc3086e9f8";
+ sha256 = "e69c6635aa4cdcb69baa674c96501eae1c1cc74597dcc784e8d6a17c841e5cb9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/cak/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/cak/thunderbird-91.3.2.tar.bz2";
locale = "cak";
arch = "linux-i686";
- sha256 = "f210ac1e0740c7105abd388e9b5e22d9e199ab3deb43842c3a82ecf5e6d15f01";
+ sha256 = "1f1906c1d4d0dfc5d931e1c0fa5340ec0ddd8a76421894a360331f3bf489a1ca";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/cs/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/cs/thunderbird-91.3.2.tar.bz2";
locale = "cs";
arch = "linux-i686";
- sha256 = "108d9bfa0b9bef9433f4837517d3d157d46c8578f889b9fb81bc72178f6dfe52";
+ sha256 = "1a7047f1e0e0b00d083eae157f193bab3a131cd3aa4eca987734d23591c8e3d7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/cy/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/cy/thunderbird-91.3.2.tar.bz2";
locale = "cy";
arch = "linux-i686";
- sha256 = "1bd421b89cded34d9a656b4e44b78c7b07557221b87dc99831ea7029ff6eead2";
+ sha256 = "7fb7cf862e04211ffdfe8a5c420e14aadff9126d9b3e295fdd2002fa0ad63bd2";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/da/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/da/thunderbird-91.3.2.tar.bz2";
locale = "da";
arch = "linux-i686";
- sha256 = "4db52d6017baeb8a5f925b7cfcdfb89a3ed8af9d3c1a41c4a63d122e4f214ecd";
+ sha256 = "6de68876808dad8158c4c200b393f2dbb4f2f84646c8f853a6582d3fb3bde964";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/de/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/de/thunderbird-91.3.2.tar.bz2";
locale = "de";
arch = "linux-i686";
- sha256 = "584c0e8a03b068652f61978af053028ca3793e1679ff0ea214bc6f8a99761f0c";
+ sha256 = "1e49f4525c4ea9c17d820945699ef19859480a2bc9a25a1c35ef9dabe0387655";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/dsb/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/dsb/thunderbird-91.3.2.tar.bz2";
locale = "dsb";
arch = "linux-i686";
- sha256 = "f838e8b6fdfb09e44771cfe02d22abb63722c65a0e430c77aca9fb5a53a97c4c";
+ sha256 = "b9eea0acdcda32188e8f34bf8d3991afa08b83f0fd16bdd93dbf678186b2de10";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/el/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/el/thunderbird-91.3.2.tar.bz2";
locale = "el";
arch = "linux-i686";
- sha256 = "0b0a6cb3c77e0a4f86bd3adbd4bac229d50323a88b355e470184f932b9602e4b";
+ sha256 = "e21637237bb9965f7b7ffcb4e1cef0d187bdc704d2cc1761995717dbe6ccd425";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/en-CA/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/en-CA/thunderbird-91.3.2.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
- sha256 = "7e22ff64aed5187db9621754f1eedb158285c2514f3eca836103833ac6183f7c";
+ sha256 = "af24c26e60ff775294a07284685d5fea79c6211fd799d233bb53b4a9873140aa";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/en-GB/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/en-GB/thunderbird-91.3.2.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
- sha256 = "a3be3dec0ec4789f8370c23e47b7ed0bef6802d28e3985c66d1a531a3aa986cf";
+ sha256 = "398762b8970c7c6a45181a337028f40c0bda4cbc8bf4dd45c2974df281258938";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/en-US/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/en-US/thunderbird-91.3.2.tar.bz2";
locale = "en-US";
arch = "linux-i686";
- sha256 = "31c35df101e8d3f97c3df72b7660086fdf4f6612068fd03558d5f9dca2d23507";
+ sha256 = "7d3d52a2d41e59661eaead112387df2bff0c0fef3df108cdeb79a8d0fdbf1064";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/es-AR/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/es-AR/thunderbird-91.3.2.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
- sha256 = "70db1a684f76886131214bb0c48dccd75763f041e06428ee6fef54a3a8d524c0";
+ sha256 = "56f2925f7b09bd5e5199e6703263f777cc23a8d6c44df719b5b7319d81784ff7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/es-ES/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/es-ES/thunderbird-91.3.2.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
- sha256 = "d0b792b494bea690adc6a2eb967a988920ca497db08c539f92349c925ccb7c33";
+ sha256 = "13920c98c6fd346536ca6c207f424759cae980893eae499727ffa184fdb12254";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/et/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/et/thunderbird-91.3.2.tar.bz2";
locale = "et";
arch = "linux-i686";
- sha256 = "2e4c3111435cb965972aec73eb181f7e3aac8faa03c8c8f0d7869ace109b433c";
+ sha256 = "5a2fbdf65990779043df86baa7575fa167381c188fd6c356ca644746c27f4abd";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/eu/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/eu/thunderbird-91.3.2.tar.bz2";
locale = "eu";
arch = "linux-i686";
- sha256 = "875e98a6ffcb614b3f062b7d12069eeb9f1c9dcd62916020369ede9ac76b8f92";
+ sha256 = "775a7494e5fa5c322e0cb312ed1e04aafc1152858e77f20f0e24991c6368014f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/fi/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/fi/thunderbird-91.3.2.tar.bz2";
locale = "fi";
arch = "linux-i686";
- sha256 = "982a28220ed9d6881d83baaf99540e7eb5d689b0b7fca179d4847838f2596a3c";
+ sha256 = "957c918a564aed43b3f2c519800a2bdbf6b3f23bcbaeed93fe811c351d3cd034";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/fr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/fr/thunderbird-91.3.2.tar.bz2";
locale = "fr";
arch = "linux-i686";
- sha256 = "f0421269313849e90eab46698176f1ca425d2bf8136748628a35b0a8baf26c06";
+ sha256 = "90d4e4781e34006d6eaec876c020c4adf9b1f5c2b19ccc76abbbfbd66c3a2394";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/fy-NL/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/fy-NL/thunderbird-91.3.2.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
- sha256 = "d49aafc5baebb88b4b2ef7ea5240babe09b16632edebf9a39081aaf183e9ae3b";
+ sha256 = "64887092d6a6dadf68b49d722b30d16305f950d77275caca7491bf1b9ab79fce";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ga-IE/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ga-IE/thunderbird-91.3.2.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
- sha256 = "665df98e5dd0ab4cff25b530bccfdfe4b44f2a81da9167b37aeedf7f05e1f59e";
+ sha256 = "a48d4c0efaf448c0a69e499bf38b2fb42ca463d32d3daa3601a24be8f27eace7";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/gd/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/gd/thunderbird-91.3.2.tar.bz2";
locale = "gd";
arch = "linux-i686";
- sha256 = "28acbaec011f0222530d0f8411444fdf0743d05c05c1fc04a0c130208dd5e9f9";
+ sha256 = "e854d7767974f988cf070024c2f6f488b3e41f11270db7b6954e1d53bf8f1d4f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/gl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/gl/thunderbird-91.3.2.tar.bz2";
locale = "gl";
arch = "linux-i686";
- sha256 = "97c23e4eac308b51252c0532770961133f2540b94a9dc095c0351e39f42ab038";
+ sha256 = "efed9640f721943b2a20c6163cb4516e511b2eff83e5e6384b89fc0c868c834e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/he/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/he/thunderbird-91.3.2.tar.bz2";
locale = "he";
arch = "linux-i686";
- sha256 = "dfd4f5b4c9f396b4a512b38292b73f5a44146b3b46ab0d4e448067481e940914";
+ sha256 = "8a4ea334d62e68d0bec90b370bd66212832a9ed0f411844cb7e69b9a4d08282d";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/hr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/hr/thunderbird-91.3.2.tar.bz2";
locale = "hr";
arch = "linux-i686";
- sha256 = "07a1f4a58af9172912237c35c220efbe80fbcd44151dc0bce3e40ede38dff054";
+ sha256 = "3169c8140ec0196ccf157a8c43ce60755fd7c8cf9fdd74856e5419d6020ff972";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/hsb/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/hsb/thunderbird-91.3.2.tar.bz2";
locale = "hsb";
arch = "linux-i686";
- sha256 = "c1b4e64ebdcc1a06d4428d3507aa1899f3d4c27ae428161f7219ea34302b1946";
+ sha256 = "3a614222620f18a5def28a4526b896fef0c2e23b4f3e72eb47739102492c6213";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/hu/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/hu/thunderbird-91.3.2.tar.bz2";
locale = "hu";
arch = "linux-i686";
- sha256 = "c57005f3f10938b8cfc6adef1d5452b3235605b97a23d22da1f4528b1e356d2d";
+ sha256 = "5fcd243813e91b58991f1329944c1f06e4801d6a081760580127f4bef92a7113";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/hy-AM/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/hy-AM/thunderbird-91.3.2.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
- sha256 = "73525dc142b6762f803ced2b567a23244b22239d355fe89507cbe59ad1130edc";
+ sha256 = "8693c2571c07569716c7faf8dbd5ee21eb71905cc57910d71fb9eb5fe1d43740";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/id/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/id/thunderbird-91.3.2.tar.bz2";
locale = "id";
arch = "linux-i686";
- sha256 = "3f79327af36f3174cb303c65b13a0ae164bf24c87e367ba14bb46b1b6e2370b4";
+ sha256 = "c46e09013fb7c9213efbe61c97261a29d38777ede62236ad98d9e25997248806";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/is/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/is/thunderbird-91.3.2.tar.bz2";
locale = "is";
arch = "linux-i686";
- sha256 = "58f7012723cf4ce6673fed01d038b2517c710585c6f8724181e4a91d717b2351";
+ sha256 = "90001ba6e09cd00f252adf9dfebd58576b47fb0b383150168c61a47f57526bd6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/it/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/it/thunderbird-91.3.2.tar.bz2";
locale = "it";
arch = "linux-i686";
- sha256 = "b0e7b9aa39a05148a0ef83d860fd2ab40d2aa1a66a31dd1e9a59d390d56c6e42";
+ sha256 = "71797daf54b46050500115144424a132d0c711a54e1bb32199f2e25965920c77";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ja/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ja/thunderbird-91.3.2.tar.bz2";
locale = "ja";
arch = "linux-i686";
- sha256 = "e02978eef0fc814ca190bf8bde29ae382fc2e14c61200e78ec1f43809d7cca9a";
+ sha256 = "ff58765bb7b6e0fdf3fa3a7d7e097449389b8dfbcb38e0cfcca7b13026dab734";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ka/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ka/thunderbird-91.3.2.tar.bz2";
locale = "ka";
arch = "linux-i686";
- sha256 = "b11a6e09556d9f943765badb6145c5db2b7bb54cd3016de686e821aa66308bd5";
+ sha256 = "562c18c4425a5a96b0d33db351ef9a52fc3ef62620ef69214495379968a23ebc";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/kab/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/kab/thunderbird-91.3.2.tar.bz2";
locale = "kab";
arch = "linux-i686";
- sha256 = "604f1c4a21b58b995e72ac48549802c588b0542c352de813aa4dcc02bbc0c686";
+ sha256 = "2cb41161e854c99f8c0acebfc5d5e139ebc13810d811e1f891e33d62c9965cd9";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/kk/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/kk/thunderbird-91.3.2.tar.bz2";
locale = "kk";
arch = "linux-i686";
- sha256 = "29479a9970a622e23901c6022058d635874b41e24c7f5aef42536abc922dd1ea";
+ sha256 = "787c790f370f73c6f9ac9f7967c564ffbffa2da1a6d8fbc40d8d99cc347b9e78";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ko/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ko/thunderbird-91.3.2.tar.bz2";
locale = "ko";
arch = "linux-i686";
- sha256 = "f34050010ff533a1c3949b11ad51c6902d6efec8c92904b2906ab80f95291e6d";
+ sha256 = "d473666c5c611979edcbc8a6422e2f0bef71bee3365909f4473665b95e243fc4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/lt/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/lt/thunderbird-91.3.2.tar.bz2";
locale = "lt";
arch = "linux-i686";
- sha256 = "be3e4c5bff078c2129d6f4e1a6a820efa62cce2750e3e1359dfba0ea93e58b5a";
+ sha256 = "dfb95387dba85efee4a0d145dfecdf0832cb8933fb58a3e6fe9ed97acf5fe31f";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/lv/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/lv/thunderbird-91.3.2.tar.bz2";
locale = "lv";
arch = "linux-i686";
- sha256 = "bd6ec1783bcd5efbf51f963eef3db42f71b50e8826fe4896dc7356d10f4eefce";
+ sha256 = "c250c5f4ffdcbe40787997abe8b73d40daf2bd5e1478bf91dd75d1522a2ca9a4";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ms/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ms/thunderbird-91.3.2.tar.bz2";
locale = "ms";
arch = "linux-i686";
- sha256 = "6279588bd47020c61250c211849b8fcbc4f480318a725090f316bb9f2099c31f";
+ sha256 = "50c335ce7f2d6dba9b8535ad438ded937c6840fe9269488bfc71bbedf60c6211";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/nb-NO/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/nb-NO/thunderbird-91.3.2.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
- sha256 = "0f0a0fb9f6556f4207e63a12e846d2917d8e221321b51ba34860094876c3528f";
+ sha256 = "0ac72610d7575ac04d863c5b5f06c333bc0c2b3756f12cc7bded800e6f3b2643";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/nl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/nl/thunderbird-91.3.2.tar.bz2";
locale = "nl";
arch = "linux-i686";
- sha256 = "2f3c40fffa081ec62396fc3b715331280603b38b6d5fe5f4b16de1ab6727a713";
+ sha256 = "bec70ac869333d45d71804f93607a211c3678a4038e8898d1da013b38872a306";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/nn-NO/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/nn-NO/thunderbird-91.3.2.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
- sha256 = "da9c9cc55abbd4f0679b53b6635868fb2a5f56165292a82903512058fa57f988";
+ sha256 = "ef1909585360519b82df7042e399eb12a7a406186d8b0314e6cc08b1f424182e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/pa-IN/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/pa-IN/thunderbird-91.3.2.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
- sha256 = "065db90edaec65fc7cb240d7793afae97110761bca269ffc4e172d0fd5dcbeae";
+ sha256 = "e5799748d783d2931ccd8923c870aa0f866a807425aa62b8dfeef817b73b1f02";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/pl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/pl/thunderbird-91.3.2.tar.bz2";
locale = "pl";
arch = "linux-i686";
- sha256 = "4e0a43f1633728dbb25dcd60218b31fa45131a8189f94d8ebeff202bc251ac55";
+ sha256 = "164569c0cc0331d009c5066082e7ece6b189ef1c4d2577a2d569d07df47a52ab";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/pt-BR/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/pt-BR/thunderbird-91.3.2.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
- sha256 = "a013acdee4b7e983c71dd39607103f1794b967addc57c538a8ca94437551743c";
+ sha256 = "5c908e43e9eb83f199e831858eef687b7cb5e10867f7b00dd0c640d9e7f00031";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/pt-PT/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/pt-PT/thunderbird-91.3.2.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
- sha256 = "4bf7b530490f1fc1d031040790a568bee42206f393f8c13994551e6ff4d1ede2";
+ sha256 = "52f0d5ae52f55be14379fde304d3552d10811a8cb4a76123f724c789e122f5d2";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/rm/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/rm/thunderbird-91.3.2.tar.bz2";
locale = "rm";
arch = "linux-i686";
- sha256 = "829ffbd9402f5cf80cdd8b001081d6f67628c842cc3c73f8191b6f6ff1d54d52";
+ sha256 = "a5dda05e61c785330e039d950969a507962af9e5665dd6bfa0ee203754be5da3";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ro/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ro/thunderbird-91.3.2.tar.bz2";
locale = "ro";
arch = "linux-i686";
- sha256 = "6bc72633a3b45faf2aa51627caf5674f1b05e16840b952f58f7f86ef6ad483b9";
+ sha256 = "96819f82155eb1c64a113b988ad1975e67552c5bc7fe9a7a4ac100f08c6bf114";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/ru/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/ru/thunderbird-91.3.2.tar.bz2";
locale = "ru";
arch = "linux-i686";
- sha256 = "141787ba7f5aeb0faa2a33e0d84fda8fa8d31681c6fdd0e884a69cc339042048";
+ sha256 = "a8de715e4f66b0198c8b65c845354100e34040248edd07ba1cfc863163ff6588";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/sk/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/sk/thunderbird-91.3.2.tar.bz2";
locale = "sk";
arch = "linux-i686";
- sha256 = "90363481a491a239e4c3da49bc87ed3ca795e4ce0eaf2239ac5a298e5d7abc10";
+ sha256 = "3d28e2b10458f74d33d08ac1a0a806d897224bab9beff91ba805c4949b8ea3e5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/sl/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/sl/thunderbird-91.3.2.tar.bz2";
locale = "sl";
arch = "linux-i686";
- sha256 = "95e57777da6f9fcb41bb3116771be2e90b023315433d41e21884b34feb6a38e4";
+ sha256 = "fb32dba75c5e486daf28cbe25b63315aed05e621851fc2ace0a08c38e69780ec";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/sq/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/sq/thunderbird-91.3.2.tar.bz2";
locale = "sq";
arch = "linux-i686";
- sha256 = "d7e0a12bd5c7edfb130e4defdc25b8776fb71722fb146cd5309d52405ad231bd";
+ sha256 = "c71dc09fc91441f1a7f79aa7766ce0629736cbf5d23fd415700ee54e7e13c7b5";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/sr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/sr/thunderbird-91.3.2.tar.bz2";
locale = "sr";
arch = "linux-i686";
- sha256 = "b17dbc3424ce90c0360a75476d1d25568fb4e7c6e1e90a197ab332e5584cb88e";
+ sha256 = "24bac0610ed6429ffac5ee1ace6f329892fd98f93636d8f7b520b5884ec4c8ce";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/sv-SE/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/sv-SE/thunderbird-91.3.2.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
- sha256 = "027f7f817823e939261c05113b3cc5518b3fff1d061e66e8fcd5703504259f2b";
+ sha256 = "eed59aefedee4c5d4c32d7d24d515cbda60b5878dd0f2c8f93afe2e0f229b9e6";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/th/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/th/thunderbird-91.3.2.tar.bz2";
locale = "th";
arch = "linux-i686";
- sha256 = "268473436cc5230bc60b38c0678eaa71c64b5f9c3780120df51c1063790e1855";
+ sha256 = "14bf5e07c1007333bc2e4253a6b544923c16c1fe9fe6747ed23bc011b0491221";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/tr/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/tr/thunderbird-91.3.2.tar.bz2";
locale = "tr";
arch = "linux-i686";
- sha256 = "79bad44e8e9dd7962d67b395d27c046d84c50f3eb66c53bc10de8a9c3d94a059";
+ sha256 = "dbb53e36119930de82a4c930c14441acdfb55870921c71b7c7239d87ad27d9bb";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/uk/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/uk/thunderbird-91.3.2.tar.bz2";
locale = "uk";
arch = "linux-i686";
- sha256 = "c363f700537f3a466fb438ec4339b5e83b60c721faa647b4ab77c907ab9b1f21";
+ sha256 = "002ec936c48930459152d936e8a17a5e86926b576e5266eda2471cfe73a6002a";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/uz/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/uz/thunderbird-91.3.2.tar.bz2";
locale = "uz";
arch = "linux-i686";
- sha256 = "2de957d36eb6c2b5a7d33d6a06e9f4f1072981fd8530aa18d609a892f963c975";
+ sha256 = "6f8b933a9a496fd272599525ac9cf398bee9371eb255fed0799f2ce1782ca553";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/vi/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/vi/thunderbird-91.3.2.tar.bz2";
locale = "vi";
arch = "linux-i686";
- sha256 = "5006d6c79aff928e307a92eb3867364f206ee1d872e275d3ebf63b9a4cf286de";
+ sha256 = "c08059d319ed8b3ef54125da8e6f9cf54595c3ff2ce67ab6fe2e5ff47358f777";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/zh-CN/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/zh-CN/thunderbird-91.3.2.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
- sha256 = "4893ea232fa746efc32cb0d84800b46fbdffb49a13fbc244559ca0382561ebca";
+ sha256 = "6a0901e0a0e120bbb9c2982f528f2ad169c564b843281877b03af9efe40ff78e";
}
- { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.2.1/linux-i686/zh-TW/thunderbird-91.2.1.tar.bz2";
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.2/linux-i686/zh-TW/thunderbird-91.3.2.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
- sha256 = "37ad46134d268639514eeb267a89aeb20fc318bde923b9eb552c281b23ae153e";
+ sha256 = "aeb8baa985dae521b4a0b77e3e6730c6d614da51f2d77ae2531ab1c89d346ef7";
}
];
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
similarity index 71%
rename from third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch
rename to third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
index 98b40d83d6..c4e29f6355 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
@@ -1,13 +1,13 @@
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 @@
+@@ -119,9 +119,6 @@ messenger.jar:
% 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.
+ % override chrome://mozapps/locale/profile/profileDowngrade.dtd chrome://messenger/locale/profileDowngrade.dtd
+ % override chrome://global/locale/netError.dtd chrome://messenger/locale/netError.dtd
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index fa2c5fd0fb..c1b5c755f3 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,14 +10,16 @@ in
rec {
thunderbird = common rec {
pname = "thunderbird";
- version = "91.2.1";
+ version = "91.3.2";
application = "comm/mail";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
- sha512 = "3152f20ad5f0fd3ce2c1672e91f07ab8921ffb5ecf487e6b0d7d7464445c8d8df106eea0bd8d912ffa84ab0ad403dfcfb19be97f50a015150c9091201a0dff6d";
+ sha512 = "954be27795935e494d27d57da99b49ff61db8a2b26fa8e159a30d6c272033b015790735b40129d7de94f861af23cf748f88a7a45df3861f753d6e15d28fb366c";
};
patches = [
+ # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
+ ./no-buildconfig.patch
];
meta = with lib; {
@@ -34,32 +36,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/third_party/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
index 19354df40a..24b86ab0e2 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
+++ b/third_party/nixpkgs/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.23";
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-iYFcTttmt5rygC1uxX74BHvPmEDUVBdiPOh7FEQcmyE=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mhost/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mhost/default.nix
index f6aad5eaa0..beed066e65 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mhost/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/mhost/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, rustPlatform, lib }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
rustPlatform.buildRustPackage rec {
pname = "mhost";
@@ -13,6 +13,8 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "0gqrya0bpdd67k2sxib7f4npnrx84d9r4hjq2sg2xz4j8pmgs018";
+ buildInputs = lib.optional stdenv.isDarwin Security;
+
CARGO_CRATE_NAME = "mhost";
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mpop/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mpop/default.nix
index a14e55e51f..e2bf0b134d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mpop/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/third_party/nixpkgs/pkgs/applications/networking/msmtp/default.nix
index 884e5a644f..3bcbdf0cf0 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/msmtp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec {
pname = "msmtp";
- version = "1.8.17";
+ version = "1.8.19";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
- sha256 = "sha256-D92+dMGp3PZGG0obDbPk00JmGEUAxAPX8QetQttOxNM=";
+ sha256 = "sha256-NKHhmBF2h02+TuZu4NkQPJCYmqTc3Ehh5N4Fzn5EUms=";
};
patches = [
@@ -26,8 +26,8 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkg-config texinfo ];
- configureFlags =
- [ "--sysconfdir=/etc" ] ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+ configureFlags = [ "--sysconfdir=/etc" "--with-libgsasl" ]
+ ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
postInstall = ''
install -d $out/share/doc/${pname}/scripts
diff --git a/third_party/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/third_party/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
index 2fa486b83a..e03d6fa23f 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/nali/default.nix b/third_party/nixpkgs/pkgs/applications/networking/nali/default.nix
new file mode 100644
index 0000000000..9e0978c80d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/nali/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "nali";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "zu1k";
+ repo = "nali";
+ rev = "v${version}";
+ sha256 = "sha256-iRLoUBA+Kzv1/LZQ8HCvR79K1riYErxEWhB0OmvFy2g=";
+ };
+
+ vendorSha256 = "sha256-Kb2T+zDUuH+Rx8amYsTIhR5L3DIx5nGcDGqxHOn90NU=";
+ subPackages = [ "." ];
+ runVend = true;
+
+ meta = with lib; {
+ description = "An offline tool for querying IP geographic information and CDN provider";
+ homepage = "https://github.com/zu1k/nali";
+ license = licenses.mit;
+ maintainers = with maintainers; [ diffumist ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/third_party/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
index d96caf372e..50ad2d312f 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "ncgopher";
- version = "0.2.0";
+ version = "0.3.0";
src = fetchFromGitHub {
owner = "jansc";
repo = "ncgopher";
rev = "v${version}";
- sha256 = "sha256-Yny5zZe5x7/pWda839HcFkHFuL/jl1Q7ykTZzKy871I=";
+ sha256 = "sha256-1tiijW3q/8zS9437G9gJDzBtxqVE3QUxgw74P7rcv98=";
};
- cargoSha256 = "sha256-C4V1WsAUFtr+N64zyBk1V0E8gTM/U54q03J6Nj8ReLk=";
+ cargoSha256 = "sha256-LA8LjY8oZslGFQhKR8fJ2heYxSBqUnmeejXKRvZXjIs=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch b/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
new file mode 100644
index 0000000000..d3bac6af08
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
@@ -0,0 +1,24 @@
+From 54255deceaaaf118e9daadc3dd9f517c33bdd658 Mon Sep 17 00:00:00 2001
+From: Ilan Joselevich
+Date: Tue, 30 Nov 2021 22:50:43 +0200
+Subject: [PATCH] When creating the autostart entry, do not use an absolute
+
+---
+ src/common/utility_unix.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/common/utility_unix.cpp b/src/common/utility_unix.cpp
+index 887213f09..c66468306 100644
+--- a/src/common/utility_unix.cpp
++++ b/src/common/utility_unix.cpp
+@@ -88,7 +88,7 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
+ ts << QLatin1String("[Desktop Entry]\n")
+ << QLatin1String("Name=") << guiName << QLatin1Char('\n')
+ << QLatin1String("GenericName=") << QLatin1String("File Synchronizer\n")
+- << QLatin1String("Exec=\"") << executablePath << "\" --background\n"
++ << QLatin1String("Exec=") << "nextcloud --background" << endl
+ << QLatin1String("Terminal=") << "false\n"
+ << QLatin1String("Icon=") << APPLICATION_ICON_NAME << QLatin1Char('\n')
+ << QLatin1String("Categories=") << QLatin1String("Network\n")
+--
+2.33.1
diff --git a/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
index d3612321c3..97a86055f3 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -21,18 +21,19 @@
mkDerivation rec {
pname = "nextcloud-client";
- version = "3.3.5";
+ version = "3.4.0";
src = fetchFromGitHub {
owner = "nextcloud";
repo = "desktop";
rev = "v${version}";
- sha256 = "sha256-kqNN9P0G/Obi/8PStmLxImQdqkhLnJoFZ7dLpqe11TI=";
+ sha256 = "sha256-+b+DJwbYegbeoQmcdBg5Y7rJmKwPjz2XRUroP55ZO+g=";
};
patches = [
# Explicitly move dbus configuration files to the store path rather than `/etc/dbus-1/services`.
./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
+ ./0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
];
nativeBuildInputs = [
@@ -59,6 +60,8 @@ mkDerivation rec {
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
+ # See also: https://bugreports.qt.io/browse/QTBUG-85967
+ "--set QML_DISABLE_DISK_CACHE 1"
];
cmakeFlags = [
@@ -70,7 +73,7 @@ mkDerivation rec {
description = "Nextcloud themed desktop client";
homepage = "https://nextcloud.com";
license = licenses.gpl2Plus;
- maintainers = with maintainers; [ caugner kranzes ];
+ maintainers = with maintainers; [ kranzes ];
platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/nextdns/default.nix b/third_party/nixpkgs/pkgs/applications/networking/nextdns/default.nix
index 561a1c77b1..ae7eb49a1c 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/nextdns/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
index dd7f4a7bb6..053f1d6788 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkg-config, glib, gnutls }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, zlib, bzip2, sqlite, pkg-config, glib, gnutls }:
stdenv.mkDerivation rec {
pname = "ncdc";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
sha256 = "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi";
};
+ patches = [
+ # Upstream fix for ncurses-6.3 support:
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://g.blicky.net/ncdc.git/patch/?id=4126dd51e90deb9e22dfd139cc4518a7812fcad6";
+ sha256 = "13hqkmhmbazj6cllb5b2ccgf51vsn5lri7jqkqc5xwivgcisfrij";
+ })
+ ];
+
nativeBuildInputs = [ pkg-config ];
buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 38e1b7cfce..f5f5b3bde7 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -12,13 +12,13 @@ assert trackerSearch -> (python3 != null);
with lib;
mkDerivation rec {
pname = "qbittorrent";
- version = "4.3.8";
+ version = "4.3.9";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
- sha256 = "sha256-on5folzKuRoVlvDOpme+aWxUKUC5PnO+N3L51qwG2gY=";
+ sha256 = "sha256-pFHeozx72qVjA3cmW6GK058IIAOWmyNm1UQVCQ1v5EU=";
};
enableParallelBuilding = true;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix
index 0a77a64916..6d037e56ea 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "rqbit";
- version = "2.1.0";
+ version = "2.1.3";
src = fetchFromGitHub {
owner = "ikatson";
repo = "rqbit";
rev = "v${version}";
- sha256 = "1dyf1sjfiwrrigk1186mzvx5vn196h45imvily394ky2di633av5";
+ sha256 = "sha256-ovg+oMlt3XzOxG9w/5Li3awMyRdIt1/JnIFfZktftkw=";
};
- cargoSha256 = "02z5gdmir1x80axnv516hs00478c7zbb30rdsbs966yh1725w12z";
+ cargoSha256 = "sha256-0CA0HwFI86VfSyBNn0nlC1n4BVgOc9BLh1it7ReT8+Y=";
nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
index 8b1a668090..dce6baa438 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
@@ -40,11 +40,12 @@ python3Packages.buildPythonApplication rec {
pytestFlagsArray = [
"tests"
- # test_string__month_day_hour_minute_second fails on darwin
- "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
# TestScrollBarWithScrollable.test_wrapping_bug fails
"--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug"
+ # https://github.com/rndusr/stig/issues/214
+ "--deselect=tests/completion_test/classes_test.py::TestCandidates::test_candidates_are_sorted_case_insensitively"
] ++ lib.optionals stdenv.isDarwin [
+ "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
"--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py"
"--deselect=tests/client_test/aiotransmission_test/rpc_test.py"
];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
index e5c17581cb..01e119dafc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
index 7290ec65ad..1954ebe543 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/third_party/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
index 3aa5b4a8da..774aea642d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -1,26 +1,35 @@
-{ stdenv, fetchurl, python3Packages, makeWrapper
-, enablePlayer ? true, libvlc, qt5, lib }:
+{ stdenv, lib, fetchurl, python3, makeWrapper
+, libtorrent-rasterbar-1_2_x, qt5
+}:
+let
+ libtorrent = (python3.pkgs.toPythonModule (
+ libtorrent-rasterbar-1_2_x.override { python = python3; })).python;
+
+ aiohttp-apispec = python3.pkgs.callPackage
+ ../../../../development/python-modules/aiohttp-apispec/unstable.nix { };
+in
stdenv.mkDerivation rec {
pname = "tribler";
- version = "7.4.4";
+ version = "7.10.0";
src = fetchurl {
url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz";
- sha256 = "0hxiyf1k07ngym2p8r1b5mcx1y2crkyz43gi9sgvsvsyijyaff3p";
+ sha256 = "1x45z23d1cqf0lai7wg5ki7gi2vba5hqk0swhggzplcjwma4wmh9";
};
nativeBuildInputs = [
- python3Packages.wrapPython
+ python3.pkgs.wrapPython
makeWrapper
];
buildInputs = [
- python3Packages.python
+ python3.pkgs.python
];
- pythonPath = with python3Packages; [
- libtorrent-rasterbar
+ pythonPath = [
+ libtorrent
+ ] ++ (with python3.pkgs; [
twisted
netifaces
pycrypto
@@ -42,49 +51,44 @@ stdenv.mkDerivation rec {
pony
lz4
pyqtgraph
+ pyyaml
+ aiohttp
+ aiohttp-apispec
+ faker
+ sentry-sdk
+ pytest-asyncio
+ pytest-timeout
+ asynctest
+ yappi
# there is a BTC feature, but it requires some unclear version of
# bitcoinlib, so this doesn't work right now.
# bitcoinlib
- ];
-
- postPatch = ''
- ${lib.optionalString enablePlayer ''
- substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')"
- substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" \
- --replace "if vlc and vlc.plugin_path" "if vlc" \
- --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'"
- ''}
- '';
+ ]);
installPhase = ''
mkdir -pv $out
# Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
wrapPythonPrograms
cp -prvd ./* $out/
- makeWrapper ${python3Packages.python}/bin/python $out/bin/tribler \
+ makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
--set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
- --set _TRIBLERPATH $out \
- --set PYTHONPATH $out:$program_PYTHONPATH \
+ --set _TRIBLERPATH $out/src \
+ --set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
--set NO_AT_BRIDGE 1 \
--run 'cd $_TRIBLERPATH' \
- --add-flags "-O $out/run_tribler.py" \
- ${lib.optionalString enablePlayer ''
- --prefix LD_LIBRARY_PATH : ${libvlc}/lib
- ''}
+ --add-flags "-O $out/src/run_tribler.py"
- mkdir -p $out/share/applications $out/share/icons $out/share/man/man1
- cp $out/Tribler/Main/Build/Ubuntu/tribler.desktop $out/share/applications/tribler.desktop
- cp $out/Tribler/Main/Build/Ubuntu/tribler_big.xpm $out/share/icons/tribler.xpm
- cp $out/Tribler/Main/Build/Ubuntu/tribler.1 $out/share/man/man1/tribler.1
+ mkdir -p $out/share/applications $out/share/icons
+ cp $out/build/debian/tribler/usr/share/applications/tribler.desktop $out/share/applications/tribler.desktop
+ cp $out/build/debian/tribler/usr/share/pixmaps/tribler_big.xpm $out/share/icons/tribler.xpm
'';
meta = with lib; {
- maintainers = with maintainers; [ xvapx ];
+ maintainers = with maintainers; [ xvapx viric ];
homepage = "https://www.tribler.org/";
description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
license = licenses.lgpl21;
platforms = platforms.linux;
- broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/ping/default.nix b/third_party/nixpkgs/pkgs/applications/networking/ping/default.nix
index 82194e38ea..8b8748d70f 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/ping/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix b/third_party/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
index ee92f4727c..1bbf3d6554 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/third_party/nixpkgs/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=";
+ owner = "ProtonVPN";
+ repo = "linux-app";
+ rev = version;
+ sha256 = "sha256-08gXEKm8udgNltRdqvAMFL0pDCWZu/kfl1xGQtZPBCc=";
};
- desktopItem = makeDesktopItem {
- name = "ProtonVPN";
- desktopName = "ProtonVPN GUI";
- type = "Application";
- exec = "protonvpn-gui";
- icon = "protonvpn";
- categories = "Network;";
- terminal = "false";
- };
+ strictDeps = false;
- trayDesktopItem = makeDesktopItem {
- name = "ProtonVPN Tray";
- desktopName = "ProtonVPN Tray";
- type = "Application";
- exec = "protonvpn-tray";
- icon = "protonvpn";
- categories = "Network;";
- terminal = "false";
- };
+ nativeBuildInputs = [
+ gobject-introspection imagemagick wrapGAppsHook
+ ];
- nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ];
+ propagatedBuildInputs = with python3Packages; [
+ protonvpn-nm-lib
+ psutil
+ ];
- propagatedBuildInputs = (with python3Packages; [
- pygobject3
- pycairo
- requests
- configparser
- ]) ++ [
- protonvpn-cli
- gtk3
- gobject-introspection
- libnotify
- libappindicator-gtk3
- ];
+ buildInputs = [
+ gtk3 networkmanager webkitgtk
+ ];
- prePatch = ''
- # if pkexec is used, we want to have more time to enter password
- substituteInPlace linux_gui/services/login_service.py --replace 'timeout=8' 'timeout=30'
- '';
-
- postInstall = ''
- # wrap binaries with extra required path
- wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath}
- wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath}
-
- # install desktop files
- mkdir -p $out/share/applications
- cp "$desktopItem/share/applications/ProtonVPN.desktop" $out/share/applications/protonvpn-gui.desktop
- cp "$trayDesktopItem/share/applications/ProtonVPN Tray.desktop" $out/share/applications/protonvpn-tray.desktop
-
- # create icons
+ postFixup = ''
+ # Setting icons
for size in 16 32 48 64 72 96 128 192 512 1024; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
- convert -resize "$size"x"$size" \
- linux_gui/resources/img/logo/protonvpn_logo.png \
- $out/share/icons/hicolor/"$size"x"$size"/apps/protonvpn.png
+ convert -resize $size'x'$size \
+ protonvpn_gui/assets/icons/protonvpn-logo.png \
+ $out/share/icons/hicolor/$size'x'$size/apps/protonvpn.png
done
+
+ install -Dm644 protonvpn.desktop -t $out/share/applications/
+ substituteInPlace $out/share/applications/protonvpn.desktop \
+ --replace 'protonvpn-logo' protonvpn
'';
- # no tests
+ # Project has a dummy test
doCheck = false;
meta = with lib; {
description = "Linux GUI for ProtonVPN, written in Python";
- homepage = "https://github.com/ProtonVPN/linux-gui";
- maintainers = with maintainers; [ offline ];
+ homepage = "https://github.com/ProtonVPN/linux-app";
+ maintainers = with maintainers; [ offline wolfangaukang ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
- mainProgram = "protonvpn-gui";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/third_party/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
index 0f76bced87..9f8a6dfc57 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/third_party/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix
index 3344174cb2..82debe6f8a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix
@@ -4,7 +4,7 @@
, libX11
, gst_all_1
, sqlite
-, epoxy
+, libepoxy
, pango
, cairo
, gdk-pixbuf
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
pcsclite
gtk3
cairo
- epoxy
+ libepoxy
pango
gdk-pixbuf
gst_all_1.gstreamer
diff --git a/third_party/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/third_party/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
index f61a00f89a..11fcde29b8 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -3,7 +3,7 @@
, freerdp, libssh, libgcrypt, gnutls
, pcre2, libdbusmenu-gtk3, libappindicator-gtk3
, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
-, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core
+, libsecret, libsoup, spice-protocol, spice-gtk, libepoxy, at-spi2-core
, openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz
# The themes here are soft dependencies; only icons are missing without them.
, gnome
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
freerdp libssh libgcrypt gnutls
pcre2 libdbusmenu-gtk3 libappindicator-gtk3
libvncserver libpthreadstubs libXdmcp libxkbcommon
- libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core
+ libsecret libsoup spice-protocol spice-gtk libepoxy at-spi2-core
openssl gnome.adwaita-icon-theme json-glib libsodium webkitgtk
harfbuzz
];
diff --git a/third_party/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/third_party/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
index 446da4cdea..7d5d414a4f 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
@@ -4,13 +4,13 @@
mkDerivation rec {
pname = "seafile-client";
- version = "8.0.3";
+ version = "8.0.5";
src = fetchFromGitHub {
owner = "haiwen";
repo = "seafile-client";
rev = "v${version}";
- sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
+ sha256 = "1p9wkvnr3km829gy84b1w1pv72pany5vr3r7ydz1c0aqrp0snfhx";
};
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 greizgh ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix b/third_party/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
index 40cf26962a..ed8a86bc9d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix b/third_party/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
index 3b5742ec24..5bcbac74ca 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -3,6 +3,7 @@
, autoconf
, automake
, fetchFromGitHub
+, fetchpatch
, libpcap
, ncurses
, openssl
@@ -20,6 +21,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-92wPRDFSoIOYFv3XKdsuYH8j3D8kXyg++q6VpIIMGDg=";
};
+ patches = [
+ # Pull fix pending upstream inclusion for ncurses-6.3 support:
+ # https://github.com/irontec/sngrep/pull/382
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/irontec/sngrep/commit/d09e1c323dbd7fc899e8985899baec568f045601.patch";
+ sha256 = "sha256-nY5i3WQh/oKboEAh4wvxF5Imf2BHYEKdFj+WF1M3SSA=";
+ })
+ ];
+
nativeBuildInputs = [
autoconf
automake
diff --git a/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index 50a28b5998..c5dc39c69d 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt -> qt5 != null;
with lib;
let
- version = "3.4.9";
+ version = "3.4.10";
variant = if withQt then "qt" else "cli";
in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
- sha256 = "084nv4fbgpxsf6b6cfi6cinn8l3wsbn0g8lsd7p2aifjkf15wln6";
+ sha256 = "sha256-iqfvSkSuYruNtGPPdh4swDuXMF4Od+1b5T+oNykYfO8=";
};
cmakeFlags = [
@@ -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/third_party/nixpkgs/pkgs/applications/networking/soju/default.nix b/third_party/nixpkgs/pkgs/applications/networking/soju/default.nix
index 5940b7cb19..f52ee1a8bb 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/soju/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index 8022c48a5c..f9fbb071b0 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/third_party/nixpkgs/pkgs/applications/networking/syncthing/default.nix
index 261a996987..d507dbc35b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/syncthing/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -4,16 +4,16 @@ let
common = { stname, target, postInstall ? "" }:
buildGoModule rec {
pname = stname;
- version = "1.18.3";
+ version = "1.18.4";
src = fetchFromGitHub {
owner = "syncthing";
repo = "syncthing";
rev = "v${version}";
- sha256 = "sha256-wc4+j2kTSwZsxIdJHmznkNIq436p0yNrskchuEJtL5E=";
+ sha256 = "14vq14gfqlqi1gg1psq9gs2i0ki6xlcfrjfcxi148hpaf38ly7pw";
};
- vendorSha256 = "sha256-klbAVOHLefxG33zpEYFlPezrKrXfuWOaE+UnIsu462M=";
+ vendorSha256 = "0qzbp35j49z52fd67ffznlmfpv1xcn0i3sbwvx3gqyfbw5ac0mlj";
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix b/third_party/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix
new file mode 100644
index 0000000000..990e969151
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, lib, qt5, fetchurl, autoPatchelfHook, dpkg, glibc, cpio, xar, undmg, gtk3, pango }:
+let
+ pname = "synology-drive-client";
+ buildNumber = "12682";
+ version = "3.0.2";
+ baseUrl = "https://global.download.synology.com/download/Utility/SynologyDriveClient";
+ meta = with lib; {
+ description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server.";
+ homepage = "https://www.synology.com/en-global/dsm/feature/drive";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ jcouyang ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+
+ linux = qt5.mkDerivation {
+ inherit pname version;
+
+ src = fetchurl {
+ url = "${baseUrl}/${version}-${buildNumber}/Ubuntu/Installer/x86_64/synology-drive-client-${buildNumber}.x86_64.deb";
+ sha256 = "19fd2r39lb7bb6vkxfxyq0gp3l7pk5wy9fl0r7qwhym2jpi8yv6l";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook dpkg ];
+
+ buildInputs = [ glibc gtk3 pango ];
+
+ unpackPhase = ''
+ mkdir -p $out
+ dpkg -x $src $out
+ rm -rf $out/usr/lib/nautilus
+ rm -rf $out/opt/Synology/SynologyDrive/package/cloudstation/icon-overlay
+ '';
+
+ installPhase = ''
+ cp -av $out/usr/* $out
+ rm -rf $out/usr
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ substituteInPlace $out/bin/synology-drive --replace /opt $out/opt
+ '';
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchurl {
+ url = "${baseUrl}/${version}-${buildNumber}/Mac/Installer/synology-drive-client-${buildNumber}.dmg";
+ sha256 = "1mlv8gxzivgxm59mw1pd63yq9d7as79ihm7166qyy0h0b0m04q2m";
+ };
+
+ nativeBuildInputs = [ cpio xar undmg ];
+
+ postUnpack = ''
+ xar -xf 'Install Synology Drive Client.pkg'
+ cd synology-drive.installer.pkg
+ gunzip -dc Payload | cpio -i
+ '';
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ mkdir -p $out/Applications/
+ cp -R 'Synology Drive Client.app' $out/Applications/
+ '';
+ };
+in if stdenv.isDarwin then darwin else linux
diff --git a/third_party/nixpkgs/pkgs/applications/networking/synology-drive/default.nix b/third_party/nixpkgs/pkgs/applications/networking/synology-drive/default.nix
new file mode 100644
index 0000000000..20b0f1168c
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/networking/synology-drive/default.nix
@@ -0,0 +1,45 @@
+{ lib, mkDerivation, fetchurl, autoPatchelfHook, dpkg, glibc, gnome }:
+
+mkDerivation rec {
+ pname = "synology-drive";
+ subVersion = "12674";
+ version = "3.0.1-${subVersion}";
+
+ src = fetchurl {
+ url = "https://global.download.synology.com/download/Utility/SynologyDriveClient/${version}/Ubuntu/Installer/x86_64/synology-drive-client-${subVersion}.x86_64.deb";
+ sha256 = "1yyv6zgszsym22kf4jvlan7n9lw09fw24fyrh7c8pzbb2029gp8a";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook dpkg ];
+
+ buildInputs = [ glibc gnome.nautilus ];
+
+ unpackPhase = ''
+ mkdir -p $out
+ dpkg -x $src $out
+ '';
+
+ installPhase = ''
+ # synology-drive executable
+ cp -av $out/usr/* $out
+ rm -rf $out/usr
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ substituteInPlace $out/bin/synology-drive --replace /opt $out/opt
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.synology.com/";
+ description = "Synchronize files between client and Synology NAS.";
+ longDescription = ''
+ Drive for PC, the desktop utility of the DSM add-on package.
+ Drive, allows you to sync and share files owned by you or shared by others between a centralized Synology NAS and multiple client computers.
+ '';
+ license = licenses.unfree;
+ maintainers = with maintainers; [ MoritzBoehme ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/tmpmail/default.nix b/third_party/nixpkgs/pkgs/applications/networking/tmpmail/default.nix
index 433c6cf6fc..4deada8d7b 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/tmpmail/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/tmpmail/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "tmpmail";
- version = "unstable-2021-02-10";
+ version = "1.1.4";
src = fetchFromGitHub {
owner = "sdushantha";
repo = "tmpmail";
- rev = "150b32083d36006cf7f496e112715ae12ee87727";
- sha256 = "sha256-yQ9/UUxBTEXK5z3f+tvVRUzIGrAnrqurQ0x56Ad7RKE=";
+ rev = "v${version}";
+ sha256 = "sha256-Rcu1qNmUZhMRvPiaWrDlzLtGksv09XBiF2GJUxXKs1Y=";
};
dontConfigure = true;
@@ -28,6 +28,6 @@ stdenvNoCC.mkDerivation rec {
homepage = "https://github.com/sdushantha/tmpmail";
description = "A temporary email right from your terminal written in POSIX sh ";
license = licenses.mit;
- maintainers = [ maintainers.legendofmiracles ];
+ maintainers = [ maintainers.lom ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/tsung/default.nix b/third_party/nixpkgs/pkgs/applications/networking/tsung/default.nix
index 346fd17525..a811d7c73e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/tsung/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/tsung/default.nix
@@ -1,25 +1,34 @@
-{ fetchurl, stdenv, lib, makeWrapper,
- erlang,
- python2, python2Packages,
- perlPackages,
- gnuplot }:
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, erlang
+, python3
+, python3Packages
+, perlPackages
+, gnuplot
+}:
stdenv.mkDerivation rec {
pname = "tsung";
version = "1.7.0";
+
src = fetchurl {
url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz";
sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
};
- nativeBuildInputs = [ makeWrapper ];
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
propagatedBuildInputs = [
erlang
gnuplot
perlPackages.perl
perlPackages.TemplateToolkit
- python2
- python2Packages.matplotlib
+ python3
+ python3Packages.matplotlib
];
@@ -43,8 +52,8 @@ stdenv.mkDerivation rec {
can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL,
AMQP, MQTT, LDAP and Jabber/XMPP servers.
'';
- license = licenses.gpl2;
- maintainers = [ maintainers.uskudnik ];
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ uskudnik ];
platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/third_party/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
index a5edbac135..8acd862053 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/zerobin/default.nix b/third_party/nixpkgs/pkgs/applications/networking/zerobin/default.nix
index 16a52d6704..56d5274751 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/zerobin/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/networking/znc/modules.nix b/third_party/nixpkgs/pkgs/applications/networking/znc/modules.nix
index 562372b1bb..1620c2878e 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/znc/modules.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/znc/modules.nix
@@ -1,25 +1,29 @@
{ lib, stdenv, fetchFromGitHub, znc }:
let
- zncDerivation = a@{
- pname, src, module_name,
- buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp",
- installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so", ...
- } : stdenv.mkDerivation (a // {
- inherit buildPhase;
- inherit installPhase;
+ zncDerivation =
+ a@{ pname
+ , src
+ , module_name
+ , buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp"
+ , installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so"
+ , ...
+ }: stdenv.mkDerivation (a // {
+ inherit buildPhase;
+ inherit installPhase;
- buildInputs = znc.buildInputs;
+ buildInputs = znc.buildInputs;
- meta = a.meta // { platforms = lib.platforms.unix; };
- passthru.module_name = module_name;
- });
+ meta = a.meta // { platforms = lib.platforms.unix; };
+ passthru.module_name = module_name;
+ });
-in {
+in
+{
backlog = zncDerivation rec {
pname = "znc-backlog";
- version = "git-2017-06-13";
+ version = "unstable-2017-06-13";
module_name = "backlog";
src = fetchFromGitHub {
@@ -39,14 +43,14 @@ in {
clientbuffer = zncDerivation rec {
pname = "znc-clientbuffer";
- version = "git-2020-04-24";
+ version = "unstable-2021-05-30";
module_name = "clientbuffer";
src = fetchFromGitHub {
owner = "CyberShadow";
repo = "znc-clientbuffer";
- rev = "2e32d508aa975c0a307d09575a0198f8c56c11fa";
- sha256 = "1jaspnrbv3pzsnbysqygc8s8g3q07zx5nlrdpgwv9j8aryg0pcnh";
+ rev = "9a7465b413b53408f5d7af86e84b1d08efb6bec0";
+ sha256 = "0a3f4j6s5j7p53y42zrgpqyl2zm0jxb69lp24j6mni3licigh254";
};
meta = with lib; {
@@ -59,7 +63,7 @@ in {
clientaway = zncDerivation rec {
pname = "znc-clientaway";
- version = "git-2017-04-28";
+ version = "unstable-2017-04-28";
module_name = "clientaway";
src = fetchFromGitHub {
@@ -79,7 +83,7 @@ in {
fish = zncDerivation rec {
pname = "znc-fish";
- version = "git-2017-06-26";
+ version = "unstable-2017-06-26";
module_name = "fish";
src = fetchFromGitHub {
@@ -99,7 +103,7 @@ in {
ignore = zncDerivation rec {
pname = "znc-ignore";
- version = "git-2017-04-28";
+ version = "unstable-2017-04-28";
module_name = "ignore";
src = fetchFromGitHub {
@@ -139,7 +143,7 @@ in {
playback = zncDerivation rec {
pname = "znc-playback";
- version = "git-2015-08-04";
+ version = "unstable-2015-08-04";
module_name = "playback";
src = fetchFromGitHub {
@@ -159,7 +163,7 @@ in {
privmsg = zncDerivation rec {
pname = "znc-privmsg";
- version = "git-2015-02-22";
+ version = "unstable-2015-02-22";
module_name = "privmsg";
src = fetchFromGitHub {
@@ -177,7 +181,7 @@ in {
push = zncDerivation rec {
pname = "znc-push";
- version = "git-2016-10-12";
+ version = "unstable-2016-10-12";
module_name = "push";
src = fetchFromGitHub {
diff --git a/third_party/nixpkgs/pkgs/applications/office/agenda/default.nix b/third_party/nixpkgs/pkgs/applications/office/agenda/default.nix
index c42052e5f7..25f394e33f 100644
--- a/third_party/nixpkgs/pkgs/applications/office/agenda/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/antiword/default.nix b/third_party/nixpkgs/pkgs/applications/office/antiword/default.nix
index f0aa323554..5da7d84905 100644
--- a/third_party/nixpkgs/pkgs/applications/office/antiword/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/antiword/default.nix
@@ -1,13 +1,11 @@
{ lib, fetchurl, stdenv }:
-let
- name = "antiword-0.37";
-in
-stdenv.mkDerivation {
- inherit name;
+stdenv.mkDerivation rec{
+ pname = "antiword";
+ version = "0.37";
src = fetchurl {
- url = "http://www.winfield.demon.nl/linux/${name}.tar.gz";
+ url = "http://www.winfield.demon.nl/linux/antiword-${version}.tar.gz";
sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
};
diff --git a/third_party/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix b/third_party/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
index 351609d8c0..aee809eb82 100644
--- a/third_party/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
@@ -13,13 +13,13 @@ in
stdenv.mkDerivation rec {
pname = "beamerpresenter";
- version = "0.2.0";
+ version = "0.2.1";
src = fetchFromGitHub {
owner = "stiglers-eponym";
repo = "BeamerPresenter";
rev = "v${version}";
- sha256 = "10i5nc5b5syaqvsixam4lmfiz3b5cphbjfgfqavi5jilq769792a";
+ sha256 = "sha256-+ZxllYL2wco4bG2pqInIbL9qfOoqoUJJUReqDyEBRcI=";
};
nativeBuildInputs = [ qmake installShellFiles wrapQtAppsHook ];
@@ -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/third_party/nixpkgs/pkgs/applications/office/beancount/bean-add.nix b/third_party/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
index ba3afbff94..1d5bafbdb4 100644
--- a/third_party/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, python3Packages }:
stdenv.mkDerivation {
- name = "bean-add-2018-01-08";
+ pname = "bean-add";
+ version = "unstable-2018-01-08";
src = fetchFromGitHub {
owner = "simon-v";
diff --git a/third_party/nixpkgs/pkgs/applications/office/clockify/default.nix b/third_party/nixpkgs/pkgs/applications/office/clockify/default.nix
new file mode 100644
index 0000000000..37afa6cc22
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/clockify/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, lib, fetchurl, dpkg, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+ pname = "clockify";
+ version = "2.0.3";
+
+ src = fetchurl {
+ url = "https://web.archive.org/web/20211118160803/https://clockify-resources.s3.eu-central-1.amazonaws.com/downloads/Clockify_Setup.deb";
+ sha256 = "sha256-eVZ3OqM1eoWfST7Qu9o8VmLm8ntD+ETf/0aes6RY4Y8=";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ makeWrapper
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv usr $out
+ mv opt $out
+
+ substituteInPlace $out/share/applications/clockify.desktop \
+ --replace "/opt/Clockify" $out/bin
+
+ makeWrapper ${electron}/bin/electron $out/bin/clockify \
+ --add-flags $out/opt/Clockify/resources/app.asar
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Free time tracker and timesheet app that lets you track work hours across projects";
+ homepage = "https://clockify.me";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ wolfangaukang ];
+ platforms = [ "x86_64-linux" ];
+
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/office/elementary-planner/default.nix b/third_party/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
index 550316b82c..c0cdfd75d9 100644
--- a/third_party/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/hledger-check-fancyassertions/default.nix b/third_party/nixpkgs/pkgs/applications/office/hledger-check-fancyassertions/default.nix
index ed38bc29fa..3b0b1df164 100644
--- a/third_party/nixpkgs/pkgs/applications/office/hledger-check-fancyassertions/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/hledger-check-fancyassertions/default.nix
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec {
"hledger-check-fancyassertions"
{
libraries = with haskellPackages; [
- base base-compat base-compat-batteries filepath hledger-lib_1_23
+ base base-compat base-compat-batteries filepath hledger-lib_1_24
megaparsec microlens optparse-applicative string-qq text time
transformers
];
diff --git a/third_party/nixpkgs/pkgs/applications/office/ib/controller/default.nix b/third_party/nixpkgs/pkgs/applications/office/ib/controller/default.nix
index 0815dfc898..db0e3c5573 100644
--- a/third_party/nixpkgs/pkgs/applications/office/ib/controller/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/ib/controller/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchurl, unzip, jdk, ib-tws, xpra }:
+{ lib, stdenv, fetchFromGitHub, unzip, jdk, ib-tws, xpra }:
stdenv.mkDerivation rec {
version = "2.14.0";
pname = "ib-controller";
- src = fetchurl {
- url = "https://github.com/ib-controller/ib-controller/archive/${version}.tar.gz";
- sha256 = "17a8bcgg9z3b4y38k035hm2lgvhmf8srlz59c7n2q3fdw2i95i68";
+ src = fetchFromGitHub {
+ owner = "ib-controller";
+ repo = "ib-controller";
+ rev = version;
+ sha256 = "sha256-R175CKb3uErjBNe73HEFMI+bNmmuH2nWGraCSh5bXwc=";
};
- phases = [ "unpackPhase" "installPhase" ];
-
nativeBuildInputs = [ unzip ];
buildInputs = [ jdk ib-tws ];
@@ -150,7 +150,7 @@ stdenv.mkDerivation rec {
fi
EOF
chmod u+x $out/bin/ib-gw-c
- '';
+ '';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/office/jabref/default.nix b/third_party/nixpkgs/pkgs/applications/office/jabref/default.nix
index b87e74c256..0b4ce74cdf 100644
--- a/third_party/nixpkgs/pkgs/applications/office/jabref/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/kalendar/default.nix b/third_party/nixpkgs/pkgs/applications/office/kalendar/default.nix
new file mode 100644
index 0000000000..b941553cba
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/kalendar/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, makeWrapper
+
+, qtbase
+, qtquickcontrols2
+, qtsvg
+, qtlocation
+, qtdeclarative
+
+, kirigami2
+, kdbusaddons
+, ki18n
+, kcalendarcore
+, kconfigwidgets
+, kwindowsystem
+, kcoreaddons
+, kcontacts
+, kitemmodels
+, kxmlgui
+, knotifications
+, kiconthemes
+, kservice
+, kmime
+, kpackage
+, eventviews
+, calendarsupport
+
+, akonadi
+, akonadi-contacts
+, akonadi-calendar-tools
+, kdepim-runtime
+}:
+
+mkDerivation rec {
+ pname = "kalendar";
+ version = "0.3.1";
+
+ src = fetchFromGitLab {
+ domain = "invent.kde.org";
+ owner = "pim";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-foG8j/MRbDZyzM9KmxEARfWUQXMz8ylQgersE1/gtnQ=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ makeWrapper
+ ];
+
+ buildInputs = [
+ qtbase
+ qtquickcontrols2
+ qtsvg
+ qtlocation
+ qtdeclarative
+
+ kirigami2
+ kdbusaddons
+ ki18n
+ kcalendarcore
+ kconfigwidgets
+ kwindowsystem
+ kcoreaddons
+ kcontacts
+ kitemmodels
+ kxmlgui
+ knotifications
+ kiconthemes
+ kservice
+ kmime
+ kpackage
+ eventviews
+ calendarsupport
+
+ akonadi-contacts
+ akonadi-calendar-tools
+ ];
+
+ propagatedUserEnvPkgs = [ akonadi kdepim-runtime ];
+
+ meta = with lib; {
+ description = "A calendar application using Akonadi to sync with external services (Nextcloud, GMail, ...)";
+ homepage = "https://invent.kde.org/pim/kalendar/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ chuangzhu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/office/keepnote/default.nix b/third_party/nixpkgs/pkgs/applications/office/keepnote/default.nix
index 14f48da223..1ff88d49d2 100644
--- a/third_party/nixpkgs/pkgs/applications/office/keepnote/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/keepnote/default.nix
@@ -1,11 +1,12 @@
{ lib, fetchurl, python2Packages }:
-python2Packages.buildPythonApplication {
- name = "keepnote-0.7.8";
+python2Packages.buildPythonApplication rec {
+ pname = "keepnote";
+ version = "0.7.8";
namePrefix = "";
src = fetchurl {
- url = "http://keepnote.org/download/keepnote-0.7.8.tar.gz";
+ url = "http://keepnote.org/download/keepnote-${version}.tar.gz";
sha256 = "0nhkkv1n0lqf3zn17pxg5cgryv1wwlj4hfmhixwd76rcy8gs45dh";
};
diff --git a/third_party/nixpkgs/pkgs/applications/office/khronos/default.nix b/third_party/nixpkgs/pkgs/applications/office/khronos/default.nix
index f319b419fb..7e36529e5f 100644
--- a/third_party/nixpkgs/pkgs/applications/office/khronos/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/kitsas/default.nix b/third_party/nixpkgs/pkgs/applications/office/kitsas/default.nix
index e8d010aee2..e7580f1dc5 100644
--- a/third_party/nixpkgs/pkgs/applications/office/kitsas/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/kitsas/default.nix
@@ -1,44 +1,39 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, qtsvg, qtcreator, poppler, libzip, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, qmake, qtbase, qtsvg, poppler, libzip, pkg-config, wrapQtAppsHook }:
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "kitsas";
- version = "3.0";
+ version = "3.1.1";
src = fetchFromGitHub {
owner = "artoh";
repo = "kitupiikki";
rev = "v${version}";
- sha256 = "sha256-UH2bFJZd83APRjlv6JR+Uy+ng4DWnnLmavAgjgSOiRo=";
+ sha256 = "sha256-nmlGLrVsTQawYHNgaax9EiutL4xgFdOD34Q4/rnB/D0=";
};
- nativeBuildInputs = [ pkg-config ];
+ # QList::swapItemsAt was introduced in Qt 5.13
+ patches = lib.optional (lib.versionOlder qtbase.version "5.13") ./qt-512.patch;
- buildInputs = [ qmake qtsvg poppler libzip ];
+ nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ];
+
+ buildInputs = [ qtsvg poppler libzip ];
# We use a separate build-dir as otherwise ld seems to get confused between
# directory and executable name on buildPhase.
preConfigure = ''
- mkdir build-linux
- cd build-linux
+ mkdir build && cd build
'';
- qmakeFlags = [
- "../kitsas/kitsas.pro"
- "-spec"
- "linux-g++"
- "CONFIG+=release"
- ];
+ qmakeFlags = [ "../kitsas/kitsas.pro" ];
- preFixup = ''
- make clean
- rm Makefile
- '';
-
- installPhase = ''
- mkdir -p $out/bin $out/share/applications
- cp kitsas $out/bin
- cp $src/kitsas.png $out/share/applications
- cp $src/kitsas.desktop $out/share/applications
+ installPhase = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ mv kitsas.app $out/Applications
+ '' else ''
+ install -Dm755 kitsas -t $out/bin
+ install -Dm644 ../kitsas.svg -t $out/share/icons/hicolor/scalable/apps
+ install -Dm644 ../kitsas.png -t $out/share/icons/hicolor/256x256/apps
+ install -Dm644 ../kitsas.desktop -t $out/share/applications
'';
meta = with lib; {
@@ -46,6 +41,6 @@ mkDerivation rec {
description = "An accounting tool suitable for Finnish associations and small business";
maintainers = with maintainers; [ gspia ];
license = licenses.gpl3Plus;
- platforms = platforms.linux;
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/office/kitsas/qt-512.patch b/third_party/nixpkgs/pkgs/applications/office/kitsas/qt-512.patch
new file mode 100644
index 0000000000..b225b93310
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/kitsas/qt-512.patch
@@ -0,0 +1,24 @@
+diff --git i/kitsas/apuri/siirtoapuri.cpp w/kitsas/apuri/siirtoapuri.cpp
+index 9a2c51f3..9565200f 100644
+--- i/kitsas/apuri/siirtoapuri.cpp
++++ w/kitsas/apuri/siirtoapuri.cpp
+@@ -25,6 +25,7 @@
+ #include "db/tositetyyppimodel.h"
+ #include "tiliote/tiliotekirjaaja.h"
+
++#include
+ #include
+
+ SiirtoApuri::SiirtoApuri(QWidget *parent, Tosite *tosite) :
+@@ -361,8 +362,9 @@ void SiirtoApuri::laskunmaksu()
+ TositeVienti eka = lista.at(0).toMap();
+ tosite()->asetaPvm(eka.pvm());
+ tosite()->asetaOtsikko( eka.selite() );
+- if( eka.kreditEuro() )
+- lista.swapItemsAt(0,1);
++ if( eka.kreditEuro() ) {
++ qSwap(lista.begin()[0], lista.begin()[1]);
++ }
+ tosite()->viennit()->asetaViennit(lista);
+ reset();
+
diff --git a/third_party/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/default.nix
index abfd223fd0..8572ff15c1 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/default.nix
+++ b/third_party/nixpkgs/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, jre_minimal
, openssl, gperf, cppunit, poppler, util-linux
, librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
@@ -12,7 +12,7 @@
, libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
, librevenge, libe-book, libmwaw, glm, gst_all_1
, gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
-, gnome, glib, ncurses, epoxy, gpgme
+, gnome, glib, ncurses, libepoxy, gpgme
, langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "zh-CN" ]
, withHelp ? true
, kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
@@ -24,6 +24,10 @@
assert builtins.elem variant [ "fresh" "still" ];
let
+ jre' = jre_minimal.override {
+ modules = [ "java.base" "java.desktop" ];
+ };
+
importVariant = f: import (./. + "/src-${variant}/${f}");
primary-src = importVariant "primary.nix" { inherit fetchurl; };
@@ -78,6 +82,8 @@ in (mkDrv rec {
tar -xf ${srcs.translations}
'';
+ patches = [ ./skip-failed-test-with-icu70.patch ];
+
### QT/KDE
#
# We have to resort to the ugly patching of configure.ac as it assumes that
@@ -310,21 +316,19 @@ 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"
"--enable-dbus"
"--enable-release-build"
"--enable-epm"
- "--with-jdk-home=${jdk.home}"
"--with-ant-home=${ant}/lib/ant"
"--with-system-cairo"
"--with-system-libs"
"--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 +369,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"
@@ -379,7 +382,7 @@ in (mkDrv rec {
'';
nativeBuildInputs = [
- gdb fontforge autoconf automake bison pkg-config libtool
+ gdb fontforge autoconf automake bison pkg-config libtool jdk
] ++ lib.optional (!kdeIntegration) wrapGAppsHook
++ lib.optional kdeIntegration wrapQtAppsHook;
@@ -387,16 +390,16 @@ in (mkDrv rec {
[ ant ArchiveZip boost box2d cairo clucene_core
IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
freetype getopt gperf gtk3
- hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
+ hunspell icu jre' lcms libcdr libexttextcat unixODBC libjpeg
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
libXaw libXext libXi libXinerama libxml2 libxslt libXtst
libXdmcp libpthreadstubs libGLU libGL mythes
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
+ librevenge libe-book libmwaw glm ncurses libepoxy
libodfgen CoinMP librdf_rasqal gnome.adwaita-icon-theme gettext
]
++ (with gst_all_1; [
@@ -407,7 +410,8 @@ in (mkDrv rec {
++ lib.optional kdeIntegration [ qtbase qtx11extras kcoreaddons kio ];
passthru = {
- inherit srcs jdk;
+ inherit srcs;
+ jdk = jre';
};
requiredSystemFeatures = [ "big-parallel" ];
diff --git a/third_party/nixpkgs/pkgs/applications/office/libreoffice/skip-failed-test-with-icu70.patch b/third_party/nixpkgs/pkgs/applications/office/libreoffice/skip-failed-test-with-icu70.patch
new file mode 100644
index 0000000000..d3ae91835a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/libreoffice/skip-failed-test-with-icu70.patch
@@ -0,0 +1,29 @@
+--- a/i18npool/qa/cppunit/test_breakiterator.cxx
++++ b/i18npool/qa/cppunit/test_breakiterator.cxx
+@@ -35,7 +35,7 @@ public:
+ void testWeak();
+ void testAsian();
+ void testThai();
+-#if (U_ICU_VERSION_MAJOR_NUM > 51)
++#if (U_ICU_VERSION_MAJOR_NUM > 51 && U_ICU_VERSION_MAJOR_NUM < 70)
+ void testLao();
+ #ifdef TODO
+ void testNorthernThai();
+@@ -52,7 +52,7 @@ public:
+ CPPUNIT_TEST(testWeak);
+ CPPUNIT_TEST(testAsian);
+ CPPUNIT_TEST(testThai);
+-#if (U_ICU_VERSION_MAJOR_NUM > 51)
++#if (U_ICU_VERSION_MAJOR_NUM > 51 && U_ICU_VERSION_MAJOR_NUM < 70)
+ CPPUNIT_TEST(testLao);
+ #ifdef TODO
+ CPPUNIT_TEST(testKhmer);
+@@ -843,7 +843,7 @@ void TestBreakIterator::testAsian()
+ }
+ }
+
+-#if (U_ICU_VERSION_MAJOR_NUM > 51)
++#if (U_ICU_VERSION_MAJOR_NUM > 51 && U_ICU_VERSION_MAJOR_NUM < 70)
+ //A test to ensure that our Lao word boundary detection is useful
+ void TestBreakIterator::testLao()
+ {
diff --git a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
index bbabd4e70b..9fdff0766b 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/third_party/nixpkgs/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";
@@ -56,11 +49,11 @@
md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
}
{
- name = "bzip2-1.0.6.tar.gz";
- url = "https://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
- sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
- md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
- md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+ name = "bzip2-1.0.8.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/bzip2-1.0.8.tar.gz";
+ sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269";
+ md5 = "";
+ md5name = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269-bzip2-1.0.8.tar.gz";
}
{
name = "cairo-1.16.0.tar.xz";
@@ -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.79.1.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/curl-7.79.1.tar.xz";
+ sha256 = "0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689";
md5 = "";
- md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
+ md5name = "0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689-curl-7.79.1.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";
@@ -672,18 +665,18 @@
md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
}
{
- name = "openldap-2.4.45.tgz";
- url = "https://dev-www.libreoffice.org/src/openldap-2.4.45.tgz";
- sha256 = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824";
+ name = "openldap-2.4.59.tgz";
+ url = "https://dev-www.libreoffice.org/src/openldap-2.4.59.tgz";
+ sha256 = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34";
md5 = "";
- md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
+ md5name = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34-openldap-2.4.59.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";
@@ -735,25 +721,25 @@
md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz";
}
{
- name = "postgresql-13.1.tar.bz2";
- url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
- sha256 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f";
+ 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 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
+ md5name = "6e2fcef66ec8c44625f94292ccf8af9f1d918b410d5aa69c274ce67387967b30-poppler-data-0.4.10.tar.gz";
}
{
- name = "Python-3.8.8rc1.tar.xz";
- url = "https://dev-www.libreoffice.org/src/Python-3.8.8rc1.tar.xz";
- sha256 = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6";
+ name = "postgresql-13.5.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/postgresql-13.5.tar.bz2";
+ sha256 = "9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3";
md5 = "";
- md5name = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6-Python-3.8.8rc1.tar.xz";
+ md5name = "9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3-postgresql-13.5.tar.bz2";
}
{
- 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/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix
index 193b2cd763..1e0ee64bd1 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index dfc680e343..684383980b 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -7,8 +7,8 @@ rec {
};
major = "7";
- minor = "1";
- patch = "5";
+ minor = "2";
+ patch = "3";
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 = "sha256-VslzdJVtmMjvzW1YdxwJUMimQe2E/WTbZjgohMTDtFE=";
};
# FIXME rename
translations = fetchSrc {
name = "translations";
- sha256 = "0nf5s012l7mkpd1srvijl9q6x8f7svm6i84bj75dwyvipkg40rxq";
+ sha256 = "sha256-B/UVlPyzL7M3PpQwS63huRtti1VR+OaI2nd+T1IESOw=";
};
# 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 = "sha256-CH4URClK/lq0nqN6LHjAVcKjkADol5AX3WuyAl0srnk=";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
index 19dee4e1f1..990eeb329a 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
index 110a52ed9f..186f4b17d6 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
+++ b/third_party/nixpkgs/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 = attrs.patches or [] ++ [ ../xdg-open-brief.patch ]; # drop this when switching to 7.2
}
diff --git a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
index d42f31bff3..9ce1d26c14 100644
--- a/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
@@ -7,8 +7,8 @@ rec {
};
major = "7";
- minor = "0";
- patch = "6";
+ minor = "1";
+ patch = "7";
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 = "0bk1dc6g8z5akrprfxxy3dm0vdmihaaxnsprxpqbqmqrqzkzg8cn";
+ sha256 = "T98ICdiAM4i9E6zis0V/Cmq5+e98mNb0bMZA//xelLo=";
};
# FIXME rename
translations = fetchSrc {
name = "translations";
- sha256 = "04f76r311hppil656ajab52x0xwqszazlgssyi5w97wak2zkmqgj";
+ sha256 = "g8skm02R5nRyF09ZbL9kJqMxRqaQ0AfpletDK3AAggk=";
};
# 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 = "jAFrO4RyONhPH3H5QW0SL8Id53bBvJ7AYxSNtLhG4rQ=";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/office/mytetra/default.nix b/third_party/nixpkgs/pkgs/applications/office/mytetra/default.nix
index cb90af5244..5ffd178b05 100644
--- a/third_party/nixpkgs/pkgs/applications/office/mytetra/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/mytetra/default.nix
@@ -1,13 +1,14 @@
-{ lib, mkDerivation, fetchurl, qmake, qtsvg, makeWrapper, xdg-utils }:
+{ lib, mkDerivation, fetchFromGitHub, qmake, qtsvg, makeWrapper, xdg-utils }:
-let
- version = "1.44.55";
-in mkDerivation {
+mkDerivation rec {
pname = "mytetra";
- inherit version;
- src = fetchurl {
- url = "https://github.com/xintrea/mytetra_dev/archive/v.${version}.tar.gz";
- sha256 = "13lmfvschm1xwr0ys2ykhs0bb83m2f39rk1jdd7zf8yxlqki4i6l";
+ version = "1.44.55";
+
+ src = fetchFromGitHub {
+ owner = "xintrea";
+ repo = "mytetra_dev";
+ rev = "v.${version}";
+ sha256 = "sha256-jQXnDoLkqbDZxfsYKPDsTOE7p/BFeA8wEznpbkRVGdw=";
};
nativeBuildInputs = [ qmake makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/office/notes-up/default.nix b/third_party/nixpkgs/pkgs/applications/office/notes-up/default.nix
index 4422968efb..1aa6f7f78e 100644
--- a/third_party/nixpkgs/pkgs/applications/office/notes-up/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix b/third_party/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix
new file mode 100644
index 0000000000..d588580a8d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, lib, fetchurl }:
+let
+ pname = "notion-app-enhanced";
+ version = "2.0.16-5";
+ name = "${pname}-v${version}";
+
+ src = fetchurl {
+ url = "https://github.com/notion-enhancer/notion-repackaged/releases/download/v${version}/Notion-Enhanced-${version}.AppImage";
+ sha256 = "1v733b4clc9sjgb72fasmbqiyz26d09f3kmvd1nqshwp5d14dajz";
+ };
+
+ appimageContents = appimageTools.extract { inherit name src; };
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+
+ install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
+
+ meta = with lib; {
+ description = "Notion Desktop builds with Notion Enhancer for Windows, MacOS and Linux.";
+ homepage = "https://github.com/notion-enhancer/desktop";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ sei40kr ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/office/qownnotes/default.nix b/third_party/nixpkgs/pkgs/applications/office/qownnotes/default.nix
index 1bd29b06d9..dfaec86902 100644
--- a/third_party/nixpkgs/pkgs/applications/office/qownnotes/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "qownnotes";
- version = "21.10.9";
+ version = "21.11.4";
src = fetchurl {
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
# Fetch the checksum of current version with curl:
# curl https://download.tuxfamily.org/qownnotes/src/qownnotes-.tar.xz.sha256
- sha256 = "2c86d66ae427bdcd16d706b982cedaa669a27340f7819fc97a8e2b24c709e74f";
+ sha256 = "3eb025873160cecd4fa35ae5079c150d4aa5dd3152fd58c5e216b592af43e8dc";
};
nativeBuildInputs = [ qmake qttools ];
diff --git a/third_party/nixpkgs/pkgs/applications/office/scribus/unstable.nix b/third_party/nixpkgs/pkgs/applications/office/scribus/unstable.nix
index 549865cd8d..6aed41d7f9 100644
--- a/third_party/nixpkgs/pkgs/applications/office/scribus/unstable.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/scribus/unstable.nix
@@ -3,6 +3,7 @@
, cmake
, cups
, fetchurl
+, fetchpatch
, fontconfig
, freetype
, harfbuzzFull
@@ -42,6 +43,19 @@ mkDerivation rec {
sha256 = "sha256-MYMWss/Hp2GR0+DT+MImUUfa6gVwFiAo4kPCktgm+M4=";
};
+ patches = [
+ # For harfbuzz >= 2.9.0
+ (fetchpatch {
+ url = "https://github.com/scribusproject/scribus/commit/1b546978bc4ea0b2a73fbe4d7cf947887e865162.patch";
+ sha256 = "sha256-noRCaN63ZYFfXmAluEYXdFPNOk3s5W3KBAsLU1Syxv4=";
+ })
+ # For harfbuzz >= 3.0
+ (fetchpatch {
+ url = "https://github.com/scribusproject/scribus/commit/68ec41169eaceea4a6e1d6f359762a191c7e61d5.patch";
+ sha256 = "sha256-xhp65qVvaof0md1jb3XHZw7uFX1RtNxPfUOaVnvZV1Y=";
+ })
+ ];
+
nativeBuildInputs = [
cmake
pkg-config
@@ -77,10 +91,11 @@ mkDerivation rec {
platforms = platforms.linux;
description = "Desktop Publishing (DTP) and Layout program for Linux";
homepage = "https://www.scribus.net";
- # There are a lot of licenses... https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
+ # There are a lot of licenses...
+ # https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
license = with licenses; [
bsd3
- gpl2
+ gpl2Plus
mit
publicDomain
];
diff --git a/third_party/nixpkgs/pkgs/applications/office/spice-up/default.nix b/third_party/nixpkgs/pkgs/applications/office/spice-up/default.nix
index b51eeb1ad9..7b72ddcf0d 100644
--- a/third_party/nixpkgs/pkgs/applications/office/spice-up/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/tagainijisho/default.nix b/third_party/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
index 18126b5e2b..7869b54a5f 100644
--- a/third_party/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
@@ -1,9 +1,11 @@
{ lib, stdenv, fetchurl, qt4, cmake, sqlite }:
-stdenv.mkDerivation {
- name = "tagainijisho-1.0.3";
+stdenv.mkDerivation rec {
+ pname = "tagainijisho";
+ version = "1.0.3";
+
src = fetchurl {
- url = "https://github.com/Gnurou/tagainijisho/releases/download/1.0.3/tagainijisho-1.0.3.tar.gz";
+ url = "https://github.com/Gnurou/tagainijisho/releases/download/${version}/tagainijisho-${version}.tar.gz";
sha256 = "0kmg1940yiqfm4vpifyj680283ids4nsij9s750nrshwxiwwbqvg";
};
@@ -14,8 +16,10 @@ stdenv.mkDerivation {
description = "A free, open-source Japanese dictionary and kanji lookup tool";
homepage = "https://www.tagaini.net/";
license = with licenses; [
- /* program */ gpl3Plus
- /* data */ cc-by-sa-30
+ /* program */
+ gpl3Plus
+ /* data */
+ cc-by-sa-30
];
platforms = platforms.linux;
maintainers = with maintainers; [ vbgl ];
diff --git a/third_party/nixpkgs/pkgs/applications/office/teapot/001-fix-warning.patch b/third_party/nixpkgs/pkgs/applications/office/teapot/001-fix-warning.patch
new file mode 100644
index 0000000000..c9ab9da94b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/teapot/001-fix-warning.patch
@@ -0,0 +1,11 @@
+diff -Naur teapot-2.3.0-old/scanner.c teapot-2.3.0-new/scanner.c
+--- teapot-2.3.0-old/scanner.c 1969-12-31 21:00:01.000000000 -0300
++++ teapot-2.3.0-new/scanner.c 2021-11-25 17:46:49.936673391 -0300
+@@ -25,6 +25,7 @@
+ #include "main.h"
+ #include "misc.h"
+ #include "scanner.h"
++#include "utf8.h"
+ /*}}}*/
+
+ /* identcode -- return number of identifier */ /*{{{*/
diff --git a/third_party/nixpkgs/pkgs/applications/office/teapot/002-remove-help.patch b/third_party/nixpkgs/pkgs/applications/office/teapot/002-remove-help.patch
new file mode 100644
index 0000000000..5bf804255b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/teapot/002-remove-help.patch
@@ -0,0 +1,49 @@
+diff -Naur teapot-2.3.0-old/CMakeLists.txt teapot-2.3.0-new/CMakeLists.txt
+--- teapot-2.3.0-old/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
++++ teapot-2.3.0-new/CMakeLists.txt 2021-11-25 18:16:06.594423660 -0300
+@@ -64,46 +64,6 @@
+ install(TARGETS fteapot DESTINATION bin)
+ endif ()
+
+-if (ENABLE_HELP)
+- add_custom_command(
+- OUTPUT teapot.tex teapot.lyx
+- MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/doc/teapot.lyx
+- VERBATIM
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/teapot.lyx teapot.lyx
+- COMMAND lyx -e pdflatex -f main teapot.lyx
+- )
+- add_custom_command(
+- OUTPUT teapot.pdf teapot.aux.old teapot.log teapot.toc
+- MAIN_DEPENDENCY teapot.tex
+- VERBATIM
+- COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old
+- COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old
+- )
+- add_custom_command(OUTPUT teapot.pdf teapot.out MAIN_DEPENDENCY teapot.tex teapot.aux.old VERBATIM COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old)
+- add_custom_command(
+- OUTPUT html/ html/index.html .latex2html-init
+- MAIN_DEPENDENCY teapot.tex
+- DEPENDS teapot.tex teapot.pdf ${CMAKE_CURRENT_SOURCE_DIR}/doc/.latex2html-init
+- VERBATIM
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/.latex2html-init .latex2html-init
+- COMMAND ${CMAKE_COMMAND} -E make_directory html
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/contents.png html/
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/next.png html/
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/next_g.png html/
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/prev.png html/
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/prev_g.png html/
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/up.png html/
+- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/up_g.png html/
+- COMMAND latex2html teapot.tex
+- )
+- add_custom_target(pdf DEPENDS teapot.pdf)
+- add_custom_target(html DEPENDS html/index.html)
+- add_custom_target(doc ALL DEPENDS teapot.pdf html/index.html)
+- install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/teapot FILES_MATCHING PATTERN *.html PATTERN *.png)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/teapot.pdf DESTINATION share/doc/teapot)
+- set(HELPFILE "${CMAKE_INSTALL_PREFIX}/share/doc/teapot/index.html")
+-endif ()
+-
+ install(FILES COPYING README DESTINATION share/doc/teapot)
+ install(FILES teapot.1 DESTINATION share/man/man1)
diff --git a/third_party/nixpkgs/pkgs/applications/office/teapot/default.nix b/third_party/nixpkgs/pkgs/applications/office/teapot/default.nix
new file mode 100644
index 0000000000..62a48cebf1
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/office/teapot/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchzip
+, cmake
+, libtirpc
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+ pname = "teapot";
+ version = "2.3.0";
+
+ src = fetchzip {
+ name = "${pname}-${version}";
+ url = "https://www.syntax-k.de/projekte/teapot/${pname}-${version}.tar.gz";
+ sha256 = "sha256-wzAwZwOMeTsuR5LhfjspGdejT6X1V8YJ8B7v9pcbxaY=";
+ };
+
+ patches = [
+ # include a local file in order to make cc happy
+ ./001-fix-warning.patch
+ # remove the ENABLE_HELP target entirely - lyx and latex are huge!
+ ./002-remove-help.patch
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ ];
+
+ buildInputs = [
+ libtirpc
+ ncurses
+ ];
+
+ # By no known reason libtirpc is not detected
+ NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+ NIX_LDFLAGS = [ "-ltirpc" ];
+
+ cmakeConfigureFlags = [
+ "-DENABLE_HELP=OFF"
+ ];
+
+ meta = with lib; {
+ homepage = "https://www.syntax-k.de/projekte/teapot/";
+ description = "Table Editor And Planner, Or: Teapot!";
+ longDescription = ''
+ Teapot is a compact spreadsheet software originally written by Michael
+ Haardt. It features a (n)curses-based text terminal interface, and
+ recently also a FLTK-based GUI.
+
+ These days, it may seem pointless having yet another spreadsheet program
+ (and one that doesn't even know how to load Microsoft Excel files). Its
+ compact size (130k for the ncurses executable, 140k for the GUI
+ executable, 300k for the self-contained Windows EXE) and the fact that it
+ can run across serial lines and SSH sessions make it an interesting choice
+ for embedded applications and as system administration utility, even more
+ so since it has a batch processing mode and comes with example code for
+ creating graphs from data sets.
+
+ Another interesting feature is its modern approach to spread sheet theory:
+ It sports true three-dimensional tables and iterative expressions. And
+ since it breaks compatibility with the usual notions of big spreadsheet
+ packages, it can also throw old syntactic cruft over board which many
+ spreadsheets still inherit from the days of VisiCalc on ancient CP/M
+ systems.
+ '';
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
+# TODO: patch/fix FLTK building
+# TODO: add documentation from
diff --git a/third_party/nixpkgs/pkgs/applications/office/timedoctor/default.nix b/third_party/nixpkgs/pkgs/applications/office/timedoctor/default.nix
index 4b97f7b3dc..41273b7780 100644
--- a/third_party/nixpkgs/pkgs/applications/office/timedoctor/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/office/todoman/default.nix b/third_party/nixpkgs/pkgs/applications/office/todoman/default.nix
index e01391519e..f1740b326d 100644
--- a/third_party/nixpkgs/pkgs/applications/office/todoman/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/todoman/default.nix
@@ -4,17 +4,16 @@
, installShellFiles
, jq
}:
-
let
inherit (python3.pkgs) buildPythonApplication fetchPypi setuptools-scm;
in
buildPythonApplication rec {
pname = "todoman";
- version = "4.0.0";
+ version = "4.0.1";
src = fetchPypi {
inherit pname version;
- sha256 = "4c4d0c6533da8d553f3dd170c9c4ff3752eb11fd7177ee391414a39adfef60ad";
+ sha256 = "ec88f8009321e77deb0ae682f7d036c139edf4175f8413011b532905c6e7d2b1";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -23,6 +22,7 @@ buildPythonApplication rec {
installShellFiles
setuptools-scm
];
+
propagatedBuildInputs = with python3.pkgs; [
atomicwrites
click
@@ -42,25 +42,37 @@ buildPythonApplication rec {
flake8-import-order
freezegun
hypothesis
- pytest
- pytest-runner
- pytest-cov
+ pytestCheckHook
glibcLocales
];
LC_ALL = "en_US.UTF-8";
+ postPatch = ''
+ substituteInPlace setup.cfg \
+ --replace " --cov=todoman --cov-report=term-missing" ""
+ '';
+
postInstall = ''
installShellCompletion --bash contrib/completion/bash/_todo
substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${jq}/bin/jq "
installShellCompletion --zsh contrib/completion/zsh/_todo
'';
- preCheck = ''
- # Remove one failing test that only checks whether the command line works
- rm tests/test_main.py
- rm tests/test_cli.py
- '';
+ disabledTests = [
+ # Testing of the CLI part and output
+ "test_color_due_dates"
+ "test_color_flag"
+ "test_default_command"
+ "test_main"
+ "test_missing_cache_dir"
+ "test_sorting_null_values"
+ "test_xdg_existant"
+ ];
+
+ pythonImportsCheck = [
+ "todoman"
+ ];
meta = with lib; {
homepage = "https://github.com/pimutils/todoman";
@@ -78,8 +90,8 @@ buildPythonApplication rec {
Todoman is part of the pimutils project
'';
+ changelog = "https://github.com/pimutils/todoman/raw/v${version}/CHANGELOG.rst";
license = licenses.isc;
maintainers = with maintainers; [ leenaars ];
- platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/third_party/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
index 5bda63b584..0cb26afe82 100644
--- a/third_party/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
+++ b/third_party/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
@@ -1,5 +1,5 @@
diff --git a/src/services/log.js b/src/services/log.js
-index 1345ce39..a9770516 100644
+index 4f29994..1e89e0a 100644
--- a/src/services/log.js
+++ b/src/services/log.js
@@ -1,14 +1,5 @@
@@ -47,7 +47,7 @@ index 1345ce39..a9770516 100644
- if (millisSinceMidnight >= DAY) {
- initLogFile();
-
-- millisSinceMidnight =- DAY;
+- millisSinceMidnight -= DAY;
- }
-
- return millisSinceMidnight;
@@ -62,3 +62,42 @@ index 1345ce39..a9770516 100644
-
console.log(str);
}
+
+@@ -83,37 +36,6 @@ function request(req, res, timeMs, responseLength = "?") {
+ `${res.statusCode} ${req.method} ${req.url} with ${responseLength} bytes took ${timeMs}ms`);
+ }
+
+-function pad(num) {
+- num = Math.floor(num);
+-
+- return num < 10 ? ("0" + num) : num.toString();
+-}
+-
+-function padMilli(num) {
+- if (num < 10) {
+- return "00" + num;
+- }
+- else if (num < 100) {
+- return "0" + num;
+- }
+- else {
+- return num.toString();
+- }
+-}
+-
+-function formatTime(millisSinceMidnight) {
+- return pad(millisSinceMidnight / HOUR)
+- + ":" + pad((millisSinceMidnight % HOUR) / MINUTE)
+- + ":" + pad((millisSinceMidnight % MINUTE) / SECOND)
+- + "." + padMilli(millisSinceMidnight % SECOND);
+-}
+-
+-function formatDate() {
+- return pad(todaysMidnight.getFullYear())
+- + "-" + pad(todaysMidnight.getMonth() + 1)
+- + "-" + pad(todaysMidnight.getDate());
+-}
+-
+ module.exports = {
+ info,
+ error,
diff --git a/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix b/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix
index 6cfdf3c8f9..0f07dd0efd 100644
--- a/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
maintainers = with maintainers; [ fliegendewurst ];
};
- version = "0.47.8";
+ version = "0.48.7";
desktopSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
- sha256 = "1vnwjiv4bidw5xspcd7d7fn8dbhvgia9ws363fs5zs48c9k2hwwz";
+ sha256 = "16clrn89mq2n30hb50y45s6qn5l7n1hj4b124wjxrkmmwpdbjwad";
};
serverSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
- sha256 = "1clgw0i3vbl8lrsjdjbn71yhim6356gm8h24831mnksb4sawhh7f";
+ sha256 = "18zwplcai4s82pdy3l30862jdl22311qh78anrjz29fm6srx1y9l";
};
in {
@@ -44,8 +44,8 @@ in {
# (they did special-case icon.png but we want the scalable svg)
# Use the version here to ensure we get any changes.
trilium_svg = fetchurl {
- url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/trilium.svg";
- sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg";
+ url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/icon.svg";
+ sha256 = "0sz3piskdlx267whx8r6afrdadn25bf0zmxplj1599zqkf7w7n0x";
};
diff --git a/third_party/nixpkgs/pkgs/applications/office/vnote/default.nix b/third_party/nixpkgs/pkgs/applications/office/vnote/default.nix
index 3519f015ff..2ba594a64a 100644
--- a/third_party/nixpkgs/pkgs/applications/office/vnote/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/vnote/default.nix
@@ -8,18 +8,24 @@
mkDerivation rec {
pname = "vnote";
- version = "3.7.0";
+ version = "3.10.1";
src = fetchFromGitHub {
owner = "vnotex";
repo = pname;
fetchSubmodules = true;
rev = "v${version}";
- sha256 = "sha256-D9/4BakXTComvGTV8F131G5PzA8LhWfNSZRBOMo5t5c=";
+ sha256 = "sha256-juLyKAq21qNCWTpyMJSMw86U/DMbw/QJCr8QwyqVclA=";
};
- nativeBuildInputs = [ qmake ];
- buildInputs = [ qtbase qtwebengine ];
+ nativeBuildInputs = [
+ qmake
+ ];
+
+ buildInputs = [
+ qtbase
+ qtwebengine
+ ];
meta = with lib; {
homepage = "https://vnotex.github.io/vnote";
diff --git a/third_party/nixpkgs/pkgs/applications/office/zk/default.nix b/third_party/nixpkgs/pkgs/applications/office/zk/default.nix
index 9da6073ff4..bfb97d88e8 100644
--- a/third_party/nixpkgs/pkgs/applications/office/zk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/zk/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "zk";
- version = "0.7.0";
+ version = "0.8.0";
src = fetchFromGitHub {
owner = "mickael-menu";
repo = "zk";
rev = "v${version}";
- sha256 = "sha256-C3/V4v8lH4F3S51egEw5d51AI0n5xzBQjwhrI64FEGA=";
+ sha256 = "sha256-lTg5jB3krZWmCn3wWoAwzqBji1AyTTTVf/BphC7Mr5s=";
};
vendorSha256 = "sha256-m7QGv8Vx776TsN7QHXtO+yl3U1D573UMZVyg1B4UeIk=";
diff --git a/third_party/nixpkgs/pkgs/applications/plasma-mobile/default.nix b/third_party/nixpkgs/pkgs/applications/plasma-mobile/default.nix
index fd9ae2a2ba..10c1f1d0e9 100644
--- a/third_party/nixpkgs/pkgs/applications/plasma-mobile/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/plasma-mobile/default.nix
@@ -75,6 +75,7 @@ let
kweather = callPackage ./kweather.nix {};
plasma-dialer = callPackage ./plasma-dialer.nix {};
plasma-phonebook = callPackage ./plasma-phonebook.nix {};
+ plasma-settings = callPackage ./plasma-settings.nix {};
spacebar = callPackage ./spacebar.nix {};
};
diff --git a/third_party/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix b/third_party/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix
new file mode 100644
index 0000000000..bcd04dadca
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+
+, cmake
+, extra-cmake-modules
+
+, kauth
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kitemmodels
+, plasma-framework
+}:
+
+mkDerivation rec {
+ pname = "plasma-settings";
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kauth
+ kconfig
+ kcoreaddons
+ kdbusaddons
+ ki18n
+ kitemmodels
+ plasma-framework
+ ];
+
+ meta = with lib; {
+ description = "Settings application for Plasma Mobile";
+ homepage = "https://invent.kde.org/plasma-mobile/plasma-settings";
+ # https://invent.kde.org/plasma-mobile/plasma-settings/-/commit/a59007f383308503e59498b3036e1483bca26e35
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ samueldr ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/radio/chirp/default.nix b/third_party/nixpkgs/pkgs/applications/radio/chirp/default.nix
index 2e4b3b30d2..b10d817d9e 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/chirp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/chirp/default.nix
@@ -4,11 +4,11 @@
}:
python2.pkgs.buildPythonApplication rec {
pname = "chirp-daily";
- version = "20210724";
+ version = "20211016";
src = fetchurl {
url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
- sha256 = "0wddzls7r0l5b8vvljnmrj5lmmp7zkzl4h73pyigyf9nbhaklybb";
+ sha256 = "13xzqnhvnw6yipv4izkq0s9ykyl9pc5ifpr1ii8xfp28ch706qyw";
};
propagatedBuildInputs = with python2.pkgs; [
diff --git a/third_party/nixpkgs/pkgs/applications/radio/csdr/default.nix b/third_party/nixpkgs/pkgs/applications/radio/csdr/default.nix
new file mode 100644
index 0000000000..9b1e75c104
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/radio/csdr/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub
+, autoreconfHook, pkg-config, fftwFloat, libsamplerate
+}:
+
+stdenv.mkDerivation rec {
+ pname = "csdr";
+ version = "0.17.1";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "1vip5a3xgskcwba3xi66zfr986xrsch9na7my818cm8vw345y57b";
+ };
+
+ patchPhase = ''
+ substituteInPlace configure.ac \
+ --replace -Wformat=0 ""
+ '';
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ ];
+
+ buildInputs = [
+ fftwFloat
+ libsamplerate
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/csdr";
+ description = "A simple DSP library and command-line tool for Software Defined Radio";
+ license = licenses.gpl3Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ astro ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/radio/dsd/default.nix b/third_party/nixpkgs/pkgs/applications/radio/dsd/default.nix
index 35a3e9f44b..46b851ec70 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/dsd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/dsd/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
tap audio and synthesize the decoded speech. Speech synthesis requires
mbelib, which is a separate package.
'';
- homepage = https://github.com/szechyjs/dsd;
+ homepage = "https://github.com/szechyjs/dsd";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ andrew-d ];
diff --git a/third_party/nixpkgs/pkgs/applications/radio/dump1090/default.nix b/third_party/nixpkgs/pkgs/applications/radio/dump1090/default.nix
index 927fa32bd5..00e5e0089c 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/dump1090/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/radio/flex-ndax/default.nix b/third_party/nixpkgs/pkgs/applications/radio/flex-ndax/default.nix
index 4d27907cdd..8be72ef3d6 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/flex-ndax/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/flex-ndax/default.nix
@@ -2,18 +2,18 @@
buildGoModule rec {
pname = "flex-ndax";
- version = "0.1-20210714.0";
+ version = "0.2-20211111.0";
src = fetchFromGitHub {
owner = "kc2g-flex-tools";
repo = "nDAX";
rev = "v${version}";
- sha256 = "16zx6kbax59rcxyz9dhq7m8yx214knz3xayna1gzb85m6maly8v8";
+ sha256 = "0m2hphj0qvgq25pfm3s76naf672ll43jv7gll8cfs7276ckg1904";
};
buildInputs = [ pulseaudio ];
- vendorSha256 = "0qn8vg84j9kp0ycn24lkaqjnnk339j3vis4bn48ia3z5vfc22gi5";
+ vendorSha256 = "1bf0iidb8ggzahy3fvxispf3g940mv6vj9wqd8i3rldc6ca2i3pf";
meta = with lib; {
homepage = "https://github.com/kc2g-flex-tools/nDAX";
diff --git a/third_party/nixpkgs/pkgs/applications/radio/gnuradio/default.nix b/third_party/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
index d92af80701..61aafb63b5 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
@@ -46,13 +46,13 @@
, pname ? "gnuradio"
, versionAttr ? {
major = "3.9";
- minor = "3";
+ minor = "4";
patch = "0";
}
}:
let
- sourceSha256 = "sha256-jVfExv1CcnlOaaj/XtnfhWAHnQsshZJ1l/zXo0uovdo=";
+ sourceSha256 = "sha256-O+37CyF0IVPdUB1e68HsaXD0T2VsOLPXOpLNlRYEXUk=";
featuresInfo = {
# Needed always
basic = {
@@ -79,6 +79,9 @@ let
native = [ doxygen ];
cmakeEnableFlag = "DOXYGEN";
};
+ man-pages = {
+ cmakeEnableFlag = "MANPAGES";
+ };
python-support = {
pythonRuntime = [ python.pkgs.six ];
native = [
@@ -269,11 +272,6 @@ stdenv.mkDerivation rec {
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
diff --git a/third_party/nixpkgs/pkgs/applications/radio/gqrx/default.nix b/third_party/nixpkgs/pkgs/applications/radio/gqrx/default.nix
index 83d2786c7b..d18fca6f91 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/gqrx/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/gqrx/default.nix
@@ -14,19 +14,23 @@
, rtl-sdr
, hackrf
, pulseaudioSupport ? true, libpulseaudio
+, portaudioSupport ? false, portaudio
}:
assert pulseaudioSupport -> libpulseaudio != null;
+assert portaudioSupport -> portaudio != null;
+# audio backends are mutually exclusive
+assert !(pulseaudioSupport && portaudioSupport);
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 = [
@@ -49,7 +53,20 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
thrift
gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
- ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
+ ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]
+ ++ lib.optionals portaudioSupport [ portaudio ];
+
+ cmakeFlags =
+ let
+ audioBackend =
+ if pulseaudioSupport
+ then "Pulseaudio"
+ else if portaudioSupport
+ then "Portaudio"
+ else "Gr-audio";
+ in [
+ "-DLINUX_AUDIO_BACKEND=${audioBackend}"
+ ];
postInstall = ''
install -vD $src/gqrx.desktop -t "$out/share/applications/"
diff --git a/third_party/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix b/third_party/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix
index 5792031c80..f10840e1be 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fftw, hackrf, libusb1 }:
stdenv.mkDerivation {
- name = "kalibrate-hackrf-unstable-20160827";
+ pname = "kalibrate-hackrf";
+ version = "unstable-2016-08-27";
# There are no tags/releases, so use the latest commit from git master.
# Currently, the latest commit is from 2016-07-03.
diff --git a/third_party/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix b/third_party/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix
index 255938b11d..4fe9ad0867 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix
@@ -1,17 +1,18 @@
-{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, fftw, rtl-sdr, libusb1 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fftw, rtl-sdr, libusb1 }:
stdenv.mkDerivation {
- name = "kalibrate-rtl-20131214";
+ pname = "kalibrate-rtl";
+ version = "unstable-2013-12-14";
- # There are no tags/releases, so use the latest commit from git master.
- # Currently, the latest commit is from 2013-12-14.
- src = fetchgit {
- url = "https://github.com/steve-m/kalibrate-rtl.git";
+ src = fetchFromGitHub {
+ owner = "steve-m";
+ repo = "kalibrate-rtl";
rev = "aae11c8a8dc79692a94ccfee39ba01e8c8c05d38";
sha256 = "1spbfflkqnw9s8317ppsf7b1nnkicqsmaqsnz1zf8i49ix70i6kn";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
+
buildInputs = [ fftw rtl-sdr libusb1 ];
meta = with lib; {
@@ -26,6 +27,6 @@ stdenv.mkDerivation {
homepage = "https://github.com/steve-m/kalibrate-rtl";
license = licenses.bsd2;
platforms = platforms.linux;
- maintainers = [ maintainers.bjornfor ];
+ maintainers = with maintainers; [ bjornfor ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/radio/openwebrx/default.nix b/third_party/nixpkgs/pkgs/applications/radio/openwebrx/default.nix
new file mode 100644
index 0000000000..928bc4168e
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/radio/openwebrx/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, buildPythonPackage, buildPythonApplication, fetchFromGitHub
+, pkg-config, cmake, setuptools
+, rtl-sdr, soapysdr-with-plugins, csdr, direwolf
+}:
+
+let
+
+ js8py = buildPythonPackage rec {
+ pname = "js8py";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "1j80zclg1cl5clqd00qqa16prz7cyc32bvxqz2mh540cirygq24w";
+ };
+
+ pythonImportsCheck = [ "js8py" "test" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/js8py";
+ description = "A library to decode the output of the js8 binary of JS8Call";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ astro ];
+ };
+ };
+
+ owrx_connector = stdenv.mkDerivation rec {
+ pname = "owrx_connector";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "0gz4nf2frrkx1mpjfjpz2j919fkc99g5lxd8lhva3lgqyisvf4yj";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ rtl-sdr
+ soapysdr-with-plugins
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/owrx_connector";
+ description = "A set of connectors that are used by OpenWebRX to interface with SDR hardware";
+ license = licenses.gpl3Only;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ astro ];
+ };
+ };
+
+in
+buildPythonApplication rec {
+ pname = "openwebrx";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "jketterl";
+ repo = pname;
+ rev = version;
+ sha256 = "0maxs07yx235xknvkbmhi2zds3vfkd66l6wz6kspz3jzl4c0v1f9";
+ };
+
+ propagatedBuildInputs = [
+ setuptools
+ csdr
+ js8py
+ soapysdr-with-plugins
+ owrx_connector
+ direwolf
+ ];
+
+ pythonImportsCheck = [ "csdr" "owrx" "test" ];
+
+ passthru = {
+ inherit js8py owrx_connector;
+ };
+
+ meta = with lib; {
+ homepage = "https://github.com/jketterl/openwebrx";
+ description = "A simple DSP library and command-line tool for Software Defined Radio";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ astro ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/radio/pothos/default.nix b/third_party/nixpkgs/pkgs/applications/radio/pothos/default.nix
index 77a7d8cf69..817013dbf3 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/pothos/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/radio/qradiolink/default.nix b/third_party/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
index 31be8f4fb8..6960eba6a5 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
@@ -14,6 +14,7 @@
, libjpeg
, libsndfile
, libftdi
+, limesuite
, protobuf
, speex
, speexdsp
@@ -21,13 +22,13 @@
gnuradio3_8.pkgs.mkDerivation rec {
pname = "qradiolink";
- version = "0.8.5-2";
+ version = "0.8.6-2";
src = fetchFromGitHub {
owner = "qradiolink";
repo = "qradiolink";
rev = version;
- sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
+ sha256 = "1694yyw0vc77m5pbc5rwl6khd8000dbrliz3q4vsa9dqnfnz1777";
};
preBuild = ''
@@ -55,6 +56,7 @@ gnuradio3_8.pkgs.mkDerivation rec {
gnuradio3_8.pkgs.osmosdr
libopus
libjpeg
+ limesuite
speex
speexdsp
gnuradio3_8.qt.qtbase
diff --git a/third_party/nixpkgs/pkgs/applications/radio/sdrangel/default.nix b/third_party/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
index 4c22d0e932..2ba3794003 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
@@ -33,13 +33,13 @@
mkDerivation rec {
pname = "sdrangel";
- version = "6.17.1";
+ version = "6.17.2";
src = fetchFromGitHub {
owner = "f4exb";
repo = "sdrangel";
rev = "v${version}";
- sha256 = "sha256-VWHFrgJVyI3CtLXUiG3/4/cRTD8jSdunbrro34yLKvs=";
+ sha256 = "sha256-sMD2JTJJlssMdXCUHdFYjEqGknhGGuG4szfnvFFN7t4=";
fetchSubmodules = false;
};
diff --git a/third_party/nixpkgs/pkgs/applications/radio/sdrpp/default.nix b/third_party/nixpkgs/pkgs/applications/radio/sdrpp/default.nix
index 2324d40032..5a993f4fc1 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/sdrpp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/sdrpp/default.nix
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
-, libX11, glfw, glew, fftwFloat, volk
+, libX11, glfw, glew, fftwFloat, volk, AppKit
# Sources
, airspy_source ? true, airspy
, airspyhf_source ? true, airspyhf
@@ -13,7 +13,7 @@
, sdrplay_source ? false, sdrplay
, soapy_source ? true, soapysdr
, spyserver_source ? true
-, plutosdr_source ? true, libiio, libad9361
+, plutosdr_source ? stdenv.isLinux, libiio, libad9361
# Sinks
, audio_sink ? true, rtaudio
, portaudio_sink ? false, portaudio
@@ -42,9 +42,12 @@ stdenv.mkDerivation rec {
hash = "sha256-g9tpWvVRMXRhPfgvOeJhX6IMouF9+tLUr9wo5r35i/c=";
};
+ patches = [ ./runtime-prefix.patch ];
+
postPatch = ''
substituteInPlace CMakeLists.txt \
- --replace "/usr" $out
+ --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"
'';
@@ -52,6 +55,7 @@ stdenv.mkDerivation rec {
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
@@ -95,13 +99,18 @@ stdenv.mkDerivation rec {
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.linux;
+ platforms = platforms.unix;
maintainers = with maintainers; [ sikmir ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/radio/sdrpp/runtime-prefix.patch b/third_party/nixpkgs/pkgs/applications/radio/sdrpp/runtime-prefix.patch
new file mode 100644
index 0000000000..55ecd8ce3e
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/radio/wsjtx/default.nix b/third_party/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
index 8dbdd5d4ff..27ce5bb07a 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
@@ -4,12 +4,12 @@
stdenv.mkDerivation rec {
pname = "wsjtx";
- version = "2.4.0";
+ version = "2.5.2";
# 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-4KSJYhfUya8nH1KTsZ7JRgh0KnKdqrgSfofsjWaX7/M=";
};
# Hamlib builds with autotools, wsjtx builds with cmake
diff --git a/third_party/nixpkgs/pkgs/applications/radio/xlog/default.nix b/third_party/nixpkgs/pkgs/applications/radio/xlog/default.nix
index 06b7c108fa..59af9a94d9 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/xlog/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix b/third_party/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
index 6b76c2de4b..3f21987661 100644
--- a/third_party/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
description = "Real-time 3D simulation of space";
changelog = "https://github.com/CelestiaProject/Celestia/releases/tag/${version}";
license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ hjones2199 ];
platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix b/third_party/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
index b716b0f2f9..beb3bd92ea 100644
--- a/third_party/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
@@ -7,8 +7,8 @@ let
in
stdenv.mkDerivation rec {
- srcVersion = "sep20a";
- version = "20200901_a";
+ srcVersion = "nov21a";
+ version = "20211101_a";
pname = "gildas";
src = fetchurl {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
# source code of the previous release to a different directory
urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
"http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
- sha256 = "9faa0b3e674b5ffe5b1aee88027d7401a46ae28cd0b306595300547605d6222a";
+ sha256 = "0fb6iqwh4hm7v7sib7sx98vxdavn3d6q2gq6y6vxg2z29g31f8g2";
};
nativeBuildInputs = [ pkg-config groff perl getopt gfortran which ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix b/third_party/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
index baf9ed7fc1..d557f32bb6 100644
--- a/third_party/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, SDL, SDL_ttf, SDL_image, libSM, libICE, libGLU, libGL, libpng, lua5, autoconf, automake }:
stdenv.mkDerivation rec {
- name = "gravit-0.5.1";
+ pname = "gravit";
+ version = "0.5.1";
src = fetchurl {
- url = "https://gravit.slowchop.com/media/downloads/${name}.tgz";
+ url = "https://gravit.slowchop.com/media/downloads/gravit-${version}.tgz";
sha256 = "14vf7zj2bgrl96wsl3f1knsggc8h9624354ajzd72l46y09x5ky7";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix b/third_party/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
index c7e76b6ad9..b7b9fbeb14 100644
--- a/third_party/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
@@ -14,11 +14,11 @@
mkDerivation rec {
pname = "kstars";
- version = "3.5.5";
+ version = "3.5.6";
src = fetchurl {
url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
- sha256 = "sha256-cD31YFBnKvEPyBQils6qJxNKagDoIi8/Znfxj/Gsa0M=";
+ sha256 = "sha256-n+fGYLzQAGS8828hr7XE9qiTMyg99L+W7VRjd9aEkrQ=";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/third_party/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
index 898885047a..f54dcb94e2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
index d0196c0e25..f6aa5e8892 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "bcftools";
- version = "1.13";
+ version = "1.14";
src = fetchurl {
url = "https://github.com/samtools/bcftools/releases/download/${version}/${pname}-${version}.tar.bz2";
- sha256 = "sha256-E7+h2ipe3aj6URlqR6C0r7P+8XUWRR5PDnhHfz3TC5A=";
+ sha256 = "sha256-t++Iron8tVZYxb6i6MuOdWsFXhOGADbWvhN1Z4KqGcs=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
index f147c0422e..b6286d11c8 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
@@ -1,11 +1,12 @@
-{lib, stdenv, fetchurl, cmake}:
+{ lib, stdenv, fetchurl, cmake }:
-stdenv.mkDerivation {
- name = "cmtk-3.3.1";
+stdenv.mkDerivation rec {
+ pname = "cmtk";
+ version = "3.3.1";
src = fetchurl {
name = "cmtk-source.tar.gz";
- url = "https://www.nitrc.org/frs/download.php/8198/CMTK-3.3.1-Source.tar.gz//?i_agree=1&download_now=1";
+ url = "https://www.nitrc.org/frs/download.php/8198/CMTK-${version}-Source.tar.gz//?i_agree=1&download_now=1";
sha256 = "1nmsga9m7vcc4y4a6zl53ra3mwlgjwdgsq1j291awkn7zr1az6qs";
};
@@ -14,13 +15,13 @@ stdenv.mkDerivation {
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
meta = with lib; {
- description = "Computational Morphometry Toolkit ";
+ description = "Computational Morphometry Toolkit ";
longDescription = ''A software toolkit for computational morphometry of
biomedical images, CMTK comprises a set of command line tools and a
back-end general-purpose library for processing and I/O'';
maintainers = with maintainers; [ tbenst ];
platforms = platforms.all;
- license = licenses.gpl3;
- homepage = "https://www.nitrc.org/projects/cmtk/";
+ license = licenses.gpl3;
+ homepage = "https://www.nitrc.org/projects/cmtk/";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
index 6224ccabb0..36dddad5db 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/biology/delly/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/delly/default.nix
index fe81ff44d2..f2e0d3a50c 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/delly/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/delly/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "delly";
- version = "0.8.7";
+ version = "0.9.1";
src = fetchFromGitHub {
owner = "dellytools";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-DWwC35r8cQbePUzppkFQlev0YZdxk2+BSrNTW/DOY3M=";
+ sha256 = "sha256-p1pryP+ktGt8OHFiASJQ3T+K94cNBG9fLxsJ2n/T+DA=";
};
buildInputs = [ zlib htslib bzip2 xz ncurses boost ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/diamond/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
index 2e11c1d8c5..4f23f3f9a8 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake, zlib }:
-stdenv.mkDerivation {
- name = "diamond-0.8.36";
+stdenv.mkDerivation rec {
+ pname = "diamond";
+ version = "0.8.36";
src = fetchurl {
- url = "https://github.com/bbuchfink/diamond/archive/v0.8.36.tar.gz";
+ url = "https://github.com/bbuchfink/diamond/archive/v${version}.tar.gz";
sha256 = "092smzzjcg51n3x4h84k52ijpz9m40ri838j9k2i463ribc3c8rh";
};
@@ -30,7 +31,7 @@ stdenv.mkDerivation {
B. Buchfink, Xie C., D. Huson,
"Fast and sensitive protein alignment using DIAMOND",
Nature Methods 12, 59-60 (2015).
- '';
+ '';
homepage = "https://github.com/bbuchfink/diamond";
license = {
fullName = "University of Tuebingen, Benjamin Buchfink";
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
index 0193703786..4ed11857a3 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, gcc, zlib, python27 }:
stdenv.mkDerivation rec {
- name = "ecopcr-0.8.0";
+ pname = "ecopcr";
+ version = "0.8.0";
src = fetchurl {
- url = "https://git.metabarcoding.org/obitools/ecopcr/uploads/6f37991b325c8c171df7e79e6ae8d080/${name}.tar.gz";
+ url = "https://git.metabarcoding.org/obitools/ecopcr/uploads/6f37991b325c8c171df7e79e6ae8d080/ecopcr-${version}.tar.gz";
sha256 = "10c58hj25z78jh0g3zcbx4890yd2qrvaaanyx8mn9p49mmyf5pk6";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/emboss/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
index 5cbcd46ee0..29669d0273 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
@@ -1,9 +1,11 @@
-{lib, stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib}:
+{ lib, stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "emboss";
+ version = "6.6.0";
-stdenv.mkDerivation {
- name = "emboss-6.6.0";
src = fetchurl {
- url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.6.0.tar.gz";
+ url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-${version}.tar.gz";
sha256 = "7184a763d39ad96bb598bfd531628a34aa53e474db9e7cac4416c2a40ab10c6e";
};
@@ -16,13 +18,13 @@ stdenv.mkDerivation {
'';
meta = {
- description = "The European Molecular Biology Open Software Suite";
+ description = "The European Molecular Biology Open Software Suite";
longDescription = ''EMBOSS is a free Open Source software analysis package
specially developed for the needs of the molecular biology (e.g. EMBnet)
user community, including libraries. The software automatically copes with
data in a variety of formats and even allows transparent retrieval of
sequence data from the web.'';
- license = lib.licenses.gpl2;
- homepage = "http://emboss.sourceforge.net/";
+ license = lib.licenses.gpl2;
+ homepage = "http://emboss.sourceforge.net/";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/fastp/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
index 2e44113f40..4dace9e63b 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "fastp";
- version = "0.23.1";
+ version = "0.23.2";
src = fetchFromGitHub {
owner = "OpenGene";
repo = "fastp";
rev = "v${version}";
- sha256 = "sha256-vRJlNtg2JabBAUaX91Y04z8MdyxEnreBAlIHn7VB+u4=";
+ sha256 = "sha256-W1mXTfxD7/gHJhao6qqbNcyM3t2cfrUYiBYPJi/O1RI=";
};
buildInputs = [ zlib libdeflate isa-l ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/genmap/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
new file mode 100644
index 0000000000..c2d1b8da7a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, which
+}:
+
+stdenv.mkDerivation rec {
+ pname = "genmap";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "cpockrandt";
+ repo = "genmap";
+ rev = "genmap-v${version}";
+ fetchSubmodules = true;
+ sha256 = "sha256-7sIKBRMNzyCrZ/c2nXkknb6a5YsXe6DRE2IFhp6AviY=";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ doCheck = true;
+ patches = [ ./gtest.patch ];
+ checkInputs = [ gtest which ];
+ preCheck = "make genmap_algo_test";
+
+ # disable benchmarks
+ preConfigure = ''
+ echo > benchmarks/CMakeLists.txt
+ '';
+
+ meta = {
+ description = "Ultra-fast computation of genome mappability";
+ license = lib.licenses.bsd3;
+ homepage = "https://github.com/cpockrandt/genmap";
+ maintainers = with lib.maintainers; [ jbedo ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch b/third_party/nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch
new file mode 100644
index 0000000000..f01d0e115e
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch
@@ -0,0 +1,30 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 67ec8f9..ed0b2e0 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -2,23 +2,14 @@
+ # GenMap tests
+ # ===========================================================================
+
+-include (ExternalProject)
+-ExternalProject_Add (googletest
+- PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest"
+- GIT_REPOSITORY "https://github.com/google/googletest.git"
+- INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}"
+- CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}"
+- GIT_TAG release-1.10.0
+- UPDATE_DISCONNECTED YES)
+
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # TODO: --coverage
+ add_executable (genmap_algo_test tests.cpp)
+-add_dependencies (genmap_algo_test googletest)
+
+ include_directories (${CMAKE_CURRENT_BINARY_DIR}/include)
+ target_link_libraries (genmap_algo_test ${SEQAN_LIBRARIES})
+-target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest.a)
+-target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest_main.a)
++target_link_libraries (genmap_algo_test -lgtest)
++target_link_libraries (genmap_algo_test -lgtest_main)
+ target_link_libraries (genmap_algo_test pthread)
+
+ add_test(NAME algo_test COMMAND genmap_algo_test)
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
index 0f83178626..2a4df9d21d 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
homepage = "http://hmmer.org/";
license = licenses.gpl3;
maintainers = [ maintainers.iimog ];
- platforms = platforms.unix;
+ # at least SSE is *required*
+ platforms = platforms.x86_64;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/iv/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/iv/default.nix
index 72cf9c86e6..ba1b91298b 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/iv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/iv/default.nix
@@ -1,32 +1,43 @@
-{ lib, stdenv, fetchurl, neuron-version
-, libX11, libXext, patchelf
+{ lib
+, stdenv
+, fetchurl
+, neuron-version
+, libX11
+, libXext
+, patchelf
}:
-stdenv.mkDerivation rec
- { name = "iv-19";
- src = fetchurl
- { url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/${name}.tar.gz";
- sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
- };
- nativeBuildInputs = [ patchelf ];
- buildInputs = [ libXext ];
- propagatedBuildInputs = [ libX11 ];
- hardeningDisable = [ "format" ];
- postInstall = ''
- for dir in $out/*; do # */
- if [ -d $dir/lib ]; then
- mv $dir/* $out # */
- rmdir $dir
- break
- fi
- done
- '' + lib.optionalString stdenv.isLinux ''
- patchelf --add-needed ${libX11}/lib/libX11.so $out/lib/libIVhines.so
- '';
- meta = with lib;
- { description = "InterViews graphical library for Neuron";
- license = licenses.bsd3;
- homepage = "http://www.neuron.yale.edu/neuron";
- platforms = platforms.all;
- };
- }
+stdenv.mkDerivation rec {
+ pname = "iv";
+ version = "19";
+
+ src = fetchurl {
+ url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/iv-${version}.tar.gz";
+ sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
+ };
+
+ nativeBuildInputs = [ patchelf ];
+ buildInputs = [ libXext ];
+ propagatedBuildInputs = [ libX11 ];
+
+ hardeningDisable = [ "format" ];
+
+ postInstall = ''
+ for dir in $out/*; do # */
+ if [ -d $dir/lib ]; then
+ mv $dir/* $out # */
+ rmdir $dir
+ break
+ fi
+ done
+ '' + lib.optionalString stdenv.isLinux ''
+ patchelf --add-needed ${libX11}/lib/libX11.so $out/lib/libIVhines.so
+ '';
+
+ meta = with lib; {
+ description = "InterViews graphical library for Neuron";
+ license = licenses.bsd3;
+ homepage = "http://www.neuron.yale.edu/neuron";
+ platforms = platforms.all;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
index e0b122778d..10bfb633f4 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
@@ -1,17 +1,17 @@
{ stdenv, lib, fetchFromGitHub, python, makeWrapper
, eigen, fftw, libtiff, libpng, zlib, ants, bc
, qt5, libGL, libGLU, libX11, libXext
-, withGui ? true }:
+, withGui ? true, less }:
stdenv.mkDerivation rec {
pname = "mrtrix";
- version = "3.0.2";
+ version = "unstable-2021-11-25";
src = fetchFromGitHub {
owner = "MRtrix3";
repo = "mrtrix3";
- rev = version;
- sha256 = "0p4d1230j6664rnb9l65cpyfj9ncbcm39yv1r9y77br9rkkv1za3";
+ rev = "994498557037c9e4f7ba67f255820ef84ea899d9";
+ sha256 = "sha256-8eFDS5z4ZxMzi9Khk90KAS4ndma/Syd6JDXM2Fpr0M8=";
fetchSubmodules = true;
};
@@ -44,6 +44,9 @@ stdenv.mkDerivation rec {
substituteInPlace ./run_tests \
--replace 'git submodule update --init $datadir >> $LOGFILE 2>&1' ""
+
+ substituteInPlace ./build \
+ --replace '"less -RX "' '"${less}/bin/less -RX "'
'';
configurePhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix b/third_party/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
index c636942ca7..b38af2f64b 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -1,10 +1,6 @@
-{ lib, fetchurl, python3Packages, cmake, python3 }:
+{ stdenv, lib, fetchurl, python3Packages, cmake, python3 }:
-let
- pythonPackages = python3Packages;
-in
-
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
pname = "obitools3";
version = "3.0.1b11";
@@ -13,15 +9,18 @@ pythonPackages.buildPythonApplication rec {
sha256 = "1x7a0nrr9agg1pfgq8i1j8r1p6c0jpyxsv196ylix1dd2iivmas1";
};
+ nativeBuildInputs = [ python3Packages.cython cmake ];
+
+ postPatch = lib.optionalString stdenv.isAarch64 ''
+ substituteInPlace setup.py \
+ --replace "'-msse2'," ""
+ '';
+
preBuild = ''
substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/lib/${python3.libPrefix}/site-packages";
export NIX_CFLAGS_COMPILE="-L $out/lib/${python3.libPrefix}/site-packages $NIX_CFLAGS_COMPILE"
'';
- disabled = !pythonPackages.isPy3k;
-
- nativeBuildInputs = [ pythonPackages.cython cmake ];
-
dontConfigure = true;
doCheck = true;
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
index 4c16413746..27a16aefb2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "picard-tools";
- version = "2.26.3";
+ version = "2.26.6";
src = fetchurl {
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
- sha256 = "sha256-H7VgD75tmAEd01Pj1o6BNT0QaXhd1pUIpAFmKM6OUlo=";
+ sha256 = "sha256-Y/vBc97Vkv2RpuGyFqEMwdknchYuwBCTCHpVQ5+3EqM=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/samtools/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
index 99210092a1..98b0394c35 100644
--- a/third_party/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, htslib, perl, ncurses ? null }:
+{ lib, stdenv, fetchurl, fetchpatch, zlib, htslib, perl, ncurses ? null }:
stdenv.mkDerivation rec {
pname = "samtools";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
sha256 = "sha256-YWyi4FHMgAmh6cAc/Yx8r4twkW3f9m87dpFAeUZfjGA=";
};
+ patches = [
+ # Pull upstream patch for ncurses-6.3 support
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/samtools/samtools/commit/396ef20eb0854d6b223c3223b60bb7efe42301f7.patch";
+ sha256 = "sha256-p0l9ymXK9nqL2w8EytbW+qeaI7dD86IQgIVxacBj838=";
+ })
+ ];
+
nativeBuildInputs = [ perl ];
buildInputs = [ zlib ncurses htslib ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix b/third_party/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
index f5c6d79e28..c6339bab12 100644
--- a/third_party/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkg-config, libGLU, libGL, libX11, doxygen }:
stdenv.mkDerivation rec {
- name = "avogadro-1.1.1";
+ pname = "avogadro";
+ version = "1.1.1";
src = fetchurl {
- url = "mirror://sourceforge/avogadro/${name}.tar.bz2";
+ url = "mirror://sourceforge/avogadro/avogadro-${version}.tar.bz2";
sha256 = "050ag9p4vg7jg8hj1wqfv7lsm6ar2isxjw2vw85s49vsl7g7nvzy";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/chemistry/cp2k/default.nix b/third_party/nixpkgs/pkgs/applications/science/chemistry/cp2k/default.nix
index 6bb99ce556..daf0d4d9b2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/chemistry/cp2k/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/chemistry/cp2k/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, python3, gfortran, blas, lapack
, fftw, libint, libvori, libxc, mpi, gsl, scalapack, openssh, makeWrapper
-, libxsmm, spglib, which
+, libxsmm, spglib, which, elpa, pkg-config
} :
let
@@ -19,8 +19,9 @@ in stdenv.mkDerivation rec {
fetchSubmodules = true;
};
- nativeBuildInputs = [ python3 which openssh makeWrapper ];
+ nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ];
buildInputs = [
+ elpa
gfortran
fftw
gsl
@@ -60,20 +61,20 @@ in stdenv.mkDerivation rec {
AR = ar -r
DFLAGS = -D__FFTW3 -D__LIBXC -D__LIBINT -D__parallel -D__SCALAPACK \
-D__MPI_VERSION=3 -D__F2008 -D__LIBXSMM -D__SPGLIB \
- -D__MAX_CONTR=4 -D__LIBVORI
+ -D__MAX_CONTR=4 -D__LIBVORI -D__ELPA
CFLAGS = -fopenmp
FCFLAGS = \$(DFLAGS) -O2 -ffree-form -ffree-line-length-none \
-ftree-vectorize -funroll-loops -msse2 \
-std=f2008 \
-fopenmp -ftree-vectorize -funroll-loops \
-I${libxc}/include -I${libxsmm}/include \
- -I${libint}/include
+ -I${libint}/include $(pkg-config --variable=fcflags elpa)
LIBS = -lfftw3 -lfftw3_threads \
-lscalapack -lblas -llapack \
-lxcf03 -lxc -lxsmmf -lxsmm -lsymspg \
-lint2 -lstdc++ -lvori \
-lgomp -lpthread -lm \
- -fopenmp
+ -fopenmp $(pkg-config --libs elpa)
LDFLAGS = \$(FCFLAGS) \$(LIBS)
EOF
'';
diff --git a/third_party/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix b/third_party/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
index 732e97b9b0..86addd5bd6 100644
--- a/third_party/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
@@ -11,13 +11,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec {
pname = "octopus";
- version = "10.5";
+ version = "11.3";
src = fetchFromGitLab {
owner = "octopus-code";
repo = "octopus";
rev = version;
- sha256 = "1bgdkmsp6pwq3b6nxxkimrdmz71wqr8qi25gdzwpcv9wmcf1q27v";
+ sha256 = "0n04yvnc0rg3lvnkkdpbwkfl6zg544260p3s65vwkc5dflrhk34r";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix b/third_party/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
index 3cd9917969..1c32033548 100644
--- a/third_party/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -5,9 +5,9 @@
} :
let
- version = "21.06";
+ version = "21.10";
# The tag keeps moving, fix a hash instead
- gitLabRev = "dd982ad4bc94dec8ac1e3e99cb6a7dd249ff71de";
+ gitLabRev = "117305462bac932106e8e3a0347238b768bcb058";
python = python3.withPackages (ps : with ps; [ six pyparsing ]);
@@ -19,7 +19,7 @@ in stdenv.mkDerivation {
owner = "Molcas";
repo = "OpenMolcas";
rev = gitLabRev;
- sha256 = "07dm73n0s7ckif561yb3s9yqxsv39a73kb9qwny4yp39wdvv52hz";
+ sha256 = "sha256-GMi2dsNBog+TmpmP6fhQcp6Z5Bh2LelV//MqLnvRP5c=";
};
patches = [
@@ -56,7 +56,9 @@ in stdenv.mkDerivation {
"-DOPENBLASROOT=${openblas.dev}"
];
- GAROOT=globalarrays;
+ preConfigure = ''
+ export GAROOT=${globalarrays};
+ '';
postConfigure = ''
# The Makefile will install pymolcas during the build grrr.
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
index 731f2db56a..8bceed08e1 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "archimedes-2.0.1";
+ pname = "archimedes";
+ version = "2.0.1";
src = fetchurl {
- url = "mirror://gnu/archimedes/${name}.tar.gz";
+ url = "mirror://gnu/archimedes/archimedes-${version}.tar.gz";
sha256 = "0jfpnd3pns5wxcxbiw49v5sgpmm5b4v8s4q1a5292hxxk2hzmb3z";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
index 96a2c9a048..987f6156b4 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
index 1a900e1019..2fb3b8c8b1 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -75,6 +75,6 @@ let
homepage = "https://www.autodesk.com/products/eagle/overview";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
- maintainers = [ maintainers.rittelle ];
+ maintainers = [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index 346483b923..f1d34062d2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -1,17 +1,17 @@
{ lib, stdenv, fetchFromGitHub, cmake, ninja, pkg-config, python3Packages
, boost, rapidjson, qtbase, qtsvg, igraph, spdlog, wrapQtAppsHook
-, fmt, graphviz, llvmPackages, z3
+, graphviz, llvmPackages, z3
}:
stdenv.mkDerivation rec {
- version = "3.2.6";
+ version = "3.3.0";
pname = "hal-hardware-analyzer";
src = fetchFromGitHub {
owner = "emsec";
repo = "hal";
rev = "v${version}";
- sha256 = "sha256-GRHRrAxZ10hmAXkGGSQEwNJTbnMbJ9jMyKnOUq+KoWo=";
+ sha256 = "sha256-uNpELHhSAVRJL/4iypvnl3nX45SqB419r37lthd2WmQ=";
};
# make sure bundled dependencies don't get in the way - install also otherwise
# copies them in full to the output, bloating the package
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ cmake ninja pkg-config ];
- buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog fmt graphviz wrapQtAppsHook z3 ]
+ buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog graphviz wrapQtAppsHook z3 ]
++ (with python3Packages; [ python pybind11 ])
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
index eec7830b2a..30ef1f5d10 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
@@ -3,7 +3,7 @@
, coreutils
, cppzmq
, curl
-, epoxy
+, libepoxy
, fetchFromGitHub
, glm
, gtkmm3
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
buildInputs = [
cppzmq
curl
- epoxy
+ libepoxy
glm
gtkmm3
libgit2
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
index 0b024d5c94..61fcff77e1 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
@@ -27,7 +27,7 @@
, libthai
, libdatrie
, libxkbcommon
-, epoxy
+, libepoxy
, dbus
, at-spi2-core
, libXtst
@@ -131,7 +131,7 @@ stdenv.mkDerivation rec {
libthai
libdatrie
libxkbcommon
- epoxy
+ libepoxy
dbus.daemon
at-spi2-core
libXtst
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
index 9d7b1b7e56..425234e7f7 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -209,8 +209,8 @@ stdenv.mkDerivation rec {
++ optionals (stable && with3d) [ "--set-default KISYS3DMOD ${packages3d}/share/kicad/modules/packages3d" ]
++ optionals (!stable)
[
- "--set-default KICAD6_FOOTPRINT_DIR ${footprints}/share/kicad/modules"
- "--set-default KICAD6_SYMBOL_DIR ${symbols}/share/kicad/library"
+ "--set-default KICAD6_FOOTPRINT_DIR ${footprints}/share/kicad/footprints"
+ "--set-default KICAD6_SYMBOL_DIR ${symbols}/share/kicad/symbols"
"--set-default KICAD6_TEMPLATE_DIR ${templates}/share/kicad/template"
"--prefix KICAD6_TEMPLATE_DIR : ${symbols}/share/kicad/template"
"--prefix KICAD6_TEMPLATE_DIR : ${footprints}/share/kicad/template"
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
index ae403d3f73..50a75cdfd0 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,49 +3,49 @@
{
"kicad" = {
kicadVersion = {
- version = "5.1.10";
+ version = "5.1.12";
src = {
- rev = "88a1d61d58fdd62149bd1e00984e01540148ca1b";
- sha256 = "10ix560bqy0lprnik1bprxw9ix4g8w2ipvyikx551ak9ryvgwjcc";
+ rev = "84ad8e8a86f13c0697f5cbed8c17977b6545ddc9";
+ sha256 = "0kgikchqxds3mp71nkg307mr4c1dgv8akbmksz4w9x8jg4i1mfqq";
};
};
libVersion = {
- version = "5.1.10";
+ version = "5.1.12";
libSources = {
- i18n.rev = "f081afe79be4660d5c49a9d674e3cb666d76d4d0";
+ i18n.rev = "0ad3d7e469e31c8868ad83f90e22a9c18f16aa1f";
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 = "97c0bfdd2f5ebe952bc90c60f080a8e41da60615";
+ symbols.sha256 = "1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2";
+ templates.rev = "eca0f632eb76c8f49de4d5a590c83543090d0b7d";
+ templates.sha256 = "1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g";
+ footprints.rev = "b65732f8ebd7ab894fd638f3f2bf4a4e9b24f653";
+ footprints.sha256 = "0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s";
+ packages3d.rev = "0ddd588650fede09766b704feb15d30bcb6e144f";
+ packages3d.sha256 = "12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr";
};
};
};
"kicad-unstable" = {
kicadVersion = {
- version = "2021-07-12";
+ version = "6.0.0-rc1";
src = {
- rev = "76a6177eb7fc2efe8b5fd522355e70c44a33b150";
- sha256 = "1a94z29if73cnxjx75vkgasm339dasbrjwbg2zk1c35pfygnwrj5";
+ rev = "9fb05440b3ef3073613ecdeba6112aeb6b26c4df";
+ sha256 = "1j0hd6bpmd80dyvy9mz4n4rr8f849bdwdd4vs8vfbsswf0gxj734";
};
};
libVersion = {
- version = "2021-07-12";
+ version = "6.0.0-rc1";
libSources = {
i18n.rev = "e89d9a89bec59199c1ade56ee2556591412ab7b0";
i18n.sha256 = "04zaqyhj3qr4ymyd3k5vjpcna64j8klpsygcgjcv29s3rdi8glfl";
- symbols.rev = "a6f64c12c9cdea4cda25cdd2c92708e7eb461d46";
- symbols.sha256 = "0j6ng3ysqlxcggjyq3bsgqzg6j50if74q2dpyrdh5pckfqvvmv20";
- templates.rev = "073d1941c428242a563dcb5301ff5c7479fe9c71";
- templates.sha256 = "14p06m2zvlzzz2w74y83f2zml7mgv5dhy2nyfkpblanxawrzxv1x";
- footprints.rev = "1bacc7562198e2a2985df7f2fbcd7620b4fd0d46";
- footprints.sha256 = "1h17q0xpl4k4klg3mafzsbl88wzrg73xjsh8llyni2jzs531545a";
- packages3d.rev = "d8b7e8c56d535f4d7e46373bf24c754a8403da1f";
- packages3d.sha256 = "0dh8ixg0w43wzj5h3164dz6l1vl4llwxhi3qcdgj1lgvrs28aywd";
+ symbols.rev = "27b627393a7f2733e965ed82a5533a757789cbb2";
+ symbols.sha256 = "0p1qay6h6ibkhcz1b8xszsihi432ddi8jgnan2xr5rl4539c4ydp";
+ templates.rev = "8c9ff3dadb9c75cf2932f11c09a46c0c9d84784b";
+ templates.sha256 = "0vbjy1v5923942ma0rqcp1dhylhxk1m4vyfxjxw13sizkrpmlwr1";
+ footprints.rev = "4ce2242095912e491f1690210d9cb2328363b268";
+ footprints.sha256 = "1zx13rrpiamxyv7y27mr5xsdz0d09hpwfgc2j496p3q41q2crlq0";
+ packages3d.rev = "1080b6e565e56bae9be46db2278a1542092d7a2d";
+ packages3d.sha256 = "0vwcbzq42hzjl4f0zjaswmiff1x59hv64g5n00mx1gl0gwngnyla";
};
};
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
index 53a67cea40..15b64938b2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
@@ -1,37 +1,22 @@
{ stdenv, lib, fetchFromGitHub
-, qtbase, qttools, qmake, wrapQtAppsHook
+, qtbase, qttools, cmake, wrapQtAppsHook
}:
stdenv.mkDerivation rec {
pname = "librepcb";
- version = "0.1.5";
+ version = "0.1.6";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "0ag8h3id2c1k9ds22rfrvyhf2vjhkv82xnrdrz4n1hnlr9566vcx";
+ sha256 = "0gzf3asdgdicpikb412134ybqnbbark948yrfhvba2w4i9cwbk2r";
fetchSubmodules = true;
};
- nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
+ nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
buildInputs = [ qtbase ];
- qmakeFlags = ["-r"];
-
- # the build system tries to use 'git' at build time to find the HEAD hash.
- # that's a no-no, so replace it with a quick hack. NOTE: the # adds a comment
- # at the end of the line to remove the git call.
- postPatch = ''
- substituteInPlace ./libs/librepcb/common/common.pro \
- --replace 'GIT_COMMIT_SHA' 'GIT_COMMIT_SHA="\\\"${src.rev}\\\"" # '
- '';
-
- postInstall = ''
- mkdir -p $out/share/librepcb/fontobene
- cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
- '';
-
meta = with lib; {
description = "A free EDA software to develop printed circuit boards";
homepage = "https://librepcb.org/";
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/default.nix
new file mode 100644
index 0000000000..83c8e2c6dd
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/default.nix
@@ -0,0 +1,137 @@
+{ 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" \
+ --set LANG C
+ 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/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/sources.json b/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/sources.json
new file mode 100644
index 0000000000..aca5f8f4a0
--- /dev/null
+++ b/third_party/nixpkgs/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": "0e414ad547f506a39ff11a64772baec923e54f8ca98b81fc9b9cbd19ed573b22",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicoipp/libpicoipp_1.3.0-4r130_amd64.deb",
+ "version": "1.3.0-4r130"
+ },
+ "libps2000": {
+ "sha256": "d1e94148719a03b70f233cea9a686ed48be03224f2931c9cd282571819a780c7",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000/libps2000_3.0.76-3r2981_amd64.deb",
+ "version": "3.0.76-3r2981"
+ },
+ "libps2000a": {
+ "sha256": "c665b70c04203c98bb1b509830ec522f58906b2f393f35c1b4f9c27217ac3572",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000a/libps2000a_2.1.76-5r2981_amd64.deb",
+ "version": "2.1.76-5r2981"
+ },
+ "libps3000": {
+ "sha256": "dbb9f9afdc694c4451e652f22a4c4c67ef609407f45229d26330ce7cfbb02b1c",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000/libps3000_4.0.76-3r2981_amd64.deb",
+ "version": "4.0.76-3r2981"
+ },
+ "libps3000a": {
+ "sha256": "5ab3daadc5d804b224215d138ca94abecc3c311bb91624638e2758ac2a490d25",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000a/libps3000a_2.1.76-6r2981_amd64.deb",
+ "version": "2.1.76-6r2981"
+ },
+ "libps4000": {
+ "sha256": "13504936207f1a7410f726c93358bb21c0c0cd1bd8b473332308a345ff6692c7",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000/libps4000_2.1.76-2r2981_amd64.deb",
+ "version": "2.1.76-2r2981"
+ },
+ "libps4000a": {
+ "sha256": "196ccce96e8cf29f5168cda83748857172ae43dc2b990adbacb3327511784492",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000a/libps4000a_2.1.76-2r2981_amd64.deb",
+ "version": "2.1.76-2r2981"
+ },
+ "libps5000": {
+ "sha256": "1793180d4067df12080ba7b01cbdf38397c2931a7f4915f13dbdb9295cc77cb3",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000/libps5000_2.1.76-3r2981_amd64.deb",
+ "version": "2.1.76-3r2981"
+ },
+ "libps5000a": {
+ "sha256": "b08a73f43bdcfa2bc02d01f398147da9b8cf2599477144b5a2b2af924d0bf0e9",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000a/libps5000a_2.1.76-5r2981_amd64.deb",
+ "version": "2.1.76-5r2981"
+ },
+ "libps6000": {
+ "sha256": "dda0fcb8b346f77a715053b52ad9e26b323991f8336001de7ff1bb6d04c716b4",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000/libps6000_2.1.76-6r2981_amd64.deb",
+ "version": "2.1.76-6r2981"
+ },
+ "libps6000a": {
+ "sha256": "786e5772055500e2e445ddfd5402fed359a9afa54177bd731912d24522729004",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000a/libps6000a_1.0.76-0r2981_amd64.deb",
+ "version": "1.0.76-0r2981"
+ },
+ "picoscope": {
+ "sha256": "12afae7992b9d60c93e5e39c7fe3f93955be3bdff554b52894064d5f320347f4",
+ "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/p/picoscope/picoscope_7.0.86-1r9656_amd64.deb",
+ "version": "7.0.86-1r9656"
+ }
+ }
+}
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/update.py b/third_party/nixpkgs/pkgs/applications/science/electronics/picoscope/update.py
new file mode 100755
index 0000000000..ecbd229203
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix
index de79abc3e5..b2e3704cba 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, qt4, cmake, graphviz, pkg-config }:
stdenv.mkDerivation rec {
- name = "qfsm-0.54.0";
+ pname = "qfsm";
+ version = "0.54.0";
src = fetchurl {
- url = "mirror://sourceforge/qfsm/${name}-Source.tar.bz2";
+ url = "mirror://sourceforge/qfsm/qfsm-${version}-Source.tar.bz2";
sha256 = "0rl7bc5cr29ng67yij4akciyid9z7npal812ys4c3m229vjvflrb";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix b/third_party/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
index 6a39995855..f8741cd8d1 100644
--- a/third_party/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -5,10 +5,11 @@ let
libiconvLib = lib.optionalString stdenv.isLinux "${glibc.out}/lib";
in
stdenv.mkDerivation rec {
- name = "tkgate-1.8.7";
+ pname = "tkgate";
+ version = "1.8.7";
src = fetchurl {
- url = "http://www.tkgate.org/downloads/${name}.tgz";
+ url = "http://www.tkgate.org/downloads/tkgate-${version}.tgz";
sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix b/third_party/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix
index 8dee645646..e577947893 100644
--- a/third_party/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix b/third_party/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
index 245d4c12bf..684f5913f7 100644
--- a/third_party/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "tetgen-1.4.3";
+ pname = "tetgen";
+ version = "1.4.3";
src = fetchurl {
- url = "${meta.homepage}/files/tetgen1.4.3.tar.gz";
+ url = "${meta.homepage}/files/tetgen${version}.tar.gz";
sha256 = "0d70vjqdapmy1ghlsxjlvl5z9yp310zw697bapc4zxmp0sxi29wm";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/abc/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/abc/default.nix
index cbcd452033..fe73f4f4d6 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/abc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/abc/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "abc-verifier";
- version = "2020.11.24";
+ version = "2021.11.12";
src = fetchFromGitHub {
- owner = "yosyshq";
- repo = "abc";
- rev = "4f5f73d18b137930fb3048c0b385c82fa078db38";
- sha256 = "0z1kp223kix7i4r7mbj2bzawkdzc55nsgc41m85dmbajl9fsj1m0";
+ owner = "yosyshq";
+ repo = "abc";
+ rev = "f6fa2ddcfc89099726d60386befba874c7ac1e0d";
+ hash = "sha256-0rvMPZ+kL0m/GjlCLx3eXYQ0osQ2wQiS3+csqPl3U9s=";
};
nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/aspino/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/aspino/default.nix
index f9cc97893d..fc16423b67 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/aspino/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/aspino/default.nix
@@ -8,7 +8,8 @@ let
in
stdenv.mkDerivation {
- name = "aspino-unstable-2017-03-09";
+ pname = "aspino";
+ version = "unstable-2017-03-09";
src = fetchFromGitHub {
owner = "alviano";
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/boolector/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
index 7d90dca46f..74927dd434 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, lib, python3
+{ stdenv, fetchFromGitHub, lib, python3, fetchpatch
, cmake, lingeling, btor2tools, gtest, gmp
}:
@@ -13,6 +13,15 @@ stdenv.mkDerivation rec {
sha256 = "1smcy6yp8wvnw2brgnv5bf40v87k4v4fbdbrhi7987vja632k50z";
};
+ patches = [
+ # present in master - remove after 3.2.2
+ (fetchpatch {
+ name = "fix-parser-getc-char-casts.patch";
+ url = "https://github.com/Boolector/boolector/commit/cc3a70918538c1e71ea5e7273fa1ac098da37c1b.patch";
+ sha256 = "0pjvagcy74vxa2q75zbshcz8j7rvhl98549xfcf5y8yyxf5h8hyq";
+ })
+ ];
+
postPatch = ''
sed s@REPLACEME@file://${gtest.src}@ ${./cmake-gtest.patch} | patch -p1
'';
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/coq/default.nix
index 16db7384df..0208266351 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/coq/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -7,7 +7,7 @@
{ lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
, customOCamlPackages ? null
-, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
+, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ocamlPackages_4_12, ncurses
, buildIde ? true
, glib, gnome, wrapGAppsHook, makeDesktopItem, copyDesktopItems
, csdp ? null
@@ -45,6 +45,7 @@ let
"8.13.1".sha256 = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
"8.13.2".sha256 = "1884vbmwmqwn9ngibax6dhnqh4cc02l0s2ajc6jb1xgr0i60whjk";
"8.14.0".sha256 = "04y2z0qyvag66zanfyc3f9agvmzbn4lsr0p1l7ck6yjhqx7vbm17";
+ "8.14.1".sha256 = "0sx78pgx0qw8v7v2r32zzy3l161zipzq95iacda628girim7psnl";
};
releaseRev = v: "V${v}";
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@@ -62,10 +63,11 @@ let
'' else "";
ocamlPackages = if !isNull customOCamlPackages then customOCamlPackages
else with versions; switch coq-version [
+ { case = range "8.14" "8.14"; out = ocamlPackages_4_12; }
{ case = range "8.11" "8.13"; out = ocamlPackages_4_10; }
{ case = range "8.7" "8.10"; out = ocamlPackages_4_09; }
{ case = range "8.5" "8.6"; out = ocamlPackages_4_05; }
- ] ocamlPackages_4_10;
+ ] ocamlPackages_4_12;
ocamlBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
++ optional (!versionAtLeast "8.10") ocamlPackages.camlp5
++ optional (!versionAtLeast "8.13") ocamlPackages.num
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/third_party/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
index b382e6f9e7..dc76305bd7 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -1,24 +1,19 @@
diff --git a/src/elan-dist/src/component/package.rs b/src/elan-dist/src/component/package.rs
-index fd9fe74..0fefa39 100644
+index c51e76d..ae8159e 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));
-+ nix_patchelf_if_needed(&full_path);
- }
-
- Ok(())
- }
-
-+fn nix_patchelf_if_needed(dest_path: &Path) {
-+ let (is_bin, is_lib) = if let Some(p) = dest_path.parent() {
-+ (p.ends_with("bin"), p.ends_with("lib"))
-+ } else {
-+ (false, false)
-+ };
+@@ -56,6 +56,30 @@ fn unpack_without_first_dir(archive: &mut tar::Archive, path: &Path)
+ entry
+ .unpack(&full_path)
+ .chain_err(|| ErrorKind::ExtractingPackage)?;
++ nix_patch_if_needed(&full_path)?;
++ }
+
++ Ok(())
++}
++
++fn nix_patch_if_needed(dest_path: &Path) -> Result<()> {
++ let is_bin = matches!(dest_path.parent(), Some(p) if p.ends_with("bin"));
+ if is_bin {
+ let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
+ .arg("--set-interpreter")
@@ -26,15 +21,15 @@ index fd9fe74..0fefa39 100644
+ .arg(dest_path)
+ .output();
+ }
-+ else if is_lib {
-+ let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
-+ .arg("--set-rpath")
-+ .arg("@libPath@")
-+ .arg(dest_path)
-+ .output();
-+ }
-+}
+
- #[derive(Debug)]
- pub struct ZipPackage<'a>(temp::Dir<'a>);
++ if dest_path.extension() == Some(::std::ffi::OsStr::new("lld")) {
++ use std::os::unix::fs::PermissionsExt;
++ let new_path = dest_path.with_extension("orig");
++ ::std::fs::rename(dest_path, &new_path)?;
++ ::std::fs::write(dest_path, format!(r#"#! @shell@
++exec -a "$0" {} "$@" --dynamic-linker=@dynamicLinker@
++"#, new_path.to_str().unwrap()))?;
++ ::std::fs::set_permissions(dest_path, ::std::fs::Permissions::from_mode(0o755))?;
+ }
+ Ok(())
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/elan/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/elan/default.nix
index 987068d9bb..4326c5b0d6 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/elan/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/elan/default.nix
@@ -1,23 +1,18 @@
-{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl
-, fetchpatch
-, openssl, gmp, zlib, fetchFromGitHub, rustPlatform, libiconv }:
-
-let
- libPath = lib.makeLibraryPath [ gmp ];
-in
+{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl, runtimeShell
+, openssl, zlib, fetchFromGitHub, rustPlatform, libiconv }:
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 ];
@@ -25,7 +20,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ curl zlib openssl ]
++ lib.optional stdenv.isDarwin libiconv;
- cargoBuildFlags = [ "--features no-self-update" ];
+ buildFeatures = [ "no-self-update" ];
patches = lib.optionals stdenv.isLinux [
# Run patchelf on the downloaded binaries.
@@ -33,19 +28,14 @@ rustPlatform.buildRustPackage rec {
(runCommand "0001-dynamically-patchelf-binaries.patch" {
CC = stdenv.cc;
patchelf = patchelf;
- libPath = "$ORIGIN/../lib:${libPath}";
+ shell = runtimeShell;
} ''
export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
--subst-var patchelf \
--subst-var dynamicLinker \
- --subst-var libPath
+ --subst-var shell
'')
- # 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 = ''
@@ -56,8 +46,6 @@ rustPlatform.buildRustPackage rec {
done
popd
- wrapProgram $out/bin/elan --prefix "LD_LIBRARY_PATH" : "${libPath}"
-
# tries to create .elan
export HOME=$(mktemp -d)
mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/gappa/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
index be1d6f253b..af6673caa5 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, gmp, mpfr, boost }:
-stdenv.mkDerivation {
- name = "gappa-1.4.0";
+stdenv.mkDerivation rec {
+ pname = "gappa";
+ version = "1.4.0";
src = fetchurl {
- url = "https://gforge.inria.fr/frs/download.php/file/38436/gappa-1.4.0.tar.gz";
+ url = "https://gforge.inria.fr/frs/download.php/file/38436/gappa-${version}.tar.gz";
sha256 = "12x42z901pr05ldmparqdi8sq9s7fxbavhzk2dbq3l6hy247dwbb";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
index 24faa98f77..e66fe992e1 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
@@ -3,11 +3,11 @@
let
load_num =
if num == null then "" else
- ''
- -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
- -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
- -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
- '';
+ ''
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+ '';
start_script =
''
@@ -21,19 +21,22 @@ let
in
stdenv.mkDerivation {
- name = "hol_light-2019-10-06";
+ pname = "hol_light";
+ version = "unstable-2019-10-06";
src = fetchFromGitHub {
- owner = "jrh13";
- repo = "hol-light";
- rev = "5c91b2ded8a66db571824ecfc18b4536c103b23e";
+ owner = "jrh13";
+ repo = "hol-light";
+ rev = "5c91b2ded8a66db571824ecfc18b4536c103b23e";
sha256 = "0sxsk8z08ba0q5aixdyczcx5l29lb51ba4ip3d2fry7y604kjsx6";
};
- patches = [(fetchpatch {
- url = "https://salsa.debian.org/ocaml-team/hol-light/-/raw/master/debian/patches/0004-Fix-compilation-with-camlp5-7.11.patch";
- sha256 = "180qmxbrk3vb1ix7j77hcs8vsar91rs11s5mm8ir5352rz7ylicr";
- })];
+ patches = [
+ (fetchpatch {
+ url = "https://salsa.debian.org/ocaml-team/hol-light/-/raw/master/debian/patches/0004-Fix-compilation-with-camlp5-7.11.patch";
+ sha256 = "180qmxbrk3vb1ix7j77hcs8vsar91rs11s5mm8ir5352rz7ylicr";
+ })
+ ];
buildInputs = [ ocaml camlp5 ];
propagatedBuildInputs = [ num ];
@@ -47,9 +50,9 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Interactive theorem prover based on Higher-Order Logic";
- homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
- license = licenses.bsd2;
- platforms = platforms.unix;
+ homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice maggesi vbgl ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/kissat/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/kissat/default.nix
new file mode 100644
index 0000000000..08be074011
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/kissat/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchFromGitHub
+, drat-trim, p7zip
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kissat";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "arminbiere";
+ repo = "kissat";
+ # https://github.com/arminbiere/kissat/issues/18
+ rev = "abfa45fb782fa3b7c6e2eb6b939febe74d7270b7";
+ sha256 = "06pbmkjxgf2idhsrd1yzvbxr2wf8l06pjb38bzbygm6n9ami89b8";
+ };
+
+ outputs = [ "out" "dev" "lib" ];
+
+ checkInputs = [ drat-trim p7zip ];
+ doCheck = true;
+
+ # 'make test' assumes that /etc/passwd is not writable.
+ patches = [ ./writable-passwd-is-ok.patch ];
+
+ # the configure script is not generated by autotools and does not accept the
+ # arguments that the default configurePhase passes like --prefix and --libdir
+ dontAddPrefix = true;
+ setOutputFlags = false;
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm0755 build/kissat "$out/bin/kissat"
+ install -Dm0644 src/kissat.h "$dev/include/kissat.h"
+ install -Dm0644 build/libkissat.a "$lib/lib/libkissat.a"
+ mkdir -p "$out/share/doc/kissat/"
+ install -Dm0644 {LICEN?E,README*,VERSION} "$out/share/doc/kissat/"
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "A 'keep it simple and clean bare metal SAT solver' written in C";
+ longDescription = ''
+ Kissat is a "keep it simple and clean bare metal SAT solver" written in C.
+ It is a port of CaDiCaL back to C with improved data structures,
+ better scheduling of inprocessing and optimized algorithms and implementation.
+ '';
+ maintainers = with maintainers; [ shnarazk ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ homepage = "http://fmv.jku.at/kissat";
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/kissat/writable-passwd-is-ok.patch b/third_party/nixpkgs/pkgs/applications/science/logic/kissat/writable-passwd-is-ok.patch
new file mode 100644
index 0000000000..f2cca54e1d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/kissat/writable-passwd-is-ok.patch
@@ -0,0 +1,13 @@
+diff --git a/test/testfile.c b/test/testfile.c
+index cb311d5..0726244 100644
+--- a/test/testfile.c
++++ b/test/testfile.c
+@@ -92,8 +92,6 @@ do { \
+ WRITABLE (true, "../test/file/non-existing");
+ WRITABLE (false, "/kissat-test-file-writable");
+ WRITABLE (false, "non-existing-directory/file-in-non-existing-directory");
+- if (kissat_file_exists ("/etc/passwd"))
+- WRITABLE (false, "/etc/passwd");
+ #undef WRITABLE
+ }
+
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/lean/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/lean/default.nix
index 0c21ce109b..218a275418 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/lean/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
index 08bd0e4d63..1abf38b49c 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
@@ -4,15 +4,14 @@
stdenv.mkDerivation {
pname = "lingeling";
- # This is the version used in satcomp2018, which was
- # relicensed, and also known as version 'bcj'
- version = "pre1_03b4860d";
+ # This is the version used in satcomp2020
+ version = "pre1_708beb26";
src = fetchFromGitHub {
owner = "arminbiere";
repo = "lingeling";
- rev = "03b4860d14016f42213ea271014f2f13d181f504";
- sha256 = "1lw1yfy219p7rrk88sbq4zl24b70040zapbjdrpv5a6i0jsblksx";
+ rev = "708beb26a7d5b5d5e7abd88d6f552fb1946b07c1";
+ sha256 = "1lb2g37nd8qq5hw5g6l691nx5095336yb2zlbaw43mg56hkj8357";
};
configurePhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix
index 10266abffe..cf7470b547 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "logisim-evolution";
- version = "3.5.0";
+ version = "3.7.1";
src = fetchurl {
url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${version}/logisim-evolution-${version}-all.jar";
- sha256 = "1r6im4gmjbnckx8jig6bxi5lxv06lwdnpxkyfalsfmw4nybd5arw";
+ sha256 = "04q9bzhnzpi8cgv3ly4ii88qvmlw9n09c4p1qmg8dhxqkskdqj6h";
};
dontUnpack = true;
@@ -30,8 +30,11 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/logisim-evolution --add-flags "-jar $src"
- unzip $src resources/logisim/img/logisim-icon.svg
- install -D resources/logisim/img/logisim-icon.svg $out/share/pixmaps/logisim-evolution.svg
+ # Create icons
+ unzip $src "resources/logisim/img/*"
+ for size in 16 32 48 128 256; do
+ install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim-evolution.png"
+ done
runHook postInstall
'';
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/monosat/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
index 259cdcea44..1356c88d47 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
@@ -28,9 +28,18 @@ let
})
];
+ # source behind __linux__ check assumes system is also x86 and
+ # tries to disable x86/x87-specific extended precision mode
+ # https://github.com/sambayless/monosat/issues/33
+ commonPostPatch = lib.optionalString (!stdenv.hostPlatform.isx86) ''
+ substituteInPlace src/monosat/Main.cc \
+ --replace 'defined(__linux__)' '0'
+ '';
+
core = stdenv.mkDerivation {
name = "${pname}-${version}";
inherit src patches;
+ postPatch = commonPostPatch;
nativeBuildInputs = [ cmake ];
buildInputs = [ zlib gmp jdk8 ];
@@ -66,7 +75,7 @@ let
# After patching src, move to where the actually relevant source is. This could just be made
# the sourceRoot if it weren't for the patch.
- postPatch = ''
+ postPatch = commonPostPatch + ''
cd src/monosat/api/python
'' +
# The relative paths here don't make sense for our Nix build
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
index 77db8ae338..193f603656 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, zlib, gmp }:
stdenv.mkDerivation {
- name = "open-wbo-2.0";
+ pname = "open-wbo";
+ version = "2.0";
src = fetchFromGitHub {
owner = "sat-group";
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
index 2ef494cca2..e701fb2711 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix b/third_party/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
index 2e907a2d3a..3186acf150 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "clingo";
- version = "5.5.0";
+ version = "5.5.1";
src = fetchzip {
url = "https://github.com/potassco/clingo/archive/v${version}.tar.gz";
- sha256 = "sha256-6xKtNi5IprjaFNadfk8kKjKzuPRanUjycLWCytnk0mU=";
+ sha256 = "sha256-KBCwGNkz5HqbgXbDxPVcqxMXC8B2+wRI8eZVVXMVpLI=";
};
nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/prover9/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/prover9/default.nix
index 7fedca72b6..aa01469bfb 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/prover9/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/prover9/default.nix
@@ -1,7 +1,8 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
stdenv.mkDerivation {
- name = "prover9-2009-11a";
+ pname = "prover9";
+ version = "2009-11a";
src = fetchurl {
url = "https://www.cs.unm.edu/~mccune/mace4/download/LADR-2009-11A.tar.gz";
@@ -10,7 +11,7 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ];
- patchPhase = ''
+ postPatch = ''
RM=$(type -tp rm)
MV=$(type -tp mv)
CP=$(type -tp cp)
@@ -30,16 +31,16 @@ stdenv.mkDerivation {
cp bin/* $out/bin
'';
- meta = {
+ meta = with lib; {
homepage = "https://www.cs.unm.edu/~mccune/mace4/";
- license = "GPL";
+ license = licenses.gpl1;
description = "Automated theorem prover for first-order and equational logic";
longDescription = ''
Prover9 is a resolution/paramodulation automated theorem prover
for first-order and equational logic. Prover9 is a successor of
the Otter Prover. This is the LADR command-line version.
'';
- platforms = lib.platforms.linux;
- maintainers = [];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/proverif/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
index ba46d87581..fbc9eb2d8a 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
@@ -2,28 +2,28 @@
stdenv.mkDerivation rec {
pname = "proverif";
- version = "2.02pl1";
+ version = "2.03";
src = fetchurl {
- url = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
- sha256 = "1jmzfpx0hdgfmkq0jp6i3k5av9xxgndjaj743wfy37svn0ga4jjx";
+ url = "https://bblanche.gitlabpages.inria.fr/proverif/proverif${version}.tar.gz";
+ sha256 = "sha256:1q5mp9il09jylimcaqczb3kh34gb5px88js127gxv0jj5b4bqfc7";
};
- buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
+ buildInputs = with ocamlPackages; [ ocaml findlib ];
- buildPhase = "./build";
+ buildPhase = "./build -nointeract";
installPhase = ''
- mkdir -p $out/bin
- cp ./proverif $out/bin
- cp ./proveriftotex $out/bin
+ runHook preInstall
+ install -D -t $out/bin proverif proveriftotex
install -D -t $out/share/emacs/site-lisp/ emacs/proverif.el
+ runHook postInstall
'';
meta = {
- description = "Cryptographic protocol verifier in the Dolev-Yao model";
- homepage = "https://prosecco.gforge.inria.fr/personal/bblanche/proverif/";
+ description = "Cryptographic protocol verifier in the formal model";
+ homepage = "https://bblanche.gitlabpages.inria.fr/proverif/";
license = lib.licenses.gpl2;
platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.thoughtpolice ];
+ maintainers = with lib.maintainers; [ thoughtpolice vbgl ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/redprl/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
index 43a2ec7e97..656f3f1b65 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
@@ -1,28 +1,37 @@
-{ lib, stdenv, fetchgit, mlton }:
+{ lib, stdenv, fetchFromGitHub, mlton }:
+
stdenv.mkDerivation {
- name = "redprl-2017-03-28";
- src = fetchgit {
- url = "https://github.com/RedPRL/sml-redprl.git";
- rev = "bdf027de732e4a8d10f9f954389dfff0c822f18b";
- sha256 = "0cihwnd78d3ksxp6mppifm7xpi3fsii5mixvicajy87ggw8z305c";
+ pname = "redprl";
+ version = "unstable-2019-11-04";
+
+ src = fetchFromGitHub {
+ owner = "RedPRL";
+ repo = "sml-redprl";
+ rev = "c72190de76f7ed1cfbe1d2046c96e99ac5022b0c";
fetchSubmodules = true;
+ sha256 = "sha256-xrQT5o0bsIN+mCYUOz9iY4+j3HGROb1I6R2ADcLy8n4=";
};
+
buildInputs = [ mlton ];
- patchPhase = ''
+
+ postPatch = ''
patchShebangs ./script/
'';
+
buildPhase = ''
./script/mlton.sh
'';
+
installPhase = ''
mkdir -p $out/bin
mv ./bin/redprl $out/bin
'';
- meta = {
+
+ meta = with lib; {
description = "A proof assistant for Nominal Computational Type Theory";
homepage = "http://www.redprl.org/";
- license = lib.licenses.mit;
- maintainers = [ lib.maintainers.acowley ];
- platforms = lib.platforms.unix;
+ license = licenses.mit;
+ maintainers = with maintainers; [ acowley ];
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/sad/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/sad/default.nix
index fe0ca1b301..a509d70ed4 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/sad/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/sad/default.nix
@@ -1,9 +1,10 @@
{ lib, stdenv, fetchurl, haskell, spass }:
-stdenv.mkDerivation {
- name = "system-for-automated-deduction-2.3.25";
+stdenv.mkDerivation rec {
+ pname = "system-for-automated-deduction";
+ version = "2.3.25";
src = fetchurl {
- url = "http://nevidal.org/download/sad-2.3-25.tar.gz";
+ url = "http://nevidal.org/download/sad-${version}.tar.gz";
sha256 = "10jd93xgarik7xwys5lq7fx4vqp7c0yg1gfin9cqfch1k1v8ap4b";
};
buildInputs = [ haskell.compiler.ghc844 spass ];
@@ -15,7 +16,7 @@ stdenv.mkDerivation {
];
postPatch = ''
substituteInPlace Alice/Main.hs --replace init.opt $out/init.opt
- '';
+ '';
installPhase = ''
mkdir -p $out/{bin,provers}
install alice $out/bin
@@ -23,18 +24,18 @@ stdenv.mkDerivation {
substituteAll provers/provers.dat $out/provers/provers.dat
substituteAll init.opt $out/init.opt
cp -r examples $out
- '';
+ '';
inherit spass;
meta = {
description = "A program for automated proving of mathematical texts";
longDescription = ''
The system for automated deduction is intended for automated processing of formal mathematical texts
written in a special language called ForTheL (FORmal THEory Language) or in a traditional first-order language
- '';
+ '';
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.schmitthenner ];
homepage = "http://nevidal.org/sad.en.html";
platforms = lib.platforms.linux;
- broken = true; # ghc-8.4.4 is gone from Nixpkgs
+ broken = true; # ghc-8.4.4 is gone from Nixpkgs
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
index 87bd1e2e63..b9bf480f7e 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation {
pname = "symbiyosys";
- version = "2021.09.13";
+ version = "2021.11.30";
src = fetchFromGitHub {
- owner = "YosysHQ";
- repo = "SymbiYosys";
- rev = "15278f13467bea24a7300e23ebc5555b9261facf";
- sha256 = "sha256-gp9F4MaGgD6XfD7AjuB/LmMVcxFurqWHEiXPeyzlQzk=";
+ owner = "YosysHQ";
+ repo = "SymbiYosys";
+ rev = "b409b1179e36d2a3fff66c85b7d4e271769a2d9e";
+ hash = "sha256-S7of2upntiMkSdh4kf1RsrjriS31Eh8iEcVvG36isQg=";
};
buildInputs = [ ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
index f002b808e0..7d447745a2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
@@ -1,34 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper
-, adoptopenjdk-bin, jre, ant
-}:
+{ lib, stdenv, fetchurl, makeWrapper, adoptopenjdk-bin, jre }:
stdenv.mkDerivation rec {
pname = "tlaplus";
- version = "1.7.0";
+ version = "1.7.1";
- src = fetchFromGitHub {
- owner = "tlaplus";
- repo = "tlaplus";
- rev = "refs/tags/v${version}";
- sha256 = "1mm6r9bq79zks50yk0agcpdkw9yy994m38ibmgpb3bi3wkpq9891";
+ src = fetchurl {
+ url = "https://github.com/tlaplus/tlaplus/releases/download/v${version}/tla2tools.jar";
+ sha256 = "d532ba31aafe17afba1130f92410d9257454ff7393d1eb2fe032f0c07f352da5";
};
nativeBuildInputs = [ makeWrapper ];
- buildInputs = [ adoptopenjdk-bin ant ];
+ buildInputs = [ adoptopenjdk-bin ];
- buildPhase = "ant -f tlatools/org.lamport.tlatools/customBuild.xml compile dist";
+ dontUnpack = true;
installPhase = ''
mkdir -p $out/share/java $out/bin
- cp tlatools/org.lamport.tlatools/dist/*.jar $out/share/java
+ cp $src $out/share/java/tla2tools.jar
- makeWrapper ${jre}/bin/java $out/bin/tlc2 \
- --add-flags "-cp $out/share/java/tla2tools.jar tlc2.TLC"
- makeWrapper ${jre}/bin/java $out/bin/tla2sany \
- --add-flags "-cp $out/share/java/tla2tools.jar tla2sany.SANY"
+ makeWrapper ${jre}/bin/java $out/bin/tlc \
+ --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar tlc2.TLC"
+ makeWrapper ${jre}/bin/java $out/bin/tlasany \
+ --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar tla2sany.SANY"
makeWrapper ${jre}/bin/java $out/bin/pcal \
- --add-flags "-cp $out/share/java/tla2tools.jar pcal.trans"
- makeWrapper ${jre}/bin/java $out/bin/tla2tex \
- --add-flags "-cp $out/share/java/tla2tools.jar tla2tex.TLA"
+ --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar pcal.trans"
+ makeWrapper ${jre}/bin/java $out/bin/tlatex \
+ --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar tla2tex.TLA"
'';
meta = {
@@ -36,6 +32,6 @@ stdenv.mkDerivation rec {
homepage = "http://lamport.azurewebsites.net/tla/tla.html";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
- maintainers = [ lib.maintainers.thoughtpolice ];
+ maintainers = with lib.maintainers; [ florentc thoughtpolice ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/logic/why3/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/why3/default.nix
index b9f14332f9..7863148655 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/why3/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/logic/yices/default.nix b/third_party/nixpkgs/pkgs/applications/science/logic/yices/default.nix
index c5fc3a7383..c81d5a9ca6 100644
--- a/third_party/nixpkgs/pkgs/applications/science/logic/yices/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch b/third_party/nixpkgs/pkgs/applications/science/logic/yices/linux-no-ldconfig.patch
new file mode 100644
index 0000000000..bad3da6ad4
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/third_party/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
index 77dbbd7cdd..19e6219fc0 100644
--- a/third_party/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -22,12 +22,6 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "sha256-/rLv2/bcVsmWw+ZfyumDcj0ptHPQBCCYR9O/lVlV+G0=";
- # Enables build against a generic BLAS.
- cargoBuildFlags = [
- "--features"
- "netlib"
- ];
-
nativeBuildInputs = [ installShellFiles ];
buildInputs = [
@@ -38,6 +32,9 @@ rustPlatform.buildRustPackage rec {
Security
];
+ # Enables build against a generic BLAS.
+ buildFeatures = [ "netlib" ];
+
postInstall = ''
# Install shell completions
for shell in bash fish zsh; do
diff --git a/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix b/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
index a7010966c2..911d0043ed 100644
--- a/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -1,13 +1,38 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, ctags, swig
-# data, compression
-, bzip2, curl, hdf5, json_c, xz, lzo, protobuf, snappy
-# maths
-, blas, lapack, eigen, nlopt, lp_solve, colpack, glpk
-# libraries
-, libarchive, libxml2
-# extra support
-, pythonSupport ? true, pythonPackages ? null
-, opencvSupport ? false, opencv ? null
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchurl
+ # build
+, cmake
+, ctags
+, pythonPackages
+, swig
+ # math
+, eigen
+, blas
+, lapack
+, glpk
+ # data
+, protobuf
+, json_c
+, libxml2
+, hdf5
+, curl
+ # compression
+, libarchive
+, bzip2
+, xz
+, snappy
+, lzo
+ # more math
+, nlopt
+, lp_solve
+, colpack
+ # extra support
+, pythonSupport ? true
+, opencvSupport ? false
+, opencv ? null
, withSvmLight ? false
}:
@@ -19,8 +44,10 @@ assert (!blas.isILP64) && (!lapack.isILP64);
let
pname = "shogun";
version = "6.1.4";
+
rxcppVersion = "4.0.0";
gtestVersion = "1.8.0";
+
srcs = {
toolbox = fetchFromGitHub {
owner = pname + "-toolbox";
@@ -29,7 +56,8 @@ let
sha256 = "05s9dclmk7x5d7wnnj4qr6r6c827m72a44gizcv09lxr28pr9inz";
fetchSubmodules = true;
};
- # we need the packed archive
+
+ # The CMake external projects expect the packed archives
rxcpp = fetchurl {
url = "https://github.com/Reactive-Extensions/RxCpp/archive/v${rxcppVersion}.tar.gz";
sha256 = "0y2isr8dy2n1yjr9c5570kpc9lvdlch6jv0jvw000amwn5d3krsh";
@@ -42,54 +70,90 @@ let
in
stdenv.mkDerivation rec {
-
inherit pname version;
+ outputs = [ "out" "dev" "doc" ];
+
src = srcs.toolbox;
- postUnpack = ''
- mkdir -p $sourceRoot/third_party/{rxcpp,gtest}
- ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
- ln -s ${srcs.gtest} $sourceRoot/third_party/gtest/release-${gtestVersion}.tar.gz
- '';
-
- # broken
- doCheck = false;
-
patches = [
+ # Fix compile errors with json-c
+ # https://github.com/shogun-toolbox/shogun/pull/4104
(fetchpatch {
- url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
+ url = "https://github.com/shogun-toolbox/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
})
+
+ # Fix compile errors with GCC 9+
+ # https://github.com/shogun-toolbox/shogun/pull/4811
+ (fetchpatch {
+ url = "https://github.com/shogun-toolbox/shogun/commit/c8b670be4790e0f06804b048a6f3d77c17c3ee95.patch";
+ sha256 = "sha256-MxsR3Y2noFQevfqWK3nmX5iK4OVWeKBl5tfeDNgjcXk=";
+ })
+ (fetchpatch {
+ url = "https://github.com/shogun-toolbox/shogun/commit/5aceefd9fb0e2132c354b9a0c0ceb9160cc9b2f7.patch";
+ sha256 = "sha256-AgJJKQA8vc5oKaTQDqMdwBR4hT4sn9+uW0jLe7GteJw=";
+ })
+
+ # Fix compile errors with Eigen 3.4
+ ./eigen-3.4.patch
+
] ++ lib.optional (!withSvmLight) ./svmlight-scrubber.patch;
- CCACHE_DISABLE="1";
- CCACHE_DIR=".ccache";
+ nativeBuildInputs = [ cmake swig ctags ]
+ ++ (with pythonPackages; [ python jinja2 ply ]);
- nativeBuildInputs = [ cmake ];
- buildInputs = with lib; [
- blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve xz lzo
- protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk
- ]
- ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
- ++ optional (opencvSupport) opencv;
+ buildInputs = [
+ eigen
+ blas
+ lapack
+ glpk
+ protobuf
+ json_c
+ libxml2
+ hdf5
+ curl
+ libarchive
+ bzip2
+ xz
+ snappy
+ lzo
+ nlopt
+ lp_solve
+ colpack
+ ] ++ lib.optionals pythonSupport (with pythonPackages; [ python numpy ])
+ ++ lib.optional opencvSupport opencv;
- NIX_CFLAGS_COMPILE="-faligned-new";
-
- cmakeFlags =
- let
- onOff = b: if b then "ON" else "OFF";
- flag = n: b: "-D"+n+"="+onOff b;
- in
- with lib; [
- (flag "ENABLE_TESTING" doCheck)
- (flag "BUILD_META_EXAMPLES" doCheck)
- (flag "CMAKE_VERBOSE_MAKEFILE:BOOL" doCheck)
- (flag "PythonModular" pythonSupport)
- (flag "OpenCV" opencvSupport)
- (flag "USE_SVMLIGHT" withSvmLight)
+ cmakeFlags = let
+ enableIf = cond: if cond then "ON" else "OFF";
+ in [
+ "-DBUILD_META_EXAMPLES=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_CPLEX=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_Mosek=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_TFLogger=ON"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_ViennaCL=ON"
+ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+ "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;TrainedModelSerialization'" # Sporadic segfault
+ "-DENABLE_TESTING=${enableIf doCheck}"
+ "-DDISABLE_META_INTEGRATION_TESTS=ON"
+ "-DTRAVIS_DISABLE_META_CPP=ON"
+ "-DPythonModular=${enableIf pythonSupport}"
+ "-DOpenCV=${enableIf opencvSupport}"
+ "-DUSE_SVMLIGHT=${enableIf withSvmLight}"
];
+ CXXFLAGS = "-faligned-new";
+
+ doCheck = true;
+
+ postUnpack = ''
+ mkdir -p $sourceRoot/third_party/{rxcpp,GoogleMock}
+ ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
+ ln -s ${srcs.gtest} $sourceRoot/third_party/GoogleMock/release-${gtestVersion}.tar.gz
+ '';
+
postPatch = ''
# Fix preprocessing SVMlight code
sed -i \
@@ -106,10 +170,17 @@ stdenv.mkDerivation rec {
./scripts/light-scrubber.sh
'';
+ postInstall = ''
+ mkdir -p $doc/share/doc/shogun/examples
+ mv $out/share/shogun/examples/cpp $doc/share/doc/shogun/examples
+ cp ../examples/undocumented/libshogun/*.cpp $doc/share/doc/shogun/examples/cpp
+ rm -r $out/share
+ '';
+
meta = with lib; {
description = "A toolbox which offers a wide range of efficient and unified machine learning methods";
homepage = "http://shogun-toolbox.org/";
license = if withSvmLight then licenses.unfree else licenses.gpl3Plus;
- maintainers = with maintainers; [ edwtjo ];
+ maintainers = with maintainers; [ edwtjo smancill ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch b/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch
new file mode 100644
index 0000000000..863bd75918
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch
@@ -0,0 +1,74 @@
+From: Sebastián Mancilla
+Subject: [PATCH] Fix compile errors when using Eigen 3.4
+
+---
+ .../machine/gp/MultiLaplaceInferenceMethod.cpp | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp b/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
+index 2e27678d2..60050afea 100644
+--- a/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
++++ b/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
+@@ -84,9 +84,9 @@ class CMultiPsiLine : public func_base
+ float64_t result=0;
+ for(index_t bl=0; blblock(bl*n,0,n,1)*CMath::exp(log_scale*2.0);
+- result+=alpha->block(bl*n,0,n,1).dot(eigen_f.block(bl*n,0,n,1))/2.0;
+- eigen_f.block(bl*n,0,n,1)+=eigen_m;
++ eigen_f.segment(bl*n,n)=K*alpha->segment(bl*n,n)*CMath::exp(log_scale*2.0);
++ result+=alpha->segment(bl*n,n).dot(eigen_f.segment(bl*n,n))/2.0;
++ eigen_f.segment(bl*n,n)+=eigen_m;
+ }
+
+ // get first and second derivatives of log likelihood
+@@ -272,7 +272,7 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ {
+ Map alpha(m_alpha.vector, m_alpha.vlen);
+ for(index_t bl=0; bl chol_tmp((eigen_sD*eigen_sD.transpose()).cwiseProduct(eigen_ktrtr*CMath::exp(m_log_scale*2.0))+
+ MatrixXd::Identity(m_ktrtr.num_rows, m_ktrtr.num_cols));
+ MatrixXd eigen_L_tmp=chol_tmp.matrixU();
+@@ -341,11 +341,11 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ VectorXd tmp2=m_tmp.array().rowwise().sum();
+
+ for(index_t bl=0; bl &eigen_c=eigen_W;
+ for(index_t bl=0; bl c_tmp(eigen_c.data(),n,C);
+
+@@ -409,7 +409,7 @@ float64_t CMultiLaplaceInferenceMethod::get_derivative_helper(SGMatrix CMultiLaplaceInferenceMethod::get_derivative_wrt_mean(
+ result[i]=0;
+ //currently only compute the explicit term
+ for(index_t bl=0; bl convergence tolerance 4.997e-8 (in 11 iter.)
- ## IGNORE_RDIFF_END
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/bcal/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/bcal/default.nix
index 1494b53248..85bcd1b2d2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/bcal/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/math/cemu/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/cemu/default.nix
index 9d56ac70d9..35b9200a47 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/cemu/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/math/csdp/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/csdp/default.nix
index 02c4c134f9..6ce03008d3 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/csdp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/csdp/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, blas, gfortran, lapack }:
-stdenv.mkDerivation {
- name = "csdp-6.1.1";
+stdenv.mkDerivation rec {
+ pname = "csdp";
+ version = "6.1.1";
src = fetchurl {
- url = "https://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz";
+ url = "https://www.coin-or.org/download/source/Csdp/Csdp-${version}.tgz";
sha256 = "1f9ql6cjy2gwiyc51ylfan24v1ca9sjajxkbhszlds1lqmma8n05";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/fricas/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/fricas/default.nix
index a29d403672..79d5664426 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/fricas/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/fricas/default.nix
@@ -1,15 +1,15 @@
{ lib, stdenv, fetchurl, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
let
- version = "1.3.4";
+ version = "1.3.7";
name = "fricas-" + version;
in
stdenv.mkDerivation {
inherit name;
src = fetchurl {
- url = "mirror://sourceforge/fricas/files/fricas/${version}/${name}-full.tar.bz2";
- sha256 = "156k9az1623y5808j845c56z2nvvdrm48dzg1v0ivpplyl7vp57x";
+ url = "mirror://sourceforge/fricas/fricas/${version}/${name}-full.tar.bz2";
+ sha256 = "sha256-cOqMvSe3ef/ZeVy5cj/VU/aTRtxgfxZfRbE4lWE5TU4=";
};
buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix b/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
index 8163fe5478..76d178b7e4 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
+{ lib, stdenv, unzip, fetchurl, electron, makeWrapper, geogebra }:
let
pname = "geogebra";
- version = "6-0-644-0";
+ version = "6-0-676-0";
srcIcon = geogebra.srcIcon;
desktopItem = geogebra.desktopItem;
@@ -18,9 +18,9 @@ let
src = fetchurl {
urls = [
"https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
- "https://web.archive.org/web/20210604132845/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+ "https://web.archive.org/web/20211123222708/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
];
- sha256 = "bbe9e1a35abacfd560c0b7aa1ab975853e6adac08608bb70cd80261179e3f922";
+ sha256 = "0wn90n2nd476rkf83gk9vvcpbjflkrvyri50pnmv52j76n023hmm";
};
dontConfigure = true;
@@ -38,7 +38,7 @@ let
installPhase = ''
mkdir -p $out/libexec/geogebra/ $out/bin
cp -r GeoGebra-linux-x64/{resources,locales} "$out/"
- makeWrapper ${lib.getBin electron_6}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
+ makeWrapper ${lib.getBin electron}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
install -Dm644 "${desktopItem}/share/applications/"* \
-t $out/share/applications/
@@ -53,9 +53,9 @@ let
src = fetchurl {
urls = [
"https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
- "https://web.archive.org/web/20210406084052/https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
+ "https://web.archive.org/web/20211124143625/https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
];
- sha256 = "0fa680yyz4nry1xvb9v6qqh1mib6grff5d3p7d90nyjlv101p262";
+ sha256 = "1dwv2f94a1c2y10lmy0i66cafynalp7dkqgnpk4f0mk6pir2fdgj";
};
dontUnpack = true;
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/glsurf/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
index 58b2a617bd..808d89ef96 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchurl, ocamlPackages, makeWrapper
-, libGLU, libGL, freeglut, mpfr, gmp
+{ lib
+, stdenv
+, fetchurl
+, ocamlPackages
+, makeWrapper
+, libGLU
+, libGL
+, freeglut
+, mpfr
+, gmp
, pkgsHostTarget
}:
@@ -7,24 +15,32 @@ let
inherit (pkgsHostTarget.targetPackages.stdenv) cc;
in
-stdenv.mkDerivation {
- name = "glsurf-3.3.1";
+stdenv.mkDerivation rec {
+ pname = "glsurf";
+ version = "3.3.1";
src = fetchurl {
- url = "https://raffalli.eu/~christophe/glsurf/glsurf-3.3.1.tar.gz";
+ url = "https://raffalli.eu/~christophe/glsurf/glsurf-${version}.tar.gz";
sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
};
nativeBuildInputs = [
makeWrapper
] ++ (with ocamlPackages; [
- ocaml findlib
+ ocaml
+ findlib
]);
buildInputs = [
- freeglut libGL libGLU mpfr gmp
+ freeglut
+ libGL
+ libGLU
+ mpfr
+ gmp
] ++ (with ocamlPackages; [
- camlp4 lablgl camlimages_4_2_4
+ camlp4
+ lablgl
+ camlimages_4_2_4
]);
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/jags/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/jags/default.nix
index 5c0de33a71..3ddcd6206d 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/jags/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/jags/default.nix
@@ -1,9 +1,11 @@
-{lib, stdenv, fetchurl, gfortran, blas, lapack}:
+{ lib, stdenv, fetchurl, gfortran, blas, lapack }:
stdenv.mkDerivation rec {
- name = "JAGS-4.3.0";
+ pname = "JAGS";
+ version = "4.3.0";
+
src = fetchurl {
- url = "mirror://sourceforge/mcmc-jags/${name}.tar.gz";
+ url = "mirror://sourceforge/mcmc-jags/JAGS-${version}.tar.gz";
sha256 = "1z3icccg2ic56vmhyrpinlsvpq7kcaflk1731rgpvz9bk1bxvica";
};
@@ -15,8 +17,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Just Another Gibbs Sampler";
- license = licenses.gpl2;
- homepage = "http://mcmc-jags.sourceforge.net";
+ license = licenses.gpl2;
+ homepage = "http://mcmc-jags.sourceforge.net";
maintainers = [ maintainers.andres ];
platforms = platforms.unix;
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/mathematica/9.nix b/third_party/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
index 88db3c4b2e..90a7ada995 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, coreutils
, patchelf
, requireFile
@@ -22,11 +23,11 @@ let
throw "Mathematica requires i686-linux or x86_64 linux";
in
stdenv.mkDerivation rec {
-
- name = "mathematica-9.0.0";
+ pname = "mathematica";
+ version = "9.0.0";
src = requireFile {
- name = "Mathematica_9.0.0_LINUX.sh";
+ name = "Mathematica_${version}_LINUX.sh";
message = ''
This nix expression requires that Mathematica_9.0.0_LINUX.sh is
already part of the store. Find the file on your Mathematica CD
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
ldpath = lib.makeLibraryPath buildInputs
+ lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
- (":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+ (":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs);
phases = "unpackPhase installPhase fixupPhase";
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/mathematica/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
index 10301f062e..af88263889 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
@@ -90,7 +90,16 @@ stdenv.mkDerivation rec {
cd Installer
# don't restrict PATH, that has already been done
sed -i -e 's/^PATH=/# PATH=/' MathInstaller
- sed -i -e 's/\/bin\/bash/\/bin\/sh/' MathInstaller
+
+ # Fix the installation script as follows:
+ # 1. Adjust the shebang
+ # 2. Use the wrapper in the desktop items
+ substituteInPlace MathInstaller \
+ --replace "/bin/bash" "/bin/sh" \
+ --replace "Executables/Mathematica" "../../bin/mathematica"
+
+ # Install the desktop items
+ export XDG_DATA_HOME="$out/share"
echo "=== Running MathInstaller ==="
./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -silent
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/maxima/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/maxima/default.nix
index 3f295b416f..8bad09f178 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/maxima/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/maxima/default.nix
@@ -1,24 +1,30 @@
-{ lib, stdenv, fetchurl, fetchpatch, sbcl, texinfo, perl, python3, makeWrapper, autoreconfHook
-, rlwrap ? null, tk ? null, gnuplot ? null, ecl ? null, ecl-fasl ? false
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, texinfo
+, perl
+, python3
+, makeWrapper
+, autoreconfHook
+, rlwrap ? null
+, tk ? null
+, gnuplot ? null
+, lisp-compiler
}:
let
- name = "maxima";
- version = "5.45.0";
-
- lisp-compiler = if ecl-fasl then ecl else sbcl;
-
- searchPath =
- lib.makeBinPath
- (lib.filter (x: x != null) [ lisp-compiler rlwrap tk gnuplot ]);
+ # Allow to remove some executables from the $PATH of the wrapped binary
+ searchPath = lib.makeBinPath
+ (lib.filter (x: x != null) [ lisp-compiler rlwrap tk gnuplot ]);
in
-stdenv.mkDerivation ({
- inherit version;
- name = "${name}-${version}";
+stdenv.mkDerivation rec {
+ pname = "maxima";
+ version = "5.45.1";
src = fetchurl {
- url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
- sha256 = "sha256-x2MfMmRIBc67e6/vOrUzHEus0sJ+OE/YgyO1A5pg0Ng=";
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "sha256-/pAWJ2lwvvIUoaJENIVYZEUU1/36pPyLnQ6Hr8u059w=";
};
nativeBuildInputs = [
@@ -49,7 +55,7 @@ stdenv.mkDerivation ({
ln -s ../maxima/${version}/emacs $out/share/emacs/site-lisp
ln -s ../maxima/${version}/doc $out/share/doc/maxima
''
- + (lib.optionalString ecl-fasl ''
+ + (lib.optionalString (lisp-compiler.pname == "ecl") ''
cp src/binary-ecl/maxima.fas* "$out/lib/maxima/${version}/binary-ecl/"
'')
;
@@ -67,12 +73,13 @@ stdenv.mkDerivation ({
sha256 = "06961hn66rhjijfvyym21h39wk98sfxhp051da6gz0n9byhwc6zg";
})
- # undo https://sourceforge.net/p/maxima/code/ci/f5e9b0f7eb122c4e48ea9df144dd57221e5ea0ca, see see https://trac.sagemath.org/ticket/13364#comment:93
+ # undo https://sourceforge.net/p/maxima/code/ci/f5e9b0f7eb122c4e48ea9df144dd57221e5ea0ca
+ # see https://trac.sagemath.org/ticket/13364#comment:93
(fetchpatch {
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/undoing_true_false_printing_patch.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
sha256 = "0fvi3rcjv6743sqsbgdzazy9jb6r1p1yq63zyj9fx42wd1hgf7yx";
})
- ] ++ lib.optionals ecl-fasl [
+ ] ++ lib.optionals (lisp-compiler.pname == "ecl") [
# build fasl, needed for ECL support
(fetchpatch {
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/maxima.system.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
@@ -97,13 +104,13 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
passthru = {
- ecl = ecl;
+ inherit lisp-compiler;
};
- meta = {
+ meta = with lib; {
description = "Computer algebra system";
homepage = "http://maxima.sourceforge.net";
- license = lib.licenses.gpl2;
+ license = licenses.gpl2Plus;
longDescription = ''
Maxima is a fairly complete computer algebra system written in
@@ -111,7 +118,7 @@ stdenv.mkDerivation ({
DOE-MACSYMA and licensed under the GPL. Its abilities include
symbolic integration, 3D plotting, and an ODE solver.
'';
-
- platforms = lib.platforms.unix;
+ maintainers = with maintainers; [ doronbehar ];
+ platforms = platforms.unix;
};
-})
+}
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/msieve/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/msieve/default.nix
index 588df51554..6456608e7d 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/msieve/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/msieve/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, zlib, gmp, ecm }:
+{ lib, stdenv, fetchurl, zlib, gmp, ecm }:
-stdenv.mkDerivation {
- name = "msieve-1.53";
+stdenv.mkDerivation rec {
+ pname = "msieve";
+ version = "1.53";
src = fetchurl {
- url = "mirror://sourceforge/msieve/msieve/Msieve%20v1.53/msieve153_src.tar.gz";
+ url = "mirror://sourceforge/msieve/msieve/Msieve%20v${version}/msieve${lib.replaceStrings ["."] [""] version}_src.tar.gz";
sha256 = "1d1vv7j4rh3nnxsmvafi73qy7lw7n3akjlm5pjl3m936yapvmz65";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/nasc/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/nasc/default.nix
index dffbdaa23a..2fe027365c 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/nasc/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/math/pari/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/pari/default.nix
index fc1a2e0abf..4ba1d5c6b4 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/pari/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/pari/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchurl
, gmp
-, readline
, libX11
-, tex
, perl
+, readline
+, tex
, withThread ? true, libpthreadstubs
}:
@@ -12,7 +13,7 @@ assert withThread -> libpthreadstubs != null;
stdenv.mkDerivation rec {
pname = "pari";
- version = "2.13.1";
+ version = "2.13.3";
src = fetchurl {
urls = [
@@ -20,30 +21,25 @@ stdenv.mkDerivation rec {
# old versions are at the url below
"https://pari.math.u-bordeaux.fr/pub/pari/OLD/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz"
];
- sha256 = "sha256-gez31wzNquIwFlz/Ynyc4uwpe48i+fQHQiedhfht/LE=";
+ hash = "sha256-zLp/FgbGhU8UQ2N7tXrQlY1Bx/R1P4roRZ8dZMJnoco=";
};
- patches = [
- # rebased version of 3edb98db78, see
- # https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2284
- ./rnfdisc.patch
- ];
-
buildInputs = [
gmp
- readline
libX11
- tex
perl
+ readline
+ tex
] ++ lib.optionals withThread [
libpthreadstubs
];
configureScript = "./Configure";
configureFlags = [
- "--with-gmp=${gmp.dev}"
- "--with-readline=${readline.dev}"
- ] ++ lib.optional stdenv.isDarwin "--host=x86_64-darwin"
+ "--with-gmp=${lib.getDev gmp}"
+ "--with-readline=${lib.getDev readline}"
+ ]
+ ++ lib.optional stdenv.isDarwin "--host=x86_64-darwin"
++ lib.optional withThread "--mt=pthread";
preConfigure = ''
@@ -57,6 +53,7 @@ stdenv.mkDerivation rec {
makeFlags = [ "all" ];
meta = with lib; {
+ homepage = "http://pari.math.u-bordeaux.fr";
description = "Computer algebra system for high-performance number theory computations";
longDescription = ''
PARI/GP is a widely used computer algebra system designed for fast
@@ -81,7 +78,6 @@ stdenv.mkDerivation rec {
3 or 4 times faster.) gp2c currently only understands a subset of the
GP language.
'';
- homepage = "http://pari.math.u-bordeaux.fr";
downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ertes AndersonTorres ] ++ teams.sage.members;
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix b/third_party/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
index 23183f83b3..7f31543a92 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
@@ -1,7 +1,9 @@
-{ lib, stdenv
-, pari
+{ lib
+, stdenv
, fetchurl
-, perl }:
+, pari
+, perl
+}:
stdenv.mkDerivation rec {
pname = "gp2c";
@@ -12,11 +14,15 @@ stdenv.mkDerivation rec {
sha256 = "039ip7qkwwv46wrcdrz7y12m30kazzkjr44kqbc0h137g4wzd7zf";
};
- buildInputs = [ pari perl ];
+ buildInputs = [
+ pari
+ perl
+ ];
configureFlags = [
"--with-paricfg=${pari}/lib/pari/pari.cfg"
- "--with-perl=${perl}/bin/perl" ];
+ "--with-perl=${perl}/bin/perl"
+ ];
meta = with lib; {
description = "A compiler to translate GP scripts to PARI programs";
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch b/third_party/nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch
deleted file mode 100644
index 6acac96481..0000000000
--- a/third_party/nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-commit 0d8a3ac970291c62b56104172418b3f2ca30927c
-Author: Bill Allombert
-Date: Sun Mar 28 13:27:24 2021 +0200
-
- rnfdisc_factored: remove spurious Q_primpart [#2284]
-
-diff --git a/src/basemath/base2.c b/src/basemath/base2.c
-index 7e7d0db9d..c461826f4 100644
---- a/src/basemath/base2.c
-+++ b/src/basemath/base2.c
-@@ -3582,7 +3582,7 @@ rnfdisc_factored(GEN nf, GEN pol, GEN *pd)
-
- nf = checknf(nf);
- pol = rnfdisc_get_T(nf, pol, &lim);
-- disc = nf_to_scalar_or_basis(nf, nfX_disc(nf, Q_primpart(pol)));
-+ disc = nf_to_scalar_or_basis(nf, nfX_disc(nf, pol));
- pol = nfX_to_monic(nf, pol, NULL);
- fa = idealfactor_partial(nf, disc, lim);
- P = gel(fa,1); l = lg(P);
-diff --git a/src/test/32/rnf b/src/test/32/rnf
-index 1e743f415..c016dce00 100644
---- a/src/test/32/rnf
-+++ b/src/test/32/rnf
-@@ -853,9 +853,10 @@ error("inconsistent dimensions in idealtwoelt.")
- 0
- 0
- 1
--[[7361, 3786, 318, 5823; 0, 1, 0, 0; 0, 0, 1, 0; 0, 0, 0, 1], [-3, 6, -2, 0]
--~]
--[2, -1]
-+[[433, 322, 318, 1318/17; 0, 1, 0, 12/17; 0, 0, 1, 5/17; 0, 0, 0, 1/17], [25
-+/17, -12/17, 12/17, 16/17]~]
-+[1, -1]
-+[[12, 0, 0, 0; 0, 12, 4, 0; 0, 0, 4, 0; 0, 0, 0, 4], [6, 5, -1, 2]~]
- *** at top-level: rnfdedekind(nf,P,pr2,1)
- *** ^-----------------------
- *** rnfdedekind: sorry, Dedekind in the difficult case is not yet implemented.
-diff --git a/src/test/in/rnf b/src/test/in/rnf
-index 7851ae291..318d5349e 100644
---- a/src/test/in/rnf
-+++ b/src/test/in/rnf
-@@ -212,6 +212,9 @@ k = nfinit(y^4 + 10*y^2 + 17);
- rnfdisc(k, x^2 - x + 1/Mod(y,k.pol))
- rnfdisc(k, x^2 - x + 1/2)
-
-+k = nfinit(y^4 - 10*y^2 + 1);
-+rnfdisc(k,x^2-(y^3/2+y^2-5*y/2+1))
-+
- \\ ERRORS, keep at end of file
- rnfdedekind(nf, P, pr2, 1)
- rnfdedekind(nf, P)
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/pcalc/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
index cbf07135de..97888b712e 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/math/perseus/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/perseus/default.nix
index d53236d807..4545203dac 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/perseus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/perseus/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
- name = "perseus-4-beta";
+ pname = "perseus";
version = "4-beta";
nativeBuildInputs = [ unzip ];
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
'';
homepage = "http://www.sas.upenn.edu/~vnanda/perseus/index.html";
license = lib.licenses.gpl3;
- maintainers = with lib.maintainers; [erikryb];
+ maintainers = with lib.maintainers; [ erikryb ];
platforms = lib.platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix
index 0238e53335..e9c7cb985c 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix
@@ -2,13 +2,13 @@
gccStdenv.mkDerivation rec {
pname = "programmer-calculator";
- version = "2.1";
+ version = "2.2";
src = fetchFromGitHub {
owner = "alt-romes";
repo = pname;
rev = "v${version}";
- sha256 = "1vvpbj24ijl9ma0h669n9x0z1im3vqdf8zf2li0xf5h97b14gmv0";
+ sha256 = "sha256-JQcYCYKdjdy8U2XMFzqTH9kAQ7CFv0r+sC1YfuAm7p8=";
};
buildInputs = [ ncurses ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
index bc192fe421..ab5e54dab7 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "qalculate-gtk";
- version = "3.20.1";
+ version = "3.21.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-gtk";
rev = "v${version}";
- sha256 = "sha256-GTOdJ4dxR491WU6WM47xLHO7RGUGXkdHuQIDxJvVvFE=";
+ sha256 = "sha256-w0frk1Nd1/HTo94VAbD7QjVuT8laPbmgd8ENTb0+89c=";
};
hardeningDisable = [ "format" ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "The ultimate desktop calculator";
homepage = "http://qalculate.github.io";
- maintainers = with maintainers; [ gebner ];
+ maintainers = with maintainers; [ gebner doronbehar ];
license = licenses.gpl2Plus;
platforms = platforms.all;
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/ries/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/ries/default.nix
index e46553d7b0..eb75972325 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/ries/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/ries/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchzip }:
-stdenv.mkDerivation {
- name = "ries-2018-04-11";
+stdenv.mkDerivation rec {
+ pname = "ries";
+ version = "2018.04.11-1";
# upstream does not provide a stable link
src = fetchzip {
- url = "https://salsa.debian.org/debian/ries/-/archive/debian/2018.04.11-1/ries-debian-2018.04.11-1.zip";
+ url = "https://salsa.debian.org/debian/ries/-/archive/debian/${version}/ries-debian-${version}.zip";
sha256 = "1h2wvd4k7f0l0i1vm9niz453xdbcs3nxccmri50qyrzzzc1b0842";
};
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/default.nix
index b7821db1f9..e9dae55fba 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/default.nix
@@ -15,7 +15,7 @@ let
sagelib = self.callPackage ./sagelib.nix {
inherit flint arb;
inherit sage-src env-locations pynac singular;
- ecl = maxima-ecl.ecl;
+ inherit (maxima) lisp-compiler;
linbox = pkgs.linbox.override { withSage = true; };
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
};
@@ -48,9 +48,8 @@ let
# the files its looking fore are located. Also see `sage-env`.
env-locations = callPackage ./env-locations.nix {
inherit pari_data;
- inherit singular maxima-ecl;
+ inherit singular maxima;
inherit three;
- ecl = maxima-ecl.ecl;
cysignals = python3.pkgs.cysignals;
mathjax = nodePackages.mathjax;
};
@@ -61,22 +60,21 @@ let
sagelib = python3.pkgs.sagelib;
sage_docbuild = python3.pkgs.sage_docbuild;
inherit env-locations;
- inherit python3 singular palp flint pynac pythonEnv maxima-ecl;
- ecl = maxima-ecl.ecl;
+ inherit python3 singular palp flint pynac pythonEnv maxima;
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
};
# The documentation for sage, building it takes a lot of ram.
sagedoc = callPackage ./sagedoc.nix {
inherit sage-with-env;
- inherit python3 maxima-ecl;
+ inherit python3 maxima;
};
# sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
sage-with-env = callPackage ./sage-with-env.nix {
inherit python3 pythonEnv;
inherit sage-env;
- inherit pynac singular maxima-ecl;
+ inherit pynac singular maxima;
inherit three;
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
};
@@ -118,8 +116,8 @@ let
singular = pkgs.singular.override { inherit flint; };
- maxima-ecl = pkgs.maxima-ecl.override {
- ecl = pkgs.ecl.override {
+ maxima = pkgs.maxima.override {
+ lisp-compiler = pkgs.ecl.override {
# "echo syntax error | ecl > /dev/full 2>&1" segfaults in
# ECL. We apply a patch to fix it (write_error.patch), but it
# only works if threads are disabled. sage 9.2 tests this
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
index b1ad0aad9c..45a4799d1a 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
@@ -2,13 +2,12 @@
, pari_data
, pari
, singular
-, maxima-ecl
+, maxima
, conway_polynomials
, graphs
, elliptic_curves
, polytopes_db
, gap
-, ecl
, combinatorial_designs
, jmol
, mathjax
@@ -30,14 +29,14 @@ writeTextFile rec {
export SINGULAR_SO='${singular}/lib/libSingular.so'
export GAP_SO='${gap}/lib/libgap.so'
export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
- export MAXIMA_FAS='${maxima-ecl}/lib/maxima/${maxima-ecl.version}/binary-ecl/maxima.fas'
- export MAXIMA_PREFIX="${maxima-ecl}"
+ export MAXIMA_FAS='${maxima}/lib/maxima/${maxima.version}/binary-ecl/maxima.fas'
+ export MAXIMA_PREFIX="${maxima}"
export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials'
export GRAPHS_DATA_DIR='${graphs}/share/graphs'
export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
export GAP_ROOT_DIR='${gap}/share/gap/build-dir'
- export ECLDIR='${ecl}/lib/ecl-${ecl.version}/'
+ export ECLDIR='${maxima.lisp-compiler}/lib/${maxima.lisp-compiler.pname}-${maxima.lisp-compiler.version}/'
export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"
export JMOL_DIR="${jmol}/share/jmol" # point to the directory that contains JmolData.jar
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
index fd67076c97..ae0b9f7453 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
@@ -15,8 +15,7 @@
, pkg-config
, pari
, gap
-, ecl
-, maxima-ecl
+, maxima
, singular
, fflas-ffpack
, givaro
@@ -77,8 +76,8 @@ let
pkg-config
pari
gap
- ecl
- maxima-ecl
+ maxima.lisp-compiler
+ maxima
singular
giac
palp
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
index 3ba21cf6c8..4a912e002d 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
@@ -23,6 +23,12 @@ let
# branches (wip patches from tickets), but exports each commit as a separate
# patch, so merge commits can lead to conflicts. Used if squashed == false.
#
+ # The above is the preferred option. To use it, find a Trac ticket and pass the
+ # "Commit" field from the ticket as "rev", choosing "base" as an appropriate
+ # release tag, i.e. a tag that doesn't cause the patch to include a lot of
+ # unrelated changes. If there is no such tag (due to nonlinear history, for
+ # example), there are two other options, listed below.
+ #
# 2) From GitHub's sagemath/sage repo. This lets us use a GH feature that allows
# us to choose between a .patch file, with one patch per commit, or a .diff file,
# which squashes all commits into a single diff. This is used if squashed ==
@@ -110,6 +116,22 @@ 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=";
+ })
+
+ # https://trac.sagemath.org/ticket/32797
+ (fetchSageDiff {
+ base = "9.5.beta7";
+ name = "pari-2.13.3-update.patch";
+ rev = "f5f7a86908daf60b25e66e6a189c51ada7e0a732";
+ sha256 = "sha256-H/caGx3q4KcdsyGe+ojV9bUTQ5y0siqM+QHgDbeEnbw=";
+ })
];
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
index f204d97961..b74ec4007e 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -9,7 +9,7 @@
, singular
, gap
, giac
-, maxima-ecl
+, maxima
, pari
, gmp
, gfan
@@ -42,7 +42,7 @@ let
pari
gmp
gfan
- maxima-ecl
+ maxima
eclib
flintqs
ntl
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
index 76bbc90773..6016b3baeb 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
@@ -1,7 +1,7 @@
{ stdenv
, sage-with-env
, python3
-, maxima-ecl
+, maxima
, tachyon
, jmol
, cddlib
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [
sage-with-env.env.lib
python3
- maxima-ecl
+ maxima
tachyon
jmol
cddlib
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix b/third_party/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
index b9c98ed64d..a884ad8899 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
@@ -10,7 +10,7 @@
, cypari2
, cysignals
, cython
-, ecl
+, lisp-compiler
, eclib
, ecm
, flint
@@ -74,7 +74,7 @@ buildPythonPackage rec {
jupyter_core
pkg-config
pip # needed to query installed packages
- ecl
+ lisp-compiler
];
buildInputs = [
@@ -92,7 +92,7 @@ buildPythonPackage rec {
arb
brial
cliquer
- ecl
+ lisp-compiler
eclib
ecm
fflas-ffpack
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/scotch/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/scotch/default.nix
index b6613f25cb..1eb057cfc7 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/scotch/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/scotch/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, bison, mpi, flex, zlib}:
stdenv.mkDerivation rec {
- version = "6.0.4";
+ version = "6.1.1";
pname = "scotch";
src_name = "scotch_${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/file/34618/${src_name}.tar.gz";
- sha256 = "f53f4d71a8345ba15e2dd4e102a35fd83915abf50ea73e1bf6efe1bc2b4220c7";
+ sha256 = "sha256-OQUvWf9HSkppzvwlzzyvhClACIneugEO5kA8oYj4sxE=";
};
sourceRoot = "${src_name}/src";
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/third_party/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
index 57e4a6f1d3..76d2c782b4 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -1,21 +1,37 @@
-{ lib, stdenv, fetchFromGitHub
-, wrapGAppsHook, cmake, gettext
-, maxima, wxGTK, gnome }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, wrapGAppsHook
+, cmake
+, gettext
+, maxima
+, wxGTK
+, gnome
+}:
stdenv.mkDerivation rec {
pname = "wxmaxima";
- version = "21.05.2";
+ version = "21.11.0";
src = fetchFromGitHub {
owner = "wxMaxima-developers";
repo = "wxmaxima";
rev = "Version-${version}";
- sha256 = "sha256-HPqdxGrPxe5FZNOimTpAP+c9VpDBkXu3Z1c1Aaf3+UA=";
+ sha256 = "sha256-LwuqldMGsmFR8xrNg5vsrogmdi5ysqEQGWITM460IZk=";
};
- buildInputs = [ wxGTK maxima gnome.adwaita-icon-theme ];
+ buildInputs = [
+ wxGTK
+ maxima
+ # So it won't embed svg files into headers.
+ gnome.adwaita-icon-theme
+ ];
- nativeBuildInputs = [ wrapGAppsHook cmake gettext ];
+ nativeBuildInputs = [
+ wrapGAppsHook
+ cmake
+ gettext
+ ];
preConfigure = ''
gappsWrapperArgs+=(--prefix PATH ":" ${maxima}/bin)
@@ -25,6 +41,7 @@ stdenv.mkDerivation rec {
description = "Cross platform GUI for the computer algebra system Maxima";
license = licenses.gpl2;
homepage = "https://wxmaxima-developers.github.io/wxmaxima/";
+ maintainers = with maintainers; [ doronbehar ];
platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix b/third_party/nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix
index e4a5f22891..bee2be729d 100644
--- a/third_party/nixpkgs/pkgs/applications/science/medicine/xmedcon/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix b/third_party/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix
index 21e3c47b32..7cbd9354a3 100644
--- a/third_party/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix
@@ -1,22 +1,35 @@
{ lib
-, python3Packages
+, fetchFromGitHub
+, git
+, nodejs
+, python3
}:
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
pname = "cwltool";
- version = "3.1.20210628163208";
+ version = "3.1.20211104071347";
+ format = "setuptools";
- src = python3Packages.fetchPypi {
- inherit pname version;
- sha256 = "21b885f725420413d2f87eadc5e81c08a9c91beceda89b35d1a702ec4df47e52";
+ disabled = python3.pythonOlder "3.6";
+
+ src = fetchFromGitHub {
+ owner = "common-workflow-language";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-tp4SdilW2PKav7b3/BchXYl33W9U0aQH6FPdOhHSvIQ=";
};
postPatch = ''
substituteInPlace setup.py \
- --replace 'prov == 1.5.1' 'prov'
+ --replace 'prov == 1.5.1' 'prov' \
+ --replace "setup_requires=PYTEST_RUNNER," ""
'';
- propagatedBuildInputs = with python3Packages; [
+ nativeBuildInputs = [
+ git
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
argcomplete
bagit
coloredlogs
@@ -24,18 +37,41 @@ python3Packages.buildPythonApplication rec {
prov
psutil
pydot
+ rdflib
+ requests
+ ruamel-yaml
schema-salad
shellescape
typing-extensions
];
- doCheck = false; # hard to setup
- pythonImportsCheck = [ "cwltool" ];
+ checkInputs = with python3.pkgs; [
+ mock
+ nodejs
+ pytest-mock
+ pytest-xdist
+ pytestCheckHook
+ ];
+
+ disabledTests = [
+ "test_content_types"
+ "test_env_filtering"
+ "test_http_path_mapping"
+ ];
+
+ disabledTestPaths = [
+ "tests/test_udocker.py"
+ "tests/test_provenance.py"
+ ];
+
+ pythonImportsCheck = [
+ "cwltool"
+ ];
meta = with lib; {
+ description = "Common Workflow Language reference implementation";
homepage = "https://www.commonwl.org";
license = with licenses; [ asl20 ];
- description = "Common Workflow Language reference implementation";
maintainers = with maintainers; [ veprbl ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix b/third_party/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
index 3ab7d57f95..783381f9db 100644
--- a/third_party/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix b/third_party/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
index 731230130c..a92920c5e7 100644
--- a/third_party/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
@@ -1,9 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake
-, eigen, opencv, ceres-solver, cgal, boost, vcg
-, gmp, mpfr, glog, gflags, libjpeg_turbo }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, eigen
+, opencv
+, ceres-solver
+, cgal
+, boost
+, vcg
+, gmp
+, mpfr
+, glog
+, gflags
+, libjpeg_turbo
+}:
stdenv.mkDerivation {
- name = "openmvs-unstable-2018-05-26";
+ pname = "openmvs";
+ version = "unstable-2018-05-26";
src = fetchFromGitHub {
owner = "cdcseacave";
diff --git a/third_party/nixpkgs/pkgs/applications/science/misc/root/5.nix b/third_party/nixpkgs/pkgs/applications/science/misc/root/5.nix
index 715c5c90cb..de85043f12 100644
--- a/third_party/nixpkgs/pkgs/applications/science/misc/root/5.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/misc/root/5.nix
@@ -61,6 +61,28 @@ stdenv.mkDerivation rec {
];
preConfigure = ''
+ # binutils 2.37 fixes
+ fixupList=(
+ cint/demo/gl/make0
+ cint/demo/exception/Makefile
+ cint/demo/makecint/KRcc/Makefile
+ cint/demo/makecint/Stub2/Make2
+ cint/demo/makecint/Array/Makefile
+ cint/demo/makecint/DArray/Makefile
+ cint/demo/makecint/ReadFile/Makefile
+ cint/demo/makecint/stl/Makefile
+ cint/demo/makecint/Stub2/Make1
+ cint/cint/include/makemat
+ cint/cint/lib/WildCard/Makefile
+ cint/cint/include/make.arc
+ cint/cint/lib/qt/Makefile
+ cint/cint/lib/pthread/Makefile
+ graf2d/asimage/src/libAfterImage/Makefile.in
+ )
+ for toFix in "''${fixupList[@]}"; do
+ substituteInPlace "$toFix" --replace "clq" "cq"
+ done
+
patchShebangs build/unix/
ln -s ${lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
''
diff --git a/third_party/nixpkgs/pkgs/applications/science/misc/vite/default.nix b/third_party/nixpkgs/pkgs/applications/science/misc/vite/default.nix
index ed9d185287..7d284d5eeb 100644
--- a/third_party/nixpkgs/pkgs/applications/science/misc/vite/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/misc/vite/default.nix
@@ -10,7 +10,8 @@ let
};
in
stdenv.mkDerivation {
- name = "vite-1.2pre${rev}";
+ pname = "vite";
+ version = "1.2pre${rev}";
src = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/trunk";
diff --git a/third_party/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/third_party/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index bdec2ccc66..f30e94f03d 100644
--- a/third_party/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/third_party/nixpkgs/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
}:
@@ -19,25 +14,37 @@ let
if stdenv.hostPlatform.system == "i686-linux" then "SSE2" else
if stdenv.hostPlatform.system == "x86_64-linux" then "SSE4.1" else
if stdenv.hostPlatform.system == "x86_64-darwin" then "SSE4.1" else
- if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON" else
+ if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON_ASIMD" else
"None";
in stdenv.mkDerivation rec {
pname = "gromacs";
- version = "2020.4";
+ version = "2021.4";
src = fetchurl {
url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
- sha256 = "1rplvgna60nqyb8nspaz3bfkwb044kv3zxdaa5whql5m441nj6am";
+ sha256 = "07ds8abxq0k7vfpjvxb8in3fhb6lz0pbdzbmlidyzaw37qz8lw6b";
};
nativeBuildInputs = [ cmake ];
- buildInputs = [ fftw perl hwloc ]
- ++ (lib.optionals mpiEnabled [ mpi ]);
+
+ buildInputs = [
+ fftw
+ perl
+ hwloc
+ blas
+ lapack
+ ] ++ lib.optional enableMpi mpi
+ ++ lib.optional enableCuda cudatoolkit
+ ;
+
+ propagatedBuildInputs = lib.optional enableMpi mpi;
+ propagatedUserEnvPkgs = lib.optional enableMpi mpi;
cmakeFlags = [
"-DGMX_SIMD:STRING=${SIMD cpuAcceleration}"
"-DGMX_OPENMP:BOOL=TRUE"
+ "-DBUILD_SHARED_LIBS=ON"
] ++ (
if singlePrec then [
"-DGMX_DOUBLE=OFF"
@@ -46,13 +53,15 @@ in stdenv.mkDerivation rec {
"-DGMX_DEFAULT_SUFFIX=OFF"
]
) ++ (
- if mpiEnabled then [
- "-DGMX_MPI:BOOL=TRUE"
- "-DGMX_THREAD_MPI:BOOL=FALSE"
- ] else [
- "-DGMX_MPI:BOOL=FALSE"
- ]
- );
+ if enableMpi
+ then [
+ "-DGMX_MPI:BOOL=TRUE"
+ "-DGMX_THREAD_MPI:BOOL=FALSE"
+ ]
+ else [
+ "-DGMX_MPI:BOOL=FALSE"
+ ]
+ ) ++ lib.optional enableCuda "-DGMX_GPU=CUDA";
meta = with lib; {
homepage = "http://www.gromacs.org";
@@ -78,5 +87,6 @@ in stdenv.mkDerivation rec {
See: http://www.gromacs.org/About_Gromacs for details.
'';
platforms = platforms.unix;
+ maintainers = with maintainers; [ sheepforce markuskowa ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix b/third_party/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
index 85e20f38b6..dd3fef5bf2 100644
--- a/third_party/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
@@ -13,7 +13,7 @@ mkDerivation rec {
meta = with lib; {
description = "An analysis tool for airfoils, wings and planes";
- homepage = https://sourceforge.net/projects/xflr5/;
+ homepage = "https://sourceforge.net/projects/xflr5/";
license = licenses.gpl3;
maintainers = [ maintainers.esclear ];
platforms = platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/third_party/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 2fafa2ebf8..3331877e1f 100644
--- a/third_party/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -13,10 +13,10 @@ let
in
stdenv.mkDerivation rec {
inherit pname;
- version = "10.7.0";
+ version = "10.7.1";
src = fetchurl {
url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
- sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
+ sha256 = "sha256-mMjy7Ve7wEmPxkAmux0WahUgJ86ylnWZP4smDZeBs8Q=";
};
nativeBuildInputs = [ wrapGAppsHook unzip ];
diff --git a/third_party/nixpkgs/pkgs/applications/search/doodle/default.nix b/third_party/nixpkgs/pkgs/applications/search/doodle/default.nix
index c4f6362465..2016d6afff 100644
--- a/third_party/nixpkgs/pkgs/applications/search/doodle/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/search/doodle/default.nix
@@ -1,12 +1,13 @@
{ lib, stdenv, fetchurl, libextractor, gettext }:
stdenv.mkDerivation rec {
- name = "doodle-0.7.2";
+ pname = "doodle";
+ version = "0.7.2";
buildInputs = [ libextractor gettext ];
src = fetchurl {
- url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
+ url = "https://grothoff.org/christian/doodle/download/doodle-${version}.tar.gz";
sha256 = "sha256-dtRPfUjhBNgN+5zHMYmszISmBv1+K6yjKsbQBiAXWRA=";
};
@@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
homepage = "https://grothoff.org/christian/doodle/";
description = "Tool to quickly index and search documents on a computer";
license = lib.licenses.gpl2Plus;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/system/glances/default.nix b/third_party/nixpkgs/pkgs/applications/system/glances/default.nix
index 7c3120f570..b25065c5f1 100644
--- a/third_party/nixpkgs/pkgs/applications/system/glances/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/system/glances/default.nix
@@ -1,5 +1,5 @@
{ stdenv, buildPythonApplication, fetchFromGitHub, isPyPy, lib
-, defusedxml, future, psutil, setuptools
+, defusedxml, future, packaging, psutil, setuptools
# Optional dependencies:
, bottle, pysnmp
, hddtemp
@@ -9,14 +9,14 @@
buildPythonApplication rec {
pname = "glances";
- version = "3.2.3.1";
+ version = "3.2.4.2";
disabled = isPyPy;
src = fetchFromGitHub {
owner = "nicolargo";
repo = "glances";
rev = "v${version}";
- sha256 = "0h7y36z4rizl1lyxacq32vpmvbwn9w2nrvrxn791060cksfw4xwd";
+ sha256 = "0gql61lrav3f7wbsvgc1d6vf8r0xi5xs9rz9d3sqw3wj5m90w0vq";
};
# Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -40,6 +40,7 @@ buildPythonApplication rec {
defusedxml
future
netifaces
+ packaging
psutil
pysnmp
setuptools
diff --git a/third_party/nixpkgs/pkgs/applications/system/monitor/default.nix b/third_party/nixpkgs/pkgs/applications/system/monitor/default.nix
index f5d36c332a..6b535e5ad4 100644
--- a/third_party/nixpkgs/pkgs/applications/system/monitor/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/system/pantheon-tweaks/default.nix b/third_party/nixpkgs/pkgs/applications/system/pantheon-tweaks/default.nix
index 5834e8d963..af6bf54fd7 100644
--- a/third_party/nixpkgs/pkgs/applications/system/pantheon-tweaks/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/system/pantheon-tweaks/default.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "pantheon-tweaks";
- version = "1.0.1";
+ version = "1.0.3";
src = fetchFromGitHub {
owner = "pantheon-tweaks";
repo = pname;
rev = version;
- sha256 = "sha256-tAfDxX/RD7pO5PN/LaZ92Cj/iZtBI/EHb0+pORfYnPM=";
+ sha256 = "sha256-Pn/MIJ/WS/TY5bemM77B37E0KFRlDUfrOl1XS2yJlGk=";
};
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/third_party/nixpkgs/pkgs/applications/system/systemdgenie/default.nix b/third_party/nixpkgs/pkgs/applications/system/systemdgenie/default.nix
new file mode 100644
index 0000000000..ad009be563
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/system/systemdgenie/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, cmake
+, extra-cmake-modules
+, kxmlgui
+, fetchFromGitLab
+, kdelibs4support
+, wrapQtAppsHook
+}:
+stdenv.mkDerivation rec{
+ pname = "systemdgenie";
+ version = "0.99.0";
+ src = fetchFromGitLab {
+ domain = "invent.kde.org";
+ repo = "SystemdGenie";
+ owner = "system";
+ rev = "v${version}";
+ hash = "sha256-y+A2OuK1ZooPY5W0SsXEb1aaOAJ2b7QSwiumolmAaR4=";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+
+ buildInputs = [ kxmlgui kdelibs4support ];
+
+ meta = with lib; {
+ description = "Systemd management utility";
+ homepage = "https://kde.org";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.pasqui23 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
index 0a23d63e3e..a25613ba58 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
index 837b2b45a3..389408377c 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
@@ -27,7 +27,7 @@
}:
let
- version = "1.9.2";
+ version = "1.10.1";
# build stimuli file for PGO build and the script to generate it
# independently of the foot's build, so we can cache the result
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
owner = "dnkl";
repo = pname;
rev = version;
- sha256 = "15h01ijx87i60bdgjjap1ymwlxggsxc6iziykh3bahj8432s1836";
+ sha256 = "12n1v9by519fg40xvjf4v0g2phi08lcg0clz7rxs2i2xwlizz7nc";
};
depsBuildBuild = [
@@ -170,7 +170,13 @@ stdenv.mkDerivation rec {
llvm-profdata merge default_*profraw --output=default.profdata
'';
- outputs = [ "out" "terminfo" ];
+ # Install example themes which can be added to foot.ini via the include
+ # directive to a separate output to save a bit of space
+ postInstall = ''
+ moveToOutput share/foot/themes "$themes"
+ '';
+
+ outputs = [ "out" "terminfo" "themes" ];
passthru.tests = {
clang-default-compilation = foot.override {
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
index 1d20082453..423c31fd05 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix
index 9f157a75f9..4c46bcc6c3 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
/*
This derivation is impure: it relies on an Xcode toolchain being installed
@@ -8,15 +8,15 @@
option set to `relaxed` or `false`.
*/
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
pname = "iterm2";
- version = "3.4.0";
+ version = "3.4.14";
src = fetchFromGitHub {
owner = "gnachman";
repo = "iTerm2";
rev = "v${version}";
- sha256 = "09nhrmi25zxw3vp0wlib9kjr3p1j6am2zpwimdzqn0c80fq1lwvi";
+ sha256 = "sha256-sDCnBO7xDpecu2cSjpHwync2DVsj9EKUmgpqEVLtxRM=";
};
patches = [ ./disable_updates.patch ];
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
index cfd46a613f..4cd8f72b79 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
index bd01b0843f..ba6c6ab87c 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
@@ -1,11 +1,27 @@
-{ lib, stdenv, fetchurl, libX11, libXft, libXi, xorgproto, libSM, libICE
-, freetype, pkg-config, which }:
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXft
+, libXi
+, xorgproto
+, libSM
+, libICE
+, freetype
+, pkg-config
+, which
+}:
-stdenv.mkDerivation {
- name = "mrxvt-0.5.4";
+stdenv.mkDerivation rec {
+ pname = "mrxvt";
+ version = "0.5.4";
- buildInputs =
- [ libX11 libXft libXi xorgproto libSM libICE freetype pkg-config which ];
+ src = fetchurl {
+ url = "mirror://sourceforge/materm/mrxvt-${version}.tar.gz";
+ sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
+ };
+
+ buildInputs = [ libX11 libXft libXi xorgproto libSM libICE freetype pkg-config which ];
configureFlags = [
"--with-x"
@@ -22,11 +38,6 @@ stdenv.mkDerivation {
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype.dev}/include/freetype2";
'';
- src = fetchurl {
- url = "mirror://sourceforge/materm/mrxvt-0.5.4.tar.gz";
- sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
- };
-
meta = with lib; {
description = "Lightweight multitabbed feature-rich X11 terminal emulator";
longDescription = "
@@ -36,6 +47,7 @@ stdenv.mkDerivation {
homepage = "https://sourceforge.net/projects/materm";
license = licenses.gpl2;
platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
knownVulnerabilities = [
"Usage of ANSI escape sequences causes unexpected newline-termination, leading to unexpected command execution (https://www.openwall.com/lists/oss-security/2021/05/17/1)"
];
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix
index fff534aaff..da9bfac952 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix
@@ -1,4 +1,4 @@
-{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, epoxy, fetchpatch, fetchFromGitHub
+{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, libepoxy, fetchFromGitHub
, glib, gtk3, harfbuzz, libXdmcp, libXtst, libpthreadstubs
, libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre2
, pkg-config, lib, stdenv, util-linuxMinimal, vte, wrapGAppsHook, xmlto
@@ -6,31 +6,21 @@
stdenv.mkDerivation rec {
pname = "roxterm";
- version = "3.7.5";
+ version = "3.11.1";
src = fetchFromGitHub {
owner = "realh";
repo = "roxterm";
rev = version;
- sha256 = "042hchvgk9jzz035zsgnfhh8105zvspbzz6b78waylsdlgqn0pp1";
+ sha256 = "1n7588bl83sp51jwjq97f526c7fkh0kq90idw3nayb4zmi530irx";
};
- patches = [
- # This is the commit directly after v3.7.5. It is needed to get roxterm to
- # build correctly. It can be removed when v3.7.6 (or v3.8.0) has been
- # released.
- (fetchpatch {
- url = "https://github.com/realh/roxterm/commit/f7c38fd48bd1810e16d82794bdfb61a9760a2fe1.patch";
- sha256 = "1v77b7ilgf8zy1npxxcyc06mq6lck6bi6lw4aksnq3mi61n5znmx";
- })
- ];
-
nativeBuildInputs = [ cmake pkg-config wrapGAppsHook libxslt ];
buildInputs =
[ gtk3 dbus dbus-glib vte pcre2 harfbuzz libpthreadstubs libXdmcp
util-linuxMinimal glib docbook_xsl xmlto libselinux
- libsepol libxkbcommon epoxy at-spi2-core libXtst libtasn1 p11-kit
+ libsepol libxkbcommon libepoxy at-spi2-core libXtst libtasn1 p11-kit
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
index b9c72c97d6..9ecaffb185 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, wmctrl }:
stdenv.mkDerivation {
- name = "urxvt-perl-2015-01-16";
+ pname = "urxvt-perl";
+ version = "unstable-2015-01-16";
src = fetchFromGitHub {
owner = "effigies";
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
index 303555db72..c7510568e2 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
@@ -1,14 +1,15 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
- rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
- name = "urxvt-theme-switch-2014-12-21_rev${builtins.substring 0 1 rev}";
+ pname = "urxvt-theme-switch";
+ version = "unstable-2014-12-21";
+
dontPatchShebangs = true;
src = fetchFromGitHub {
owner = "felixr";
repo = "urxvt-theme-switch";
- inherit rev;
+ rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
sha256 = "0x27m1vdqprn3lqpwgxvffill7prmaj6j9rhgvkvi13mzl5wmlli";
};
@@ -23,6 +24,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/felixr/urxvt-theme-switch";
license = "CCBYNC";
maintainers = with maintainers; [ ];
- platforms = with platforms; unix;
+ platforms = platforms.unix;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
index 446126aad7..7d3d69122f 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
@@ -1,13 +1,13 @@
{ lib, stdenv, fetchgit, perl }:
stdenv.mkDerivation {
-
- name = "rxvt-unicode-vtwheel-0.3.2";
+ pname = "rxvt-unicode-vtwheel";
+ version = "0.3.2";
src = fetchgit {
- url = "https://aur.archlinux.org/urxvt-vtwheel.git";
- rev = "36d3e861664aeae36a45f96100f10f8fe2218035";
- sha256 = "1h3vrsbli5q9kr84j5ijbivlhpwlh3l8cv233pg362v2zz4ja8i7";
+ url = "https://aur.archlinux.org/urxvt-vtwheel.git";
+ rev = "36d3e861664aeae36a45f96100f10f8fe2218035";
+ sha256 = "1h3vrsbli5q9kr84j5ijbivlhpwlh3l8cv233pg362v2zz4ja8i7";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix
index 44c34d76f4..8434c233ad 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix
@@ -1,6 +1,6 @@
{ lib
, stdenv
-, fetchurl
+, fetchFromGitHub
, cmake
, glib
, gtk3
@@ -13,11 +13,13 @@
stdenv.mkDerivation rec {
pname = "sakura";
- version = "3.8.3";
+ version = "3.8.4";
- src = fetchurl {
- url = "https://launchpad.net/${pname}/trunk/${version}/+download/${pname}-${version}.tar.bz2";
- sha256 = "sha256-UEDc3TjoqjLNZtWGlIZB3VTVQC+31AP0ASQH0fu+U+Q=";
+ src = fetchFromGitHub {
+ owner = "dabisu";
+ repo = pname;
+ rev = "SAKURA_${lib.replaceStrings [ "." ] [ "_" ] version}";
+ hash = "sha256-Sqo1gyCvCMlEv1rYqw6P3Dmu10osi/KqB7/WlgTTNAc=";
};
nativeBuildInputs = [
@@ -36,7 +38,7 @@ stdenv.mkDerivation rec {
# Set path to gsettings-schemata so sakura knows where to find colorchooser,
# fontchooser etc.
- postInstall = ''
+ postFixup = ''
wrapProgram $out/bin/sakura \
--suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/
'';
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
index a5c4b4574d..c217ae7f99 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "gnunn1";
repo = "tilix";
- rev = "${version}";
+ rev = version;
sha256 = "sha256:020gr4q7kmqq8vnsh8rw97gf1p2n1yq4d7ncyjjh9l13zkaxqqv9";
};
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix
index 19e3a1c37e..6688b6041e 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -3,6 +3,7 @@
, lib
, fetchFromGitHub
, ncurses
+, perl
, pkg-config
, python3
, fontconfig
@@ -17,7 +18,6 @@
, xcbutilwm
, wayland
, zlib
- # Apple frameworks
, CoreGraphics
, Cocoa
, Foundation
@@ -26,7 +26,7 @@
rustPlatform.buildRustPackage rec {
pname = "wezterm";
- version = "20210814-124438-54e29167";
+ version = "20211204-082213-a66c61ee9";
outputs = [ "out" "terminfo" ];
@@ -35,20 +35,23 @@ rustPlatform.buildRustPackage rec {
repo = pname;
rev = version;
fetchSubmodules = true;
- sha256 = "sha256-6HXTftgAs6JMzOMCY+laN74in8xfjE8yJc5xSl9PQCE=";
+ sha256 = "sha256-QKtnOpAW4exDQEFSN0b04hA6TYuC+/C5nIYHCNzfuso=";
};
postPatch = ''
echo ${version} > .tag
+
+ # tests are failing with: Unable to exchange encryption keys
+ rm -r wezterm-ssh/tests
'';
- cargoSha256 = "sha256-yjTrWoqIKoRV4oZQ0mfTGrIGmm89AaKJd16WL1Ozhnw=";
+ cargoSha256 = "sha256-qSThjV6oBD6joDM0Eppo7z0SL8GHV5SaCaAwXmUIT3I=";
nativeBuildInputs = [
pkg-config
python3
ncurses # tic for terminfo
- ];
+ ] ++ lib.optional stdenv.isDarwin perl;
buildInputs = [
fontconfig
@@ -102,5 +105,7 @@ rustPlatform.buildRustPackage rec {
license = licenses.mit;
maintainers = with maintainers; [ SuperSandro2000 ];
platforms = platforms.unix;
+ # Fails on missing UserNotifications framework while linking
+ broken = stdenv.isDarwin;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix b/third_party/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
index 4bb9386a11..738260646f 100644
--- a/third_party/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -4,14 +4,14 @@
stdenv.mkDerivation rec {
pname = "xterm";
- version = "369";
+ version = "370";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
];
- sha256 = "ce1qSNBkiT0hSXQaACeBqXNJb9JNUtrdNk9jQ5p2TiY=";
+ sha256 = "ljxdhAoPD0wHf/KEWG6LH4Pz+YPcpvdPSzYZdbU4jII=";
};
strictDeps = true;
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/bcompare/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
index 98c0ad8bc3..f3bd18eb32 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
@@ -1,54 +1,82 @@
-{ autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, pango, gtk2, kcoreaddons, ki18n, kio, kservice, lib, qt4, qtbase, stdenv, runtimeShell }:
+{ lib, autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, glibc, pango, gtk2, kcoreaddons, ki18n, kio, kservice
+, stdenv, runtimeShell, unzip
+}:
-stdenv.mkDerivation rec {
+let
pname = "bcompare";
version = "4.4.0.25886";
- src = fetchurl {
- url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
- sha256 = "sha256-zQZrCjXzoOZ5o5M4t1n5/HhGoGTcZSj5rlf9Uz9UZko=";
+ throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ srcs = {
+ x86_64-linux = fetchurl {
+ url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
+ sha256 = "sha256-zQZrCjXzoOZ5o5M4t1n5/HhGoGTcZSj5rlf9Uz9UZko=";
+ };
+
+ x86_64-darwin = fetchurl {
+ url = "https://www.scootersoftware.com/BCompareOSX-${version}.zip";
+ sha256 = "sha256-dez30a1sp+4XuBBYhu07Vpn1+AUmX0Ni7aad7hy2ajQ=";
+ };
+
+ aarch64-darwin = srcs.x86_64-darwin;
};
- unpackPhase = ''
- ar x $src
- tar xfz data.tar.gz
- '';
+ src = srcs.${stdenv.hostPlatform.system} or throwSystem;
- installPhase = ''
- mkdir -p $out/bin $out/lib $out/share
- cp -R usr/share $out/
- cp -R usr/lib $out/
- cp -R usr/bin $out/
+ linux = stdenv.mkDerivation {
+ inherit pname version src meta;
+ unpackPhase = ''
+ ar x $src
+ tar xfz data.tar.gz
+ '';
- # Remove library that refuses to be autoPatchelf'ed
- rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so
+ installPhase = ''
+ mkdir -p $out/{bin,lib,share}
- substituteInPlace $out/bin/bcompare \
- --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
- --replace "/bin/bash" "${runtimeShell}"
+ cp -R usr/{bin,lib,share} $out/
- # Create symlink bzip2 library
- ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0
- '';
+ # Remove library that refuses to be autoPatchelf'ed
+ rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so
- nativeBuildInputs = [ autoPatchelfHook ];
+ substituteInPlace $out/bin/${pname} \
+ --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
+ --replace "ldd" "${glibc.out}/bin/ldd" \
+ --replace "/bin/bash" "${runtimeShell}"
- buildInputs = [
- stdenv.cc.cc.lib
- gtk2
- pango
- cairo
- kio
- kservice
- ki18n
- kcoreaddons
- gdk-pixbuf
- bzip2
- ];
+ # Create symlink bzip2 library
+ ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0
+ '';
- dontBuild = true;
- dontConfigure = true;
- dontWrapQtApps = true;
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ buildInputs = [
+ stdenv.cc.cc.lib
+ gtk2
+ pango
+ cairo
+ kio
+ kservice
+ ki18n
+ kcoreaddons
+ gdk-pixbuf
+ bzip2
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontWrapQtApps = true;
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit pname version src meta;
+ nativeBuildInputs = [ unzip ];
+
+ installPhase = ''
+ mkdir -p $out/Applications/BCompare.app
+ cp -R . $out/Applications/BCompare.app
+ '';
+ };
meta = with lib; {
description = "GUI application that allows to quickly and easily compare files and folders";
@@ -59,8 +87,10 @@ stdenv.mkDerivation rec {
'';
homepage = "https://www.scootersoftware.com";
license = licenses.unfree;
- maintainers = [ maintainers.ktor ];
- platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ ktor arkivm ];
+ platforms = builtins.attrNames srcs;
};
-
-}
+in
+if stdenv.isDarwin
+then darwin
+else linux
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh b/third_party/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
index 7111289d29..9855e2d41d 100755
--- a/third_party/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
+++ b/third_party/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#! nix-shell -i bash -p nodePackages.node2nix
+#! nix-shell -I nixpkgs=../../../.. -i bash -p nodePackages.node2nix
node2nix \
--node-env node-env.nix \
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix b/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
index 0769168a78..53bdef1f98 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
@@ -1,4 +1,4 @@
-# This file has been generated by node2nix 1.8.0. Do not edit!
+# This file has been generated by node2nix 1.9.0. Do not edit!
{pkgs ? import {
inherit system;
@@ -6,12 +6,12 @@
let
nodeEnv = import ./node-env.nix {
- inherit (pkgs) lib stdenv python2 util-linux runCommand writeTextFile;
- inherit nodejs;
+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
+ inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
in
import ./node-packages.nix {
- inherit (pkgs) fetchurl fetchgit;
+ inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
inherit nodeEnv;
}
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix b/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
index 262df27e46..5f05578579 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
@@ -1,8 +1,11 @@
# This file originates from node2nix
-{lib, stdenv, nodejs, python2, util-linux, libtool, runCommand, writeTextFile}:
+{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
let
+ # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
+ utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
+
python = if nodejs ? python then nodejs.python else python2;
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
@@ -37,36 +40,22 @@ let
'';
};
- includeDependencies = {dependencies}:
- lib.optionalString (dependencies != [])
- (lib.concatMapStrings (dependency:
- ''
- # Bundle the dependencies of the package
- mkdir -p node_modules
- cd node_modules
+ # Common shell logic
+ installPackage = writeShellScript "install-package" ''
+ installPackage() {
+ local packageName=$1 src=$2
- # Only include dependencies if they don't exist. They may also be bundled in the package.
- if [ ! -e "${dependency.name}" ]
- then
- ${composePackage dependency}
- fi
+ local strippedName
- cd ..
- ''
- ) dependencies);
-
- # Recursively composes the dependencies of a package
- composePackage = { name, packageName, src, dependencies ? [], ... }@args:
- builtins.addErrorContext "while evaluating node package '${packageName}'" ''
- DIR=$(pwd)
+ local DIR=$PWD
cd $TMPDIR
- unpackFile ${src}
+ unpackFile $src
# Make the base dir in which the target dependency resides first
- mkdir -p "$(dirname "$DIR/${packageName}")"
+ mkdir -p "$(dirname "$DIR/$packageName")"
- if [ -f "${src}" ]
+ if [ -f "$src" ]
then
# Figure out what directory has been unpacked
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
@@ -76,28 +65,53 @@ let
chmod -R u+w "$packageDir"
# Move the extracted tarball into the output folder
- mv "$packageDir" "$DIR/${packageName}"
- elif [ -d "${src}" ]
+ mv "$packageDir" "$DIR/$packageName"
+ elif [ -d "$src" ]
then
# Get a stripped name (without hash) of the source directory.
# On old nixpkgs it's already set internally.
if [ -z "$strippedName" ]
then
- strippedName="$(stripHash ${src})"
+ strippedName="$(stripHash $src)"
fi
# Restore write permissions to make building work
chmod -R u+w "$strippedName"
# Move the extracted directory into the output folder
- mv "$strippedName" "$DIR/${packageName}"
+ mv "$strippedName" "$DIR/$packageName"
fi
- # Unset the stripped name to not confuse the next unpack step
- unset strippedName
+ # Change to the package directory to install dependencies
+ cd "$DIR/$packageName"
+ }
+ '';
- # Include the dependencies of the package
- cd "$DIR/${packageName}"
+ # Bundle the dependencies of the package
+ #
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ includeDependencies = {dependencies}:
+ lib.optionalString (dependencies != []) (
+ ''
+ mkdir -p node_modules
+ cd node_modules
+ ''
+ + (lib.concatMapStrings (dependency:
+ ''
+ if [ ! -e "${dependency.name}" ]; then
+ ${composePackage dependency}
+ fi
+ ''
+ ) dependencies)
+ + ''
+ cd ..
+ ''
+ );
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+ builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+ installPackage "${packageName}" "${src}"
${includeDependencies { inherit dependencies; }}
cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
@@ -242,8 +256,8 @@ let
if(fs.existsSync("./package-lock.json")) {
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
- if(packageLock.lockfileVersion !== 1) {
- process.stderr.write("Sorry, I only understand lock file version 1!\n");
+ if(![1, 2].includes(packageLock.lockfileVersion)) {
+ process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
process.exit(1);
}
@@ -388,15 +402,16 @@ let
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
+ , meta ? {}
, ... }@args:
let
- extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
in
stdenv.mkDerivation ({
- name = "node_${name}-${version}";
+ name = "${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
- ++ lib.optional (stdenv.isLinux) util-linux
+ ++ lib.optional (stdenv.isLinux) utillinux
++ lib.optional (stdenv.isDarwin) libtool
++ buildInputs;
@@ -411,6 +426,8 @@ let
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
installPhase = ''
+ source ${installPackage}
+
# Create and enter a root node_modules/ folder
mkdir -p $out/lib/node_modules
cd $out/lib/node_modules
@@ -443,10 +460,15 @@ let
# Run post install hook, if provided
runHook postInstall
'';
+
+ meta = {
+ # default to Node.js' platforms
+ platforms = nodejs.meta.platforms;
+ } // meta;
} // extraArgs);
- # Builds a development shell
- buildNodeShell =
+ # Builds a node environment (a node_modules folder and a set of binaries)
+ buildNodeDependencies =
{ name
, packageName
, version
@@ -465,12 +487,12 @@ let
let
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
-
- nodeDependencies = stdenv.mkDerivation ({
+ in
+ stdenv.mkDerivation ({
name = "node-dependencies-${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
- ++ lib.optional (stdenv.isLinux) util-linux
+ ++ lib.optional (stdenv.isLinux) utillinux
++ lib.optional (stdenv.isDarwin) libtool
++ buildInputs;
@@ -483,6 +505,8 @@ let
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
installPhase = ''
+ source ${installPackage}
+
mkdir -p $out/${packageName}
cd $out/${packageName}
@@ -512,11 +536,32 @@ let
ln -s $out/lib/node_modules/.bin $out/bin
'';
} // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ nodeDependencies = buildNodeDependencies args;
in
stdenv.mkDerivation {
name = "node-shell-${name}-${version}";
- buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) util-linux ++ buildInputs;
+ buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
buildCommand = ''
mkdir -p $out/bin
cat > $out/bin/shell < perlSupport;
assert svnSupport -> perlSupport;
let
- version = "2.33.0";
+ version = "2.34.0";
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 = "07s1c9lzlm4kpbb5lmxy0869phg7037pv4faz5hlqyb5csrbjv7x";
};
outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -73,7 +73,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_45 libxslt ];
- buildInputs = [curl openssl zlib expat cpio libiconv]
+ buildInputs = [ curl openssl zlib expat cpio libiconv bash ]
++ lib.optionals perlSupport [ perlPackages.perl ]
++ lib.optionals guiSupport [tcl tk]
++ lib.optionals withpcre2 [ pcre2 ]
@@ -84,11 +84,12 @@ stdenv.mkDerivation {
NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s"
+ lib.optionalString (stdenv.isFreeBSD) "-lthr";
- configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+ configureFlags = [
+ "ac_cv_prog_CURL_CONFIG=${lib.getDev curl}/bin/curl-config"
+ ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"ac_cv_fread_reads_directories=yes"
"ac_cv_snprintf_returns_bogus=no"
"ac_cv_iconv_omits_bom=no"
- "ac_cv_prog_CURL_CONFIG=${curl.dev}/bin/curl-config"
];
preBuild = ''
@@ -97,8 +98,10 @@ stdenv.mkDerivation {
makeFlags = [
"prefix=\${out}"
- "SHELL_PATH=${stdenv.shell}"
]
+ # Git does not allow setting a shell separately for building and run-time.
+ # Therefore lets leave it at the default /bin/sh when cross-compiling
+ ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "SHELL_PATH=${stdenv.shell}"
++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"])
++ lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
@@ -115,6 +118,10 @@ stdenv.mkDerivation {
# See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
+ disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+ stdenv.shellPackage
+ ];
+
postBuild = ''
make -C contrib/subtree
@@ -338,6 +345,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/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
index a1c6353822..b68179b182 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
@@ -1,7 +1,8 @@
{ fetchgit, lib, stdenv, perl }:
-stdenv.mkDerivation {
- name = "git2cl-20080827";
+stdenv.mkDerivation rec {
+ pname = "git2cl";
+ version = "unstable-2008-08-27";
src = fetchgit {
url = "git://repo.or.cz/git2cl.git";
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
index 6572b9b7fc..ce612fcd52 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -22,7 +22,8 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram $out/bin/git-flow \
--set FLAGS_GETOPT_CMD ${pkgs.getopt}/bin/getopt \
- --suffix PATH : ${pkgs.git}/bin
+ --suffix PATH : ${pkgs.git}/bin \
+ --prefix PATH : ${pkgs.coreutils}/bin
'';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/glitter/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/glitter/default.nix
index d256e212ec..04b850cc59 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/glitter/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/glitter/default.nix
@@ -2,22 +2,25 @@
rustPlatform.buildRustPackage rec {
pname = "glitter";
- version = "1.4.10";
+ version = "1.5.10";
src = fetchFromGitHub {
owner = "milo123459";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-5yv0RZfGLS/cxOxettHQHSPldcq+xa+TNj6dDIAmzOM=";
+ sha256 = "sha256-4d1zMCQ4rYU5kL7Qhwibt6+IfKHUjYndHHeX7JT9zwU=";
};
- cargoSha256 = "sha256-xG7aic7NCcltz9YmQ4V40/h3OR8Vt5IgApp4yoDbPuc=";
+ cargoSha256 = "sha256-eaSQGbsvAas7CLMtgSNWCqdrYU5Kc/0GY10rkNK05Uo=";
# tests require it to be in a git repository
preCheck = ''
git init
'';
+ # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
+ checkFlags = [ "--skip" "runs_correctly" ];
+
meta = with lib; {
description = "A git wrapper that allows you to compress multiple commands into one";
homepage = "https://github.com/milo123459/glitter";
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gst/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gst/default.nix
index a323c61bf1..f0f347d14c 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/gst/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix
index 71c40e86aa..7d91fb7754 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/lucky-commit/default.nix
@@ -2,6 +2,8 @@
, rustPlatform
, fetchFromGitHub
, withOpenCL ? true
+, stdenv
+, OpenCL
, ocl-icd
}:
@@ -18,12 +20,12 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "sha256-MvopLKhovwXaEmRgXnAzJeuhPgqnMjt0EtKUGSWFpaY=";
- buildInputs = lib.optional withOpenCL [ ocl-icd ];
+ buildInputs = lib.optional withOpenCL (if stdenv.isDarwin then OpenCL else ocl-icd);
- cargoBuildFlags = lib.optional (!withOpenCL) "--no-default-features";
+ buildNoDefaultFeatures = !withOpenCL;
# disable tests that require gpu
- cargoTestFlags = [ "--no-default-features" ];
+ checkNoDefaultFeatures = true;
meta = with lib; {
description = "Change the start of your git commit hashes to whatever you want";
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 02888b3f87..1c3fdf90aa 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 8f06050d09..6d6a3a4f98 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchurl, unzip, makeWrapper, jre }:
stdenv.mkDerivation rec {
- name = "subgit-3.3.11";
+ pname = "subgit";
+ version = "3.3.11";
meta = {
description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
'';
src = fetchurl {
- url = "https://subgit.com/download/${name}.zip";
+ url = "https://subgit.com/download/subgit-${version}.zip";
sha256 = "sha256-ltTpmXPCIGTmVDxKc6oelMEzQWXRbIf0NESzRugaXo0=";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
index 74f10a1428..562658a6e9 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, fetchurl, ruby, makeWrapper, git }:
+{ lib, stdenv, fetchFromGitHub, ruby, makeWrapper, git }:
-let
- version = "2.4.0";
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "svn2git";
- inherit version;
+ version = "2.4.0";
- src = fetchurl {
- url = "https://github.com/nirvdrum/svn2git/archive/v${version}.tar.gz";
- sha256 = "0ly2vrv6q31n0xhciwb7a1ilr5c6ndyi3bg81yfp4axiypps7l41";
+ src = fetchFromGitHub {
+ owner = "nirvdrum";
+ repo = "svn2git";
+ rev = "v${version}";
+ sha256 = "sha256-w649l/WO68vYYxZOBKzI8XhGFkaSwWx/O3oVOtnGg6w=";
};
nativeBuildInputs = [ ruby makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
index 0eb806bfee..c5422d9a6c 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
buildGoPackage rec {
pname = "git-lfs";
- version = "3.0.1";
+ version = "3.0.2";
src = fetchFromGitHub {
rev = "v${version}";
owner = "git-lfs";
repo = "git-lfs";
- sha256 = "0989wai2k1gzkmwk5x6f6llsf0nn5jr5dpwayw4f8bws09da6dm6";
+ sha256 = "0k2pzbhd95xixh5aqdwf5pafilg85wl46d04xbb4lx6k3gkfv0f3";
};
goPackagePath = "github.com/git-lfs/git-lfs";
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
index 849965e15f..276ce92f40 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-repo";
- version = "2.17.2";
+ version = "2.18";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
- sha256 = "sha256-JfT0jW6aUZAYESQI0tFfnITFv20Jk7DWbvz8Ipt4t1Y=";
+ sha256 = "sha256-eW+FjTsTWzHxyNlsP5dvV3TFtEz4cLWwyF4bmqsDW2k=";
};
# Fix 'NameError: name 'ssl' is not defined'
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/git-review/default.nix
index 410d8d49e4..40061baca5 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/git-review/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/git-review/default.nix
@@ -1,24 +1,31 @@
{ lib
-, fetchurl
+, fetchFromGitea
, buildPythonApplication
, pbr
, requests
, setuptools
+, genericUpdater
+, common-updater-scripts
}:
buildPythonApplication rec {
pname = "git-review";
- version = "2.1.0";
+ version = "2.2.0";
# Manually set version because prb wants to get it from the git
# upstream repository (and we are installing from tarball instead)
PBR_VERSION = version;
- src = fetchurl {
- url = "https://opendev.org/opendev/${pname}/archive/${version}.tar.gz";
- hash = "sha256-3A1T+/iXhNeMS2Aww5jISoiNExdv9N9/kwyATSuwVTE=";
+ src = fetchFromGitea {
+ domain = "opendev.org";
+ owner = "opendev";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-2+X5fPxB2FIp1fwqEUc+W0gH2NjhF/V+La+maE+XEpo=";
};
+ outputs = [ "out" "man" ];
+
nativeBuildInputs = [
pbr
];
@@ -35,6 +42,11 @@ buildPythonApplication rec {
pythonImportsCheck = [ "git_review" ];
+ passthru.updateScript = genericUpdater {
+ inherit pname version;
+ versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+ };
+
meta = with lib; {
description = "Tool to submit code to Gerrit";
homepage = "https://opendev.org/opendev/git-review";
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index de0e97501f..68cf761537 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -16,12 +16,12 @@ with lib;
buildGoPackage rec {
pname = "gitea";
- version = "1.15.5";
+ version = "1.15.7";
# 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-W+czWzo4keTLRPDLcTeYl3JSccwfq+P6k4ELADO9FVM=";
+ sha256 = "sha256-Ckg8XKCPnyp4a0kXJrqju2jAJvD4tzjomaeJxlFwYzg=";
};
unpackPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
index 384f5d0f01..63ceb6e386 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
@@ -1,14 +1,15 @@
-{ lib, fetchzip, python2Packages}:
+{ lib, fetchFromGitHub, python2Packages }:
python2Packages.buildPythonApplication rec {
pname = "gitinspector";
version = "0.4.4";
namePrefix = "";
- src = fetchzip {
- url = "https://github.com/ejwa/gitinspector/archive/v${version}.tar.gz";
- sha256 = "1pfsw6xldm6jigs3nhysvqaxk8a0zf8zczgfkrp920as9sya3c7m";
- name = "${pname}-${version}" + "-src";
+ src = fetchFromGitHub {
+ owner = "ejwa";
+ repo = "gitinspector";
+ rev = "v${version}";
+ sha256 = "sha256-9bChvE5aAZFunu599pH7QKHZFd7aQzv0i9LURrvh2t0=";
};
checkInputs = with python2Packages; [
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
index d719edb64c..a92c6b5d52 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -3,114 +3,140 @@
, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
, nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
, makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
-, e2fsprogs, krb5, libdrm, mesa
+, e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems
}:
with lib;
let
- curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
-in
-stdenv.mkDerivation rec {
+ curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
pname = "gitkraken";
- version = "8.1.0";
+ version = "8.1.1";
- src = fetchzip {
- url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
- sha256 = "1115616d642chnisil7gv6fxw699sryphrfrp92cq3vi6lcwqbn8";
+ throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ srcs = {
+ x86_64-linux = fetchzip {
+ url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
+ sha256 = "sha256-C6R7/ucQhMsugg7qT+B8OG77AMOx2nmZlVAQcxAfpmc=";
+ };
+
+ x86_64-darwin = fetchzip {
+ url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
+ sha256 = "sha256-l0K9Ha+0KqVqNQOSouT2rwRRi4YoIjMNnZnmBY8Loa8=";
+ };
+
+ aarch64-darwin = srcs.x86_64-darwin;
};
- dontBuild = true;
- dontConfigure = true;
-
- libPath = makeLibraryPath [
- stdenv.cc.cc.lib
- curlWithGnuTls
- udev
- libX11
- libXext
- libXcursor
- libXi
- libxcb
- glib
- libXScrnSaver
- libxkbfile
- libXtst
- nss
- nspr
- cups
- alsa-lib
- expat
- gdk-pixbuf
- dbus
- libXdamage
- libXrandr
- atk
- pango
- cairo
- freetype
- fontconfig
- libXcomposite
- libXfixes
- libXrender
- gtk3
- libgnome-keyring
- openssl
- at-spi2-atk
- at-spi2-core
- libuuid
- e2fsprogs
- krb5
- libdrm
- mesa
- ];
-
- desktopItem = makeDesktopItem {
- name = pname;
- exec = "gitkraken";
- icon = "gitkraken";
- desktopName = "GitKraken";
- genericName = "Git Client";
- categories = "Development;";
- comment = "Graphical Git client from Axosoft";
- };
-
- nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
- buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
-
- installPhase = ''
- runHook preInstall
-
- mkdir -p $out/share/gitkraken/
- cp -R $src/* $out/share/gitkraken/
-
- mkdir -p $out/bin
- ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken
-
- mkdir -p $out/share/applications
- ln -s ${desktopItem}/share/applications/* $out/share/applications
-
- mkdir -p $out/share/pixmaps
- cp gitkraken.png $out/share/pixmaps/gitkraken.png
-
- runHook postInstall
- '';
-
- postFixup = ''
- pushd $out/share/gitkraken
- patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" gitkraken
-
- for file in $(find . -type f \( -name \*.node -o -name gitkraken -o -name \*.so\* \) ); do
- patchelf --set-rpath ${libPath}:$out/share/gitkraken $file || true
- done
- popd
- '';
+ src = srcs.${stdenv.hostPlatform.system} or throwSystem;
meta = {
homepage = "https://www.gitkraken.com/";
description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
license = licenses.unfree;
- platforms = platforms.linux;
- maintainers = with maintainers; [ xnwdd evanjs ];
+ platforms = builtins.attrNames srcs;
+ maintainers = with maintainers; [ xnwdd evanjs arkivm ];
};
-}
+
+ linux = stdenv.mkDerivation rec {
+ inherit pname version src meta;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ libPath = makeLibraryPath [
+ stdenv.cc.cc.lib
+ curlWithGnuTls
+ udev
+ libX11
+ libXext
+ libXcursor
+ libXi
+ libxcb
+ glib
+ libXScrnSaver
+ libxkbfile
+ libXtst
+ nss
+ nspr
+ cups
+ alsa-lib
+ expat
+ gdk-pixbuf
+ dbus
+ libXdamage
+ libXrandr
+ atk
+ pango
+ cairo
+ freetype
+ fontconfig
+ libXcomposite
+ libXfixes
+ libXrender
+ gtk3
+ libgnome-keyring
+ openssl
+ at-spi2-atk
+ at-spi2-core
+ libuuid
+ e2fsprogs
+ krb5
+ libdrm
+ mesa
+ ];
+
+ desktopItems = [ (makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = pname;
+ desktopName = "GitKraken";
+ genericName = "Git Client";
+ categories = "Development;";
+ comment = "Graphical Git client from Axosoft";
+ }) ];
+
+ nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ];
+ buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/${pname}/
+ cp -R $src/* $out/share/${pname}
+
+ mkdir -p $out/bin
+ ln -s $out/share/${pname}/${pname} $out/bin/
+
+ mkdir -p $out/share/pixmaps
+ cp ${pname}.png $out/share/pixmaps/${pname}.png
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ pushd $out/share/${pname}
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ${pname}
+
+ for file in $(find . -type f \( -name \*.node -o -name ${pname} -o -name \*.so\* \) ); do
+ patchelf --set-rpath ${libPath}:$out/share/${pname} $file || true
+ done
+ popd
+ '';
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit pname version src meta;
+
+ nativeBuildInputs = [ unzip ];
+
+ installPhase = ''
+ mkdir -p $out/Applications/GitKraken.app
+ cp -R . $out/Applications/GitKraken.app
+ '';
+ };
+in
+if stdenv.isDarwin
+then darwin
+else linux
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index 9f7323f3bf..e6a8ca5ae2 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,14 +1,14 @@
{
- "version": "14.3.3",
- "repo_hash": "1sh8lf6arqljzc0hmajl2r2j38ahk9hl6kikg9inw72xycrll7dk",
- "yarn_hash": "0b6brkxg93gv4gjp1f7qlx7v7q7mb8z9vikcz98igdnhm46nl4dn",
+ "version": "14.5.1",
+ "repo_hash": "0c9ih7dr5lgvdhij75bpcj9vlyljnprzbv0k90k4rjajfyd0lhad",
+ "yarn_hash": "081c06ds723mv95ivpnlh3ida2ra3brrm1lzfh2pmlg5wz9vi1cs",
"owner": "gitlab-org",
"repo": "gitlab",
- "rev": "v14.3.3-ee",
+ "rev": "v14.5.1-ee",
"passthru": {
- "GITALY_SERVER_VERSION": "14.3.3",
- "GITLAB_PAGES_VERSION": "1.44.0",
- "GITLAB_SHELL_VERSION": "13.21.1",
- "GITLAB_WORKHORSE_VERSION": "14.3.3"
+ "GITALY_SERVER_VERSION": "14.5.1",
+ "GITLAB_PAGES_VERSION": "1.48.0",
+ "GITLAB_SHELL_VERSION": "13.22.1",
+ "GITLAB_WORKHORSE_VERSION": "14.5.1"
}
}
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
index 7e53e4ff15..c386add243 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
+++ b/third_party/nixpkgs/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"
@@ -189,7 +198,7 @@ stdenv.mkDerivation {
meta = with lib; {
homepage = "http://www.gitlab.com/";
platforms = platforms.linux;
- maintainers = with maintainers; [ fpletz globin krav talyz yuka ];
+ maintainers = with maintainers; [ fpletz globin krav talyz yayayayaka yuka ];
} // (if gitlabEnterprise then
{
license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 7eaf3c0f21..6568c0c3cb 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,9 +1,9 @@
source 'https://rubygems.org'
-gem 'rugged', '~> 1.1'
+gem 'rugged', '~> 1.2'
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/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index dba345db63..b5c5ec672b 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/third_party/nixpkgs/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)
@@ -121,7 +121,7 @@ GEM
parallel (1.19.2)
parser (2.7.2.0)
ast (~> 2.4.1)
- pg_query (2.1.0)
+ pg_query (2.1.1)
google-protobuf (>= 3.17.1)
proc_to_ast (0.1.0)
coderay
@@ -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
@@ -184,7 +184,7 @@ GEM
rubocop-ast (0.2.0)
parser (>= 2.7.0.1)
ruby-progressbar (1.10.1)
- rugged (1.1.0)
+ rugged (1.2.0)
sanitize (4.6.6)
crass (~> 1.0.2)
nokogiri (>= 1.4.4)
@@ -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)
@@ -234,7 +234,7 @@ DEPENDENCIES
rspec
rspec-parameterized
rubocop (~> 0.69)
- rugged (~> 1.1)
+ rugged (~> 1.2)
sentry-raven (~> 3.0)
timecop
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 26deabcc23..48bf8246ad 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -4,6 +4,18 @@
, libgit2, openssl, zlib, pcre, http-parser }:
let
+ # git2go 32.0.5 does not support libgit2 1.2.0 or 1.3.0.
+ # It needs a specific commit in between those two releases.
+ libgit2_custom = libgit2.overrideAttrs (oldAttrs: rec {
+ version = "1.2.0";
+ src = fetchFromGitHub {
+ owner = "libgit2";
+ repo = "libgit2";
+ rev = "109b4c887ffb63962c7017a66fc4a1f48becb48e";
+ sha256 = "sha256-w029FHpOv5K49wE1OJMOlkTe+2cv+ORYqEHxs59GDBI=";
+ };
+ });
+
rubyEnv = bundlerEnv rec {
name = "gitaly-env";
inherit ruby;
@@ -20,7 +32,8 @@ let
};
};
};
- version = "14.3.3";
+
+ version = "14.5.1";
gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}";
in
@@ -32,10 +45,10 @@ buildGoModule {
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
- sha256 = "sha256-WC361E+p3i02n2YCOwUzRxCWFt5UMEfJi6tHZPj1dgo=";
+ sha256 = "sha256-AWY/jUIytK/8nrCH2EMrzQ9e0dc9VpZFkO7NhrrqoGg=";
};
- vendorSha256 = "sha256-9RhPQosen70E9t1iAoc2SeKs9pYMMpMqgXLekWfKNf8=";
+ vendorSha256 = "sha256-ZLd4E3+e25Hqmd6ZyF3X6BveMEg7OF0FX9IvNBWn3v0=";
passthru = {
inherit rubyEnv;
@@ -45,7 +58,7 @@ buildGoModule {
tags = [ "static,system_libgit2" ];
nativeBuildInputs = [ pkg-config ];
- buildInputs = [ rubyEnv.wrappedRuby libgit2 openssl zlib pcre http-parser ];
+ buildInputs = [ rubyEnv.wrappedRuby libgit2_custom openssl zlib pcre http-parser ];
doCheck = false;
postInstall = ''
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index dea32e94b1..0fa91679ad 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/third_party/nixpkgs/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"];
@@ -554,10 +554,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "12dibsqndfnckc24yryy8v467rxp7p80jx21jhm8z7swp8118jhx";
+ sha256 = "0cf1b97nznl6adkx25j2x96sq8xx2b4fpic230fx65k3vqqn8a4r";
type = "gem";
};
- version = "2.1.0";
+ version = "2.1.1";
};
proc_to_ast = {
dependencies = ["coderay" "parser" "unparser"];
@@ -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"];
@@ -830,10 +830,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
+ sha256 = "1v846qs2pa3wnzgz95jzbcdrgl9vyjl65qiscw4q4dvm5sb7j68i";
type = "gem";
};
- version = "1.1.0";
+ version = "1.2.0";
};
sanitize = {
dependencies = ["crass" "nokogiri" "nokogumbo"];
@@ -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/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 2ffc52f3b1..f1df035ca2 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,12 +2,12 @@
buildGoModule rec {
pname = "gitlab-shell";
- version = "13.21.1";
+ version = "13.22.1";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-shell";
rev = "v${version}";
- sha256 = "sha256-FBkxJLl58ZbqM1P4LohsozGiKg38gQwVGOV9AAjVE0M=";
+ sha256 = "sha256-uqdKiBZ290mG0JNi17EjimfES6bN3q1hF6LXs3URTZ8=";
};
buildInputs = [ ruby ];
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 3e3bc25162..da56de9420 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/third_party/nixpkgs/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.5.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/third_party/nixpkgs/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/railties-remove-yarn-install-enhancement.patch
new file mode 100644
index 0000000000..25cbf775e6
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 08a9b090c6..8e781a9a86 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -2,9 +2,9 @@
source 'https://rubygems.org'
-gem 'rails', '~> 6.1.3.2'
+gem 'rails', '~> 6.1.4.1'
-gem 'bootsnap', '~> 1.4.6'
+gem 'bootsnap', '~> 1.9.1', require: false
# Responders respond_to and respond_with
gem 'responders', '~> 3.0'
@@ -17,14 +17,14 @@ gem 'default_value_for', '~> 3.4.0'
# Supported DBs
gem 'pg', '~> 1.1'
-gem 'rugged', '~> 1.1'
+gem 'rugged', '~> 1.2'
gem 'grape-path-helpers', '~> 1.7.0'
gem 'faraday', '~> 1.0'
gem 'marginalia', '~> 1.10.0'
# Authorization
-gem 'declarative_policy', '~> 1.0.0'
+gem 'declarative_policy', '~> 1.1.0'
# Authentication libraries
gem 'devise', '~> 4.7.2'
@@ -38,6 +38,7 @@ gem 'omniauth-auth0', '~> 2.0.0'
gem 'omniauth-azure-activedirectory-v2', '~> 1.0'
gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version
gem 'omniauth-cas3', '~> 1.1.4'
+gem 'omniauth-dingtalk-oauth2', '~> 1.0'
gem 'omniauth-facebook', '~> 4.0.0'
gem 'omniauth-github', '~> 1.4'
gem 'omniauth-gitlab', '~> 1.0.2'
@@ -92,7 +93,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 +130,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: 'fog/azurerm'
# for Google storage
gem 'google-api-client', '~> 0.33'
@@ -154,7 +155,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 +166,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'
@@ -186,6 +187,7 @@ gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base'
group :puma do
gem 'puma', '~> 5.3.1', require: false
gem 'puma_worker_killer', '~> 0.3.1', require: false
+ gem 'sd_notify', '~> 0.1.0', require: false
end
# State machine
@@ -195,10 +197,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 +231,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
@@ -290,7 +292,7 @@ gem 'autoprefixer-rails', '10.2.5.1'
gem 'terser', '1.0.2'
gem 'addressable', '~> 2.8'
-gem 'gemojione', '~> 3.3'
+gem 'tanuki_emoji', '~> 0.5'
gem 'gon', '~> 6.4.0'
gem 'request_store', '~> 1.5'
gem 'base32', '~> 0.3.0'
@@ -341,13 +343,15 @@ 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', '~> 2.0.0'
# Better errors handler
gem 'better_errors', '~> 2.9.0'
# thin instead webrick
gem 'thin', '~> 1.8.0'
+
+ gem 'sprite-factory', '~> 1.7'
end
group :development, :test do
@@ -355,7 +359,7 @@ group :development, :test do
gem 'bullet', '~> 6.1.3'
gem 'pry-byebug'
gem 'pry-rails', '~> 0.3.9'
- gem 'pry-shell', '~> 0.4.0'
+ gem 'pry-shell', '~> 0.5.0'
gem 'awesome_print', require: false
@@ -372,7 +376,7 @@ group :development, :test do
gem 'spring', '~> 2.1.0'
gem 'spring-commands-rspec', '~> 1.0.4'
- gem 'gitlab-styles', '~> 6.3.0', require: false
+ gem 'gitlab-styles', '~> 6.4.0', require: false
gem 'haml_lint', '~> 0.36.0', require: false
gem 'bundler-audit', '~> 0.7.0.1', require: false
@@ -396,7 +400,7 @@ group :development, :test do
end
group :development, :test, :danger do
- gem 'gitlab-dangerfiles', '~> 2.3.0', require: false
+ gem 'gitlab-dangerfiles', '~> 2.5.0', require: false
end
group :development, :test, :coverage do
@@ -424,7 +428,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 +478,7 @@ end
gem 'spamcheck', '~> 0.1.0'
# Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 14.3.0.pre.rc1'
+gem 'gitaly', '~> 14.4.0.pre.rc43'
# KAS GRPC protocol definitions
gem 'kas-grpc', '~> 0.0.2'
@@ -535,4 +539,4 @@ gem 'ipaddress', '~> 0.8.3'
gem 'parslet', '~> 1.8'
-gem 'sd_notify'
+gem 'ipynbdiff', '0.3.7'
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 51ccc8a03c..75ca996d5c 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/third_party/nixpkgs/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)
@@ -141,7 +141,7 @@ GEM
rack (>= 0.9.0)
bindata (2.4.10)
binding_ninja (0.2.3)
- bootsnap (1.4.6)
+ bootsnap (1.9.1)
msgpack (~> 1.0)
bootstrap_form (4.2.0)
actionpack (>= 5.0)
@@ -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)
@@ -216,7 +215,7 @@ GEM
css_parser (1.7.0)
addressable
daemons (1.3.1)
- danger (8.3.1)
+ danger (8.4.1)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
@@ -238,7 +237,7 @@ GEM
html-pipeline
declarative (0.0.20)
declarative-option (0.1.0)
- declarative_policy (1.0.0)
+ declarative_policy (1.1.0)
default_value_for (3.4.0)
activerecord (>= 3.2.0, < 7.0)
deprecation_toolkit (1.5.1)
@@ -430,8 +429,6 @@ GEM
ruby-progressbar (~> 1.4)
fuzzyurl (0.9.0)
gemoji (3.0.1)
- gemojione (3.3.0)
- json
get_process_mem (0.2.5)
ffi (~> 1.0)
gettext (3.3.6)
@@ -446,7 +443,7 @@ GEM
rails (>= 3.2.0)
git (1.7.0)
rchardet (~> 1.8)
- gitaly (14.3.0.pre.rc1)
+ gitaly (14.4.0.pre.rc43)
grpc (~> 1.0)
github-markup (1.7.0)
gitlab (4.16.1)
@@ -454,14 +451,14 @@ GEM
terminal-table (~> 1.5, >= 1.5.1)
gitlab-chronic (0.10.5)
numerizer (~> 0.2)
- gitlab-dangerfiles (2.3.0)
+ gitlab-dangerfiles (2.5.0)
danger (>= 8.3.1)
danger-gitlab (>= 8.0.0)
gitlab-experiment (0.6.4)
activesupport (>= 3.0)
request_store (>= 1.0)
scientist (~> 1.6, >= 1.6.0)
- gitlab-fog-azure-rm (1.1.1)
+ gitlab-fog-azure-rm (1.2.0)
azure-storage-blob (~> 2.0)
azure-storage-common (~> 2.0)
fog-core (= 2.1.0)
@@ -484,9 +481,9 @@ GEM
addressable (~> 2.7)
omniauth (~> 1.9)
openid_connect (~> 1.2)
- gitlab-sidekiq-fetcher (0.5.6)
- sidekiq (~> 5)
- gitlab-styles (6.3.0)
+ gitlab-sidekiq-fetcher (0.8.0)
+ sidekiq (~> 6.1)
+ gitlab-styles (6.4.0)
rubocop (~> 0.91, >= 0.91.1)
rubocop-gitlab-security (~> 0.1.1)
rubocop-performance (~> 1.9.2)
@@ -499,8 +496,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 +533,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)
@@ -636,6 +633,9 @@ GEM
invisible_captcha (1.1.0)
rails (>= 4.2)
ipaddress (0.8.3)
+ ipynbdiff (0.3.7)
+ diffy (= 3.3.0)
+ json (= 2.5.1)
jaeger-client (1.1.0)
opentracing (~> 0.3)
thrift
@@ -693,10 +693,11 @@ GEM
lefthook (0.7.5)
letter_opener (1.7.0)
launchy (~> 2.2)
- letter_opener_web (1.4.0)
- actionmailer (>= 3.2)
- letter_opener (~> 1.0)
- railties (>= 3.2)
+ letter_opener_web (2.0.0)
+ actionmailer (>= 5.2)
+ letter_opener (~> 1.7)
+ railties (>= 5.2)
+ rexml
libyajl2 (1.2.0)
license_finder (6.0.0)
bundler
@@ -740,7 +741,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 +778,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)
@@ -833,6 +834,8 @@ GEM
addressable (~> 2.3)
nokogiri (~> 1.7, >= 1.7.1)
omniauth (~> 1.2)
+ omniauth-dingtalk-oauth2 (1.0.0)
+ omniauth-oauth2 (~> 1.7.1)
omniauth-facebook (4.0.0)
omniauth-oauth2 (~> 1.2)
omniauth-github (1.4.0)
@@ -853,7 +856,7 @@ GEM
omniauth-oauth (1.1.0)
oauth
omniauth (~> 1.0)
- omniauth-oauth2 (1.7.1)
+ omniauth-oauth2 (1.7.2)
oauth2 (~> 1.4)
omniauth (>= 1.9, < 3)
omniauth-oauth2-generic (0.2.2)
@@ -901,7 +904,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 +930,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 +956,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 +988,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 +1012,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 +1046,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 +1110,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)
@@ -1127,7 +1126,7 @@ GEM
rubyntlm (0.6.2)
rubypants (0.2.0)
rubyzip (2.0.0)
- rugged (1.1.0)
+ rugged (1.2.0)
safe_yaml (1.0.4)
safety_net_attestation (0.4.0)
jwt (~> 2.0)
@@ -1153,7 +1152,7 @@ GEM
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
scientist (1.6.0)
- sd_notify (0.1.1)
+ sd_notify (0.1.0)
securecompare (1.0.0)
seed-fu (2.3.7)
activerecord (>= 3.1)
@@ -1169,11 +1168,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)
@@ -1216,6 +1214,7 @@ GEM
spring (2.1.1)
spring-commands-rspec (1.0.4)
spring (>= 0.9.1)
+ sprite-factory (1.7.1)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
@@ -1246,12 +1245,13 @@ GEM
sys-filesystem (1.1.9)
ffi
sysexits (1.2.0)
+ tanuki_emoji (0.5.0)
temple (0.8.2)
terminal-table (1.8.0)
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 +1351,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)
@@ -1399,7 +1399,7 @@ DEPENDENCIES
benchmark-ips (~> 2.3.0)
benchmark-memory (~> 0.1)
better_errors (~> 2.9.0)
- bootsnap (~> 1.4.6)
+ bootsnap (~> 1.9.1)
bootstrap_form (~> 4.2.0)
browser (~> 4.2)
bullet (~> 6.1.3)
@@ -1408,7 +1408,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)
@@ -1416,7 +1416,7 @@ DEPENDENCIES
crystalball (~> 0.7.0)
database_cleaner (~> 1.7.0)
deckar01-task_list (= 2.3.1)
- declarative_policy (~> 1.0.0)
+ declarative_policy (~> 1.1.0)
default_value_for (~> 3.4.0)
deprecation_toolkit (~> 1.5.1)
derailed_benchmarks
@@ -1454,24 +1454,23 @@ DEPENDENCIES
fog-rackspace (~> 0.1.1)
fugit (~> 1.2.1)
fuubar (~> 2.2.0)
- gemojione (~> 3.3)
gettext (~> 3.3)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
- gitaly (~> 14.3.0.pre.rc1)
+ gitaly (~> 14.4.0.pre.rc43)
github-markup (~> 1.7.0)
gitlab-chronic (~> 0.10.5)
- gitlab-dangerfiles (~> 2.3.0)
+ gitlab-dangerfiles (~> 2.5.0)
gitlab-experiment (~> 0.6.4)
- gitlab-fog-azure-rm (~> 1.1.1)
+ gitlab-fog-azure-rm (~> 1.2.0)
gitlab-labkit (~> 0.21.1)
gitlab-license (~> 2.0)
gitlab-mail_room (~> 0.0.9)
gitlab-markup (~> 1.7.1)
gitlab-net-dns (~> 0.9.1)
gitlab-omniauth-openid-connect (~> 0.8.0)
- gitlab-sidekiq-fetcher (= 0.5.6)
- gitlab-styles (~> 6.3.0)
+ gitlab-sidekiq-fetcher (= 0.8.0)
+ gitlab-styles (~> 6.4.0)
gitlab_chronic_duration (~> 0.10.6.2)
gitlab_omniauth-ldap (~> 2.1.1)
gon (~> 6.4.0)
@@ -1479,7 +1478,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)
@@ -1501,6 +1500,7 @@ DEPENDENCIES
icalendar
invisible_captcha (~> 1.1.0)
ipaddress (~> 0.8.3)
+ ipynbdiff (= 0.3.7)
jira-ruby (~> 2.1.4)
js_regex (~> 3.7)
json (~> 2.5.1)
@@ -1512,7 +1512,7 @@ DEPENDENCIES
kramdown (~> 2.3.1)
kubeclient (~> 4.9.2)
lefthook (~> 0.7.0)
- letter_opener_web (~> 1.4.0)
+ letter_opener_web (~> 2.0.0)
license_finder (~> 6.0)
licensee (~> 9.14.1)
lockbox (~> 0.6.2)
@@ -1541,6 +1541,7 @@ DEPENDENCIES
omniauth-azure-activedirectory-v2 (~> 1.0)
omniauth-azure-oauth2 (~> 0.0.9)
omniauth-cas3 (~> 1.1.4)
+ omniauth-dingtalk-oauth2 (~> 1.0)
omniauth-facebook (~> 4.0.0)
omniauth-github (~> 1.4)
omniauth-gitlab (~> 1.0.2)
@@ -1563,7 +1564,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 +1573,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 +1582,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)
@@ -1602,16 +1603,16 @@ DEPENDENCIES
ruby-saml (~> 1.13.0)
ruby_parser (~> 3.15)
rubyzip (~> 2.0.0)
- rugged (~> 1.1)
+ rugged (~> 1.2)
sanitize (~> 5.2.1)
sassc-rails (~> 2.1.0)
- sd_notify
+ sd_notify (~> 0.1.0)
seed-fu (~> 2.3.7)
selenium-webdriver (~> 3.142)
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)
@@ -1622,13 +1623,15 @@ DEPENDENCIES
spamcheck (~> 0.1.0)
spring (~> 2.1.0)
spring-commands-rspec (~> 1.0.4)
+ sprite-factory (~> 1.7)
sprockets (~> 3.7.0)
sshkey (~> 2.0)
stackprof (~> 0.2.15)
state_machines-activerecord (~> 0.8.0)
sys-filesystem (~> 1.1.6)
+ tanuki_emoji (~> 0.5)
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 +1653,4 @@ DEPENDENCIES
yajl-ruby (~> 1.4.1)
BUNDLED WITH
- 2.2.20
+ 2.2.24
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 0eb5dc16a3..6c6a26f3d2 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/third_party/nixpkgs/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"];
@@ -557,10 +557,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0bz62p9vc7lcrmzhiz4pf7myww086mq287cw3jjj7fyc7jhmamw0";
+ sha256 = "1ndjra3h86dq28njm2swmaw6n3vsywrycrf7i5iy9l8hrhfhv4x2";
type = "gem";
};
- version = "1.4.6";
+ version = "1.9.1";
};
bootstrap_form = {
dependencies = ["actionpack" "activemodel"];
@@ -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"];
@@ -932,10 +931,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "12nmycrlwr8ca2s0fx76k81gjw12iz15k1n0qanszv5d4l1ykj2l";
+ sha256 = "1f9p7sdj542cbn352qz58m4n26kamv6vbnxzpc06j0pxi50z3i0v";
type = "gem";
};
- version = "8.3.1";
+ version = "8.4.1";
};
danger-gitlab = {
dependencies = ["danger" "gitlab"];
@@ -1008,10 +1007,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0k2wl0jr0jq64gy7ibb1ipm2dzqil7y66vyffwx81g7sqchh7xh6";
+ sha256 = "1jri6fqpyrlnhl99mhqlqwpi6z8idb7g421rysxz40yyk8lwzx4s";
type = "gem";
};
- version = "1.0.0";
+ version = "1.1.0";
};
default_value_for = {
dependencies = ["activerecord"];
@@ -1839,17 +1838,6 @@
};
version = "3.0.1";
};
- gemojione = {
- dependencies = ["json"];
- groups = ["default"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
- type = "gem";
- };
- version = "3.3.0";
- };
get_process_mem = {
dependencies = ["ffi"];
groups = ["default" "puma" "unicorn"];
@@ -1911,10 +1899,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0k0jrimdg0pij75hndkrl28hqgvsnl7sdn5k6mjv3sjwbm1p217w";
+ sha256 = "022amhic8rs09qmp3hy1zz5inxbxnrvg8j82bq4l2s8ml9hqfs3a";
type = "gem";
};
- version = "14.3.0.pre.rc1";
+ version = "14.4.0.pre.rc43";
};
github-markup = {
groups = ["default"];
@@ -1954,10 +1942,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "07ckvf7vk0494s70ql7zp3ckn8q70mhwa0143hj6bjh0bpgmgsnw";
+ sha256 = "1488s24c9fm55z2a2pbry2fjx72fzgzv0y48krgldvf0qy43l0kz";
type = "gem";
};
- version = "2.3.0";
+ version = "2.5.0";
};
gitlab-experiment = {
dependencies = ["activesupport" "request_store" "scientist"];
@@ -1976,10 +1964,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 +2037,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0838p0vnyl65571d8j5hljwyfyhsnfs6dlj6di57gpmwrbl9sdpr";
+ sha256 = "0qkkwd2sj9l6nmvipd1308ni01m2n8ixqwl6syl493cm5am4qmlw";
type = "gem";
};
- version = "0.5.6";
+ version = "0.8.0";
};
gitlab-styles = {
dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -2060,10 +2048,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1vxg5j9405r5xvwnswhm2r7pg9pn6pqg675pxz6f8d3sxy5z963p";
+ sha256 = "16d90sd0x6qfkhgfjysswwrzk82zs82xs9azn9w287irpzdkvj7f";
type = "gem";
};
- version = "6.3.0";
+ version = "6.4.0";
};
gitlab_chronic_duration = {
dependencies = ["numerizer"];
@@ -2093,10 +2081,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 +2179,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"];
@@ -2590,6 +2578,17 @@
};
version = "0.8.3";
};
+ ipynbdiff = {
+ dependencies = ["diffy" "json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18337bzcwssmnyg2wf3za50z0zh2b1sh17wgaapavd1ffr24svkx";
+ type = "gem";
+ };
+ version = "0.3.7";
+ };
jaeger-client = {
dependencies = ["opentracing" "thrift"];
groups = ["default"];
@@ -2827,15 +2826,15 @@
version = "1.7.0";
};
letter_opener_web = {
- dependencies = ["actionmailer" "letter_opener" "railties"];
+ dependencies = ["actionmailer" "letter_opener" "railties" "rexml"];
groups = ["development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0pianlrbf9n7jrqxpyxgsfk1j1d312d57d6gq7yxni6ax2q0293q";
+ sha256 = "0vvvaz2ngaxv0s6sj25gdvp73vd8pfl8q3jharadg18p3va0m1ik";
type = "gem";
};
- version = "1.4.0";
+ version = "2.0.0";
};
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"];
@@ -3490,6 +3489,17 @@
};
version = "1.1.4";
};
+ omniauth-dingtalk-oauth2 = {
+ dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sflfy1jvn9wqpral7gcfmbys7msvykp6rlnl33r8qgnbksn54y8";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
omniauth-facebook = {
dependencies = ["omniauth-oauth2"];
groups = ["default"];
@@ -3573,10 +3583,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "10fr2b58sp7l6nfdvxpbi67374hkrvsf507cvda89jjs0jacy319";
+ sha256 = "1ry65f309rnzhgdjvqybkd5i4qp9rpk1gbp4dz02h4l6bkk6ya10";
type = "gem";
};
- version = "1.7.1";
+ version = "1.7.2";
};
omniauth-oauth2-generic = {
dependencies = ["omniauth-oauth2"];
@@ -3805,10 +3815,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 +3937,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 +4058,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 +4096,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 +4151,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 +4299,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 +4464,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 +4670,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"];
@@ -4801,10 +4789,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
+ sha256 = "1v846qs2pa3wnzgz95jzbcdrgl9vyjl65qiscw4q4dvm5sb7j68i";
type = "gem";
};
- version = "1.1.0";
+ version = "1.2.0";
};
safe_yaml = {
groups = ["default" "test"];
@@ -4904,14 +4892,14 @@
version = "1.6.0";
};
sd_notify = {
- groups = ["default"];
+ groups = ["puma"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0c9imnjbakx25r2n7widfp00s19ndzmmwax761mx5vbwm9nariyb";
+ sha256 = "0qx6hwi10s0ir46l3aq4lspkxlcs1x4cjhvdhpdxyxaicciqddi2";
type = "gem";
};
- version = "0.1.1";
+ version = "0.1.0";
};
securecompare = {
groups = ["default"];
@@ -5008,15 +4996,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"];
@@ -5167,6 +5155,16 @@
};
version = "1.0.4";
};
+ sprite-factory = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18hvn14vz1v3j1gvbqjypa59hgj3c4mqbimby50k407c395551jm";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
sprockets = {
dependencies = ["concurrent-ruby" "rack"];
groups = ["default" "development" "test"];
@@ -5314,6 +5312,16 @@
};
version = "1.2.0";
};
+ tanuki_emoji = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qw0qa3xz4h3izwl5qsvmg5vvfsfjhmv4mdxaw1v1w1qgp7j7gws";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
temple = {
groups = ["default" "development" "test"];
platforms = [];
@@ -5351,10 +5359,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 +5832,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/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py
index c8b4efc247..bee10e49f4 100755
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -143,7 +143,6 @@ def update_rubyenv():
f.write(repo.get_file('Gemfile.lock', rev))
with open(rubyenv_dir / 'Gemfile', 'w') as f:
original = repo.get_file('Gemfile', rev)
- original += "\ngem 'sd_notify'\n"
f.write(re.sub(r".*mail-smtp_pool.*", "", original))
subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitstats/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
index b987a3f551..6cfcb00774 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
@@ -1,14 +1,15 @@
-{ lib, stdenv, fetchzip, perl, python2, gnuplot, coreutils, gnugrep }:
+{ lib, stdenv, fetchFromGitHub, perl, python2, gnuplot, coreutils, gnugrep }:
stdenv.mkDerivation rec {
pname = "gitstats";
version = "2016-01-08";
# upstream does not make releases
- src = fetchzip {
- url = "https://github.com/hoxu/gitstats/archive/55c5c285558c410bb35ebf421245d320ab9ee9fa.zip";
- sha256 = "1bfcwhksylrpm88vyp33qjby4js31zcxy7w368dzjv4il3fh2i59";
- name = "${pname}-${version}" + "-src";
+ src = fetchFromGitHub {
+ owner = "hoxu";
+ repo = "gitstats";
+ rev = "55c5c285558c410bb35ebf421245d320ab9ee9fa";
+ sha256 = "sha256-qUQB3aCRbPkbMoMf39kPQ0vil8RjXL8RqjdTryfkzK0=";
};
nativeBuildInputs = [ perl ];
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/got/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/got/default.nix
index b80712fd96..61e938b093 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/got/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/got/default.nix
@@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "got";
- version = "0.60";
+ version = "0.64";
src = fetchurl {
url =
"https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
- sha256 = "sha256-tT8F3Kx7Rcjd/tWjIXXNWygYlkMddWwrttpjnYLnBdo=";
+ sha256 = "1qigv8fnmiynrx6qrg28n2981a30n56nh3xbhmlpihl7fqxmg1sq";
};
nativeBuildInputs = [ pkg-config ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
installCheckPhase = ''
runHook preInstallCheck
- test "$($out/bin/got --version)" = '${pname} "${version}"'
+ test "$($out/bin/got --version)" = '${pname} ${version}'
runHook postInstallCheck
'';
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/guitone/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/guitone/default.nix
deleted file mode 100644
index d78023d846..0000000000
--- a/third_party/nixpkgs/pkgs/applications/version-management/guitone/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchmtn, qt4, qmake4Hook, pkg-config, graphviz }:
-
-let version = "1.0-mtn-head"; in
-stdenv.mkDerivation {
- pname = "guitone";
- inherit version;
-
- #src = fetchurl {
- # url = "${meta.homepage}/count.php/from=default/${version}/${name}.tgz";
- # sha256 = "08kcyar6p6v5z4dq6q6c1dhyxc2jj49qcd6lj3rdn1rb9hz4n7ms";
- #};
-
- src = fetchmtn {
- dbs = ["mtn://code.monotone.ca/guitone"];
- selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27";
- sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5";
- branch = "net.venge.monotone.guitone";
- };
-
- patches = [ ./parallel-building.patch ];
-
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ qt4 qmake4Hook graphviz ];
-
- qmakeFlags = [ "guitone.pro" ];
-
- meta = {
- description = "Qt4 based GUI for monotone";
- homepage = "https://guitone.thomaskeller.biz";
- downloadPage = "https://code.monotone.ca/p/guitone/";
- license = lib.licenses.gpl3;
- inherit (qt4.meta) platforms;
- };
-}
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch b/third_party/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch
deleted file mode 100644
index f0e924cbfb..0000000000
--- a/third_party/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch
+++ /dev/null
@@ -1,7 +0,0 @@
-Without this `make tmp/AttributesView.o` fails with
-src/view/dialogs/AddEditAttribute.h:22:35: fatal error: ui_add_edit_attribute.h: No such file or directory
---- a/guitone.pro
-+++ b/guitone.pro
-@@ -215 +215,2 @@ help.commands = @echo Available targets: $${QMAKE_EXTRA_TARGETS}
- QMAKE_EXTRA_TARGETS += help
-+CONFIG += depend_includepath
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
index 3780be96fd..eea3e7afb7 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/third_party/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
index 541a2262f9..e3c48c5724 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
@@ -1,25 +1,49 @@
-{ lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libpng, libjpeg, expat, libXaw
-, bison, libtool, fontconfig, pango, gd, libwebp
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, xlibsWrapper
+, libpng
+, libjpeg
+, expat
+, libXaw
+, bison
+, libtool
+, fontconfig
+, pango
+, gd
+, libwebp
}:
stdenv.mkDerivation rec {
- name = "graphviz-2.0";
+ pname = "graphviz";
+ version = "2.0";
src = fetchurl {
- url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
+ url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-${version}.tar.gz";
sha256 = "39b8e1f2ba4cc1f5bdc8e39c7be35e5f831253008e4ee2c176984f080416676c";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
- xlibsWrapper libpng libjpeg expat libXaw bison
- libtool fontconfig pango gd libwebp
+ xlibsWrapper
+ libpng
+ libjpeg
+ expat
+ libXaw
+ bison
+ libtool
+ fontconfig
+ pango
+ gd
+ libwebp
];
hardeningDisable = [ "format" "fortify" ];
configureFlags =
- [ "--with-pngincludedir=${libpng.dev}/include"
+ [
+ "--with-pngincludedir=${libpng.dev}/include"
"--with-pnglibdir=${libpng.out}/lib"
"--with-jpegincludedir=${libjpeg.dev}/include"
"--with-jpeglibdir=${libjpeg.out}/lib"
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/pijul/default.nix
index 32126c7ce6..03659e0ba4 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/pijul/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -13,16 +13,14 @@
rustPlatform.buildRustPackage rec {
pname = "pijul";
- version = "1.0.0-alpha.55";
+ version = "1.0.0-alpha.56";
src = fetchCrate {
inherit version pname;
- sha256 = "sha256-1nnn0cdDe+WOetGtRe7dMEyuCcbfRHdJWFxQ4bTXebQ=";
+ sha256 = "zV4F4dbjJ58yGiupUwj5Z0HrKR78Mzch8Zs98YfxSTQ=";
};
- cargoSha256 = "sha256-j9xf97qPdhtakIwhAql0/Go5fPxlyWKAVLk5CMBfAbs=";
-
- cargoBuildFlags = lib.optional gitImportSupport "--features=git";
+ cargoSha256 = "JQGBTCNu9U2Kq6tc7VT07LEbzLW+jdVWrK5e2qjzGRA=";
doCheck = false;
nativeBuildInputs = [ pkg-config ];
@@ -32,6 +30,8 @@ rustPlatform.buildRustPackage rec {
CoreServices Security SystemConfiguration
]));
+ buildFeatures = lib.optional gitImportSupport "git";
+
meta = with lib; {
description = "A distributed version control system";
homepage = "https://pijul.org";
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
index 33716a48fb..dd9b07f7fa 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix
index 6a9e910f80..36e9154571 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix
@@ -1,11 +1,11 @@
-{lib, stdenv, fetchurl, tcl, tk}:
+{ lib, stdenv, fetchurl, tcl, tk }:
-stdenv.mkDerivation
-{
- name = "tkcvs-8.2.1";
+stdenv.mkDerivation rec {
+ pname = "tkcvs";
+ version = "8.2.1";
src = fetchurl {
- url = "mirror://sourceforge/tkcvs/tkcvs_8_2_1.tar.gz";
+ url = "mirror://sourceforge/tkcvs/tkcvs_${lib.replaceStrings ["."] ["_"] version}.tar.gz";
sha256 = "0kvj6rcx1153wq0n1lmd8imbrki6xy5wxghwzlb9i15l65sclg3i";
};
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/vcsh/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/vcsh/default.nix
index 84716e7608..3f33edc953 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/vcsh/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/ccextractor/default.nix b/third_party/nixpkgs/pkgs/applications/video/ccextractor/default.nix
index 5bb13e1161..905034091a 100644
--- a/third_party/nixpkgs/pkgs/applications/video/ccextractor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/ccextractor/default.nix
@@ -23,7 +23,12 @@ stdenv.mkDerivation rec {
sha256 = "sha256-usVAKBkdd8uz9cD5eLd0hnwGonOJLscRdc+iWDlNXVc=";
};
- sourceRoot = "source/src";
+ postPatch = lib.optionalString stdenv.isDarwin ''
+ substituteInPlace src/CMakeLists.txt \
+ --replace 'add_definitions(-DGPAC_CONFIG_LINUX)' 'add_definitions(-DGPAC_CONFIG_DARWIN)'
+ '';
+
+ cmakeDir = "../src";
nativeBuildInputs = [ pkg-config cmake makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/video/celluloid/default.nix b/third_party/nixpkgs/pkgs/applications/video/celluloid/default.nix
index f6bc0561b0..e6dcff6717 100644
--- a/third_party/nixpkgs/pkgs/applications/video/celluloid/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/celluloid/default.nix
@@ -3,7 +3,7 @@
, fetchFromGitHub
, appstream-glib
, desktop-file-utils
-, epoxy
+, libepoxy
, gettext
, glib
, gtk3
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
wrapGAppsHook
];
buildInputs = [
- epoxy
+ libepoxy
glib
gtk3
mpv
diff --git a/third_party/nixpkgs/pkgs/applications/video/cinelerra/default.nix b/third_party/nixpkgs/pkgs/applications/video/cinelerra/default.nix
index 75d3cdbcc6..0ce0623ec9 100644
--- a/third_party/nixpkgs/pkgs/applications/video/cinelerra/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/cinelerra/default.nix
@@ -1,13 +1,50 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool
-, pkg-config, faad2, faac, a52dec, alsa-lib, fftw, lame, libavc1394
-, libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
-, libtiff, freetype, mjpegtools, x264, gettext, openexr
-, libXext, libXxf86vm, libXv, libXi, libX11, libXft, xorgproto, libtheora, libpng
-, libdv, libuuid, file, nasm, perl
-, fontconfig, intltool }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoconf
+, automake
+, libtool
+, pkg-config
+, faad2
+, faac
+, a52dec
+, alsa-lib
+, fftw
+, lame
+, libavc1394
+, libiec61883
+, libraw1394
+, libsndfile
+, libvorbis
+, libogg
+, libjpeg
+, libtiff
+, freetype
+, mjpegtools
+, x264
+, gettext
+, openexr
+, libXext
+, libXxf86vm
+, libXv
+, libXi
+, libX11
+, libXft
+, xorgproto
+, libtheora
+, libpng
+, libdv
+, libuuid
+, file
+, nasm
+, perl
+, fontconfig
+, intltool
+}:
stdenv.mkDerivation {
- name = "cinelerra-cv-2021-02-14";
+ pname = "cinelerra-cv";
+ version = "unstable-2021-02-14";
src = fetchFromGitHub {
owner = "cinelerra-cv-team";
@@ -26,20 +63,46 @@ stdenv.mkDerivation {
preBuild = ''
make -C cinelerra versioninfo.h
'';
+
enableParallelBuilding = true;
nativeBuildInputs = [ automake autoconf libtool pkg-config file intltool ];
- buildInputs =
- [ faad2 faac
- a52dec alsa-lib fftw lame libavc1394 libiec61883
- libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
- mjpegtools x264 gettext openexr
- libXext libXxf86vm libXv libXi libX11 libXft xorgproto
- libtheora libpng libdv libuuid
- nasm
- perl
- fontconfig
- ];
+
+ buildInputs = [
+ faad2
+ faac
+ a52dec
+ alsa-lib
+ fftw
+ lame
+ libavc1394
+ libiec61883
+ libraw1394
+ libsndfile
+ libvorbis
+ libogg
+ libjpeg
+ libtiff
+ freetype
+ mjpegtools
+ x264
+ gettext
+ openexr
+ libXext
+ libXxf86vm
+ libXv
+ libXi
+ libX11
+ libXft
+ xorgproto
+ libtheora
+ libpng
+ libdv
+ libuuid
+ nasm
+ perl
+ fontconfig
+ ];
meta = with lib; {
description = "Professional video editing and compositing environment (community version)";
diff --git a/third_party/nixpkgs/pkgs/applications/video/coriander/default.nix b/third_party/nixpkgs/pkgs/applications/video/coriander/default.nix
index 0928984003..7f57c79c5f 100644
--- a/third_party/nixpkgs/pkgs/applications/video/coriander/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/coriander/default.nix
@@ -1,11 +1,24 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, gtk2, libgnomeui, libXv, libraw1394, libdc1394
-, SDL, automake, GConf }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, glib
+, gtk2
+, libgnomeui
+, libXv
+, libraw1394
+, libdc1394
+, SDL
+, automake
+, GConf
+}:
-stdenv.mkDerivation {
- name = "coriander-2.0.1";
+stdenv.mkDerivation rec {
+ pname = "coriander";
+ version = "2.0.1";
src = fetchurl {
- url = "http://damien.douxchamps.net/ieee1394/coriander/archives/coriander-2.0.1.tar.gz";
+ url = "http://damien.douxchamps.net/ieee1394/coriander/archives/coriander-${version}.tar.gz";
sha256 = "0l6hpfgy5r4yardilmdrggsnn1fbfww516sk5a90g1740cd435x5";
};
@@ -20,7 +33,7 @@ stdenv.mkDerivation {
homepage = "https://damien.douxchamps.net/ieee1394/coriander/";
description = "GUI for controlling a Digital Camera through the IEEE1394 bus";
license = lib.licenses.gpl3Plus;
- maintainers = with lib.maintainers; [viric];
+ maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/video/corrscope/default.nix b/third_party/nixpkgs/pkgs/applications/video/corrscope/default.nix
index 727541e3b5..c1d6669c8c 100644
--- a/third_party/nixpkgs/pkgs/applications/video/corrscope/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/corrscope/default.nix
@@ -34,7 +34,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
buildInputs = [ ffmpeg qtbase ];
- propagatedBuildInputs = with python3Packages; [ appdirs atomicwrites attrs click matplotlib numpy pyqt5 ruamel_yaml ];
+ propagatedBuildInputs = with python3Packages; [ appdirs atomicwrites attrs click matplotlib numpy pyqt5 ruamel-yaml ];
dontWrapQtApps = true;
diff --git a/third_party/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix b/third_party/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
index 95f3169718..165cb4ab4d 100644
--- a/third_party/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg_3, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools, runtimeShell }:
+{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools, runtimeShell }:
let
- binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg_3 imagemagick lame mjpegtools sox transcode vorbis-tools ];
+ binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg imagemagick lame mjpegtools sox transcode vorbis-tools ];
wrapper = writeScript "dvd-slideshow.sh" ''
#!${runtimeShell}
diff --git a/third_party/nixpkgs/pkgs/applications/video/dvdauthor/default.nix b/third_party/nixpkgs/pkgs/applications/video/dvdauthor/default.nix
index 502c4c69c3..941b080888 100644
--- a/third_party/nixpkgs/pkgs/applications/video/dvdauthor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/dvdauthor/default.nix
@@ -1,15 +1,28 @@
-{ lib, stdenv, fetchurl, imagemagick, libdvdread, libxml2, freetype, fribidi, libpng, zlib, pkg-config
-, flex, bison }:
+{ lib
+, stdenv
+, fetchurl
+, imagemagick
+, libdvdread
+, libxml2
+, freetype
+, fribidi
+, libpng
+, zlib
+, pkg-config
+, flex
+, bison
+}:
stdenv.mkDerivation rec {
- name = "dvdauthor-0.7.1";
+ pname = "dvdauthor";
+ version = "0.7.1";
src = fetchurl {
- url = "mirror://sourceforge/dvdauthor/${name}.tar.gz";
+ url = "mirror://sourceforge/dvdauthor/dvdauthor-${version}.tar.gz";
sha256 = "1s8zqlim0s3hk5sbdsilip3qqh0yv05l1jwx49d9rsy614dv27sh";
};
- buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick flex bison];
+ buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick flex bison ];
nativeBuildInputs = [ pkg-config ];
patches = [
diff --git a/third_party/nixpkgs/pkgs/applications/video/entangle/default.nix b/third_party/nixpkgs/pkgs/applications/video/entangle/default.nix
new file mode 100644
index 0000000000..2c75633808
--- /dev/null
+++ b/third_party/nixpkgs/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
+, libepoxy
+, 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
+ libepoxy
+ 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/third_party/nixpkgs/pkgs/applications/video/filebot/default.nix b/third_party/nixpkgs/pkgs/applications/video/filebot/default.nix
index a32228176c..93f11e78ff 100644
--- a/third_party/nixpkgs/pkgs/applications/video/filebot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/filebot/default.nix
@@ -4,7 +4,7 @@
let
# FileBot requires libcurl-gnutls.so to build
- curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+ curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
in
diff --git a/third_party/nixpkgs/pkgs/applications/video/flirc/99-flirc.rules b/third_party/nixpkgs/pkgs/applications/video/flirc/99-flirc.rules
new file mode 100644
index 0000000000..eb02f8a911
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/flirc/default.nix b/third_party/nixpkgs/pkgs/applications/video/flirc/default.nix
new file mode 100644
index 0000000000..6285094c46
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/freetube/default.nix b/third_party/nixpkgs/pkgs/applications/video/freetube/default.nix
index aa32e8828e..c5a2a31386 100644
--- a/third_party/nixpkgs/pkgs/applications/video/freetube/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/freetube/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "freetube";
- version = "0.15.0";
+ version = "0.15.1";
src = fetchurl {
url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
- sha256 = "sha256-52cVY3SBT048tErydk3l27yBvM/FMVpEMf5miAeInDM=";
+ sha256 = "sha256-7jmKD6HjsTqW/SRmD4xI3uQJnwmyDgjJZRJX9XygZyU=";
};
appimageContents = appimageTools.extractType2 {
diff --git a/third_party/nixpkgs/pkgs/applications/video/giph/default.nix b/third_party/nixpkgs/pkgs/applications/video/giph/default.nix
index 431f267e4c..3255544ff8 100644
--- a/third_party/nixpkgs/pkgs/applications/video/giph/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/giph/default.nix
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation rec {
homepage = "https://github.com/phisch/giph";
description = "Simple gif recorder";
license = licenses.mit;
- maintainers = [ maintainers.legendofmiracles ];
+ maintainers = [ maintainers.lom ];
platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/video/handbrake/default.nix b/third_party/nixpkgs/pkgs/applications/video/handbrake/default.nix
index 5007f7419a..ce64a70237 100644
--- a/third_party/nixpkgs/pkgs/applications/video/handbrake/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/handbrake/default.nix
@@ -7,85 +7,120 @@
# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
# requires invoking the Xcode build system, which is non-trivial for now.
-{ stdenv, lib, fetchFromGitHub, fetchpatch,
+{ stdenv
+, lib
+, fetchFromGitHub
+, nixosTests
# Main build tools
- pkg-config, autoconf, automake, libtool, m4, xz, python3,
- numactl,
+, pkg-config
+, autoconf
+, automake
+, libtool
+, m4
+, xz
+, python3
+, numactl
+, writeText
# Processing, video codecs, containers
- ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
+, ffmpeg-full
+, nv-codec-headers
+, libogg
+, x264
+, x265
+, libvpx
+, libtheora
+, dav1d
+, zimg
# Codecs, audio
- libopus, lame, libvorbis, a52dec, speex, libsamplerate,
+, libopus
+, lame
+, libvorbis
+, a52dec
+, speex
+, libsamplerate
# Text processing
- libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
+, libiconv
+, fribidi
+, fontconfig
+, freetype
+, libass
+, jansson
+, libxml2
+, harfbuzz
+, libjpeg_turbo
# Optical media
- libdvdread, libdvdnav, libdvdcss, libbluray,
+, libdvdread
+, libdvdnav
+, libdvdcss
+, libbluray
# Darwin-specific
- AudioToolbox ? null,
- Foundation ? null,
- libobjc ? null,
- VideoToolbox ? null,
+, AudioToolbox ? null
+, Foundation ? null
+, libobjc ? null
+, VideoToolbox ? null
# GTK
# NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
# which in turn depends on systemd. systemd is not supported on Darwin, so
# for now we disable GTK GUI support on Darwin. (It may be possible to remove
# this restriction later.)
- useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
- intltool ? null,
- glib ? null,
- gtk3 ? null,
- libappindicator-gtk3 ? null,
- libnotify ? null,
- gst_all_1 ? null,
- dbus-glib ? null,
- udev ? null,
- libgudev ? null,
- hicolor-icon-theme ? null,
+, useGtk ? !stdenv.isDarwin
+, wrapGAppsHook
+, intltool
+, glib
+, gtk3
+, libappindicator-gtk3
+, libnotify
+, gst_all_1
+, dbus-glib
+, udev
+, libgudev
+, hicolor-icon-theme
# FDK
- useFdk ? false, fdk_aac ? null
+, useFdk ? false
+, fdk_aac
}:
-stdenv.mkDerivation rec {
- pname = "handbrake";
- version = "1.3.3";
+let
+ version = "1.4.2";
src = fetchFromGitHub {
owner = "HandBrake";
repo = "HandBrake";
rev = version;
- sha256 = "0bsmk37543zv3p32a7wxnh2w483am23ha2amj339q3nnb4142krn";
- extraPostFetch = ''
- echo "DATE=$(date +"%F %T %z" -r $out/NEWS.markdown)" > $out/version.txt
- '';
+ sha256 = "sha256-Usz2+U1Wb8yJ5W2HqV0FqBaaE25fuVKk/NwKBHaKzwk=";
};
- # Remove with a release after 1.3.3
- patches = [
- (fetchpatch {
- name = "audio-fix-ffmpeg-4_4";
- url = "https://github.com/HandBrake/HandBrake/commit/f28289fb06ab461ea082b4be56d6d1504c0c31c2.patch";
- sha256 = "sha256:1zcwa4h97d8wjspb8kbd8b1jg0a9vvmv9zaphzry4m9q0bj3h3kz";
- })
- ];
+ versionFile = writeText "version.txt" ''
+ BRANCH=${versions.majorMinor version}.x
+ DATE=1970-01-01 00:00:01 +0000
+ HASH=${src.rev}
+ REV=${src.rev}
+ SHORTHASH=${src.rev}
+ TAG=${version}
+ URL=${src.meta.homepage}
+ '';
+
+ inherit (lib) optional optionals optionalString versions;
+
+in
+stdenv.mkDerivation rec {
+ pname = "handbrake";
+ inherit version src;
- # we put as little as possible in src.extraPostFetch as it's much easier to
- # add to it here without having to fiddle with src.sha256
- # only DATE and HASH are absolutely necessary
postPatch = ''
- cat >> version.txt <<_EOF
-HASH=${src.rev}
-SHORTHASH=${src.rev}
-TAG=${version}
-URL=${src.meta.homepage}
-_EOF
+ install -Dm444 ${versionFile} ${versionFile.name}
patchShebangs scripts
+ substituteInPlace libhb/hb.c \
+ --replace 'return hb_version;' 'return "${version}";'
+
# Force using nixpkgs dependencies
sed -i '/MODULES += contrib/d' make/include/main.defs
sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
-e '/ ## Additional library and tool checks/,/ ## MinGW specific library and tool checks/d' \
-i make/configure.py
- '' + (lib.optionalString stdenv.isDarwin ''
+ '' + optionalString stdenv.isDarwin ''
# Use the Nix-provided libxml2 instead of the patched version available on
# the Handbrake website.
substituteInPlace libhb/module.defs \
@@ -95,51 +130,92 @@ _EOF
# which it isn't in the Nix context. (The actual build goes fine without
# xcodebuild.)
sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
- '') + (lib.optionalString stdenv.isLinux ''
+ '' + optionalString stdenv.isLinux ''
# Use the Nix-provided libxml2 instead of the system-provided one.
substituteInPlace libhb/module.defs \
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
- '');
+ '';
nativeBuildInputs = [
- pkg-config autoconf automake libtool m4 python3
- ] ++ lib.optionals useGtk [ intltool wrapGAppsHook ];
+ autoconf
+ automake
+ libtool
+ m4
+ pkg-config
+ python3
+ ]
+ ++ optionals useGtk [ intltool wrapGAppsHook ];
buildInputs = [
- ffmpeg-full libogg libtheora x264 x265 libvpx dav1d
- libopus lame libvorbis a52dec speex libsamplerate
- libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
- libdvdread libdvdnav libdvdcss libbluray xz
- ] ++ lib.optional (!stdenv.isDarwin) numactl
- ++ lib.optionals useGtk [
- glib gtk3 libappindicator-gtk3 libnotify
- gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
- libgudev hicolor-icon-theme
- ] ++ lib.optional useFdk fdk_aac
- ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
+ a52dec
+ dav1d
+ ffmpeg-full
+ fontconfig
+ freetype
+ fribidi
+ harfbuzz
+ jansson
+ lame
+ libass
+ libbluray
+ libdvdcss
+ libdvdnav
+ libdvdread
+ libiconv
+ libjpeg_turbo
+ libogg
+ libopus
+ libsamplerate
+ libtheora
+ libvorbis
+ libvpx
+ libxml2
+ speex
+ x264
+ x265
+ xz
+ zimg
+ ]
+ ++ optional (!stdenv.isDarwin) numactl
+ ++ optionals useGtk [
+ dbus-glib
+ glib
+ gst_all_1.gst-plugins-base
+ gst_all_1.gstreamer
+ gtk3
+ hicolor-icon-theme
+ libappindicator-gtk3
+ libgudev
+ libnotify
+ udev
+ ]
+ ++ optional useFdk fdk_aac
+ ++ optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
# look at ./make/configure.py search "enable_nvenc"
- ++ lib.optional stdenv.isLinux nv-codec-headers;
+ ++ optional stdenv.isLinux nv-codec-headers;
configureFlags = [
"--disable-df-fetch"
"--disable-df-verify"
- (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
- (if useFdk then "--enable-fdk-aac" else "")
- (if stdenv.isDarwin then "--disable-xcode" else "")
- ] ++ lib.optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
+ "--disable-gtk-update-checks"
+ ]
+ ++ optional (!useGtk) "--disable-gtk"
+ ++ optional useFdk "--enable-fdk-aac"
+ ++ optional stdenv.isDarwin "--disable-xcode"
+ ++ optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
- NIX_LDFLAGS = [
- "-lx265"
- ];
+ NIX_LDFLAGS = [ "-lx265" ];
- preBuild = ''
- cd build
- '';
+ makeFlags = [ "--directory=build" ];
+
+ passthru.tests = {
+ basic-conversion = nixosTests.handbrake;
+ };
meta = with lib; {
- homepage = "http://handbrake.fr/";
+ homepage = "https://handbrake.fr/";
description = "A tool for converting video files and ripping DVDs";
longDescription = ''
Tool for converting and remuxing video files
@@ -149,8 +225,9 @@ _EOF
CLI - `HandbrakeCLI`
GTK GUI - `ghb`
'';
- license = licenses.gpl2;
+ license = licenses.gpl2Only;
maintainers = with maintainers; [ Anton-Latukha wmertens ];
platforms = with platforms; unix;
+ broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix b/third_party/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
index 8c23bfc5c2..82d34d188f 100644
--- a/third_party/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kaffeine/default.nix b/third_party/nixpkgs/pkgs/applications/video/kaffeine/default.nix
new file mode 100644
index 0000000000..6cbce01f61
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/video/kaffeine/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, kio
+, cmake
+, extra-cmake-modules
+, libvlc
+, libX11
+, kidletime
+, kdelibs4support
+, libXScrnSaver
+, wrapQtAppsHook
+, qtx11extras
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kaffeine";
+ version = "2.0.18";
+
+ src = fetchFromGitLab {
+ domain = "invent.kde.org";
+ repo = pname;
+ owner = "Multimedia";
+ rev = "v${version}";
+ hash = "sha256-FOaS9gkzkHglbsNBNMwjzbHCNQg3Mbf+9so/Vfbaquc=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ libvlc
+ libX11
+ kidletime
+ qtx11extras
+ kdelibs4support
+ libXScrnSaver
+ ];
+
+ meta = with lib; {
+ description = "KDE media player";
+ homepage = "https://apps.kde.org/kaffeine/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.pasqui23 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/video/kodi-packages/archive_tool/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/archive_tool/default.nix
new file mode 100644
index 0000000000..4788556a87
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/archive_tool/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildKodiAddon, fetchFromGitHub, vfs-libarchive }:
+buildKodiAddon rec {
+ pname = "archive_tool";
+ namespace = "script.module.archive_tool";
+ version = "2.0.3";
+
+ src = fetchFromGitHub {
+ owner = "zach-morris";
+ repo = "script.module.archive_tool";
+ rev = version;
+ sha256 = "0hbkyk59xxfjv6vzfjplahmqxi5564qjlwyq6k8ijy6jjcwnd3p7";
+ };
+
+ propagatedBuildInputs = [
+ vfs-libarchive
+ ];
+
+ passthru = {
+ pythonPath = "lib";
+ };
+
+ meta = with lib; {
+ homepage = "https://github.com/zach-morris/script.module.archive_tool";
+ description = "A set of common python functions to work with the Kodi archive virtual file system (vfs) binary addons";
+ license = licenses.gpl3Plus;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/video/kodi-packages/defusedxml/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/defusedxml/default.nix
new file mode 100644
index 0000000000..11738065ff
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi-packages/iagl/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/iagl/default.nix
new file mode 100644
index 0000000000..8ca0abdf96
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/iagl/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildKodiAddon, fetchFromGitHub, fetchzip, dateutil, requests, routing, vfs-libarchive, archive_tool, youtube }:
+
+buildKodiAddon rec {
+ pname = "iagl";
+ namespace = "plugin.program.iagl";
+ version = "1101521-2";
+
+ src = fetchFromGitHub {
+ owner = "zach-morris";
+ repo = "plugin.program.iagl";
+ rev = "30e82eec1a909b31767f0e298cf77fc970b256d3";
+ sha256 = "11y05i5f7lzik23w2kr52jdgr8db3gin8i683sy1hzxlmplk4699";
+ };
+
+ propagatedBuildInputs = [
+ dateutil
+ requests
+ routing
+ vfs-libarchive
+ archive_tool
+ youtube
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/zach-morris/plugin.program.iagl";
+ description = "Launch Games from the Internet using Kodi";
+ license = licenses.gpl3Plus;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix
index b162ca11fa..59aaa2e8b2 100644
--- a/third_party/nixpkgs/pkgs/applications/video/kodi-packages/jellyfin/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi-packages/keymap/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/keymap/default.nix
new file mode 100644
index 0000000000..d7b45485d6
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix
new file mode 100644
index 0000000000..064375107e
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix
new file mode 100644
index 0000000000..a58f1c51b2
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix
@@ -0,0 +1,31 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, mgba }:
+
+buildKodiBinaryAddon rec {
+ pname = "kodi-libretro-mgba";
+ namespace = "game.libretro.mgba";
+ version = "0.9.2.31";
+
+ src = fetchFromGitHub {
+ owner = "kodi-game";
+ repo = "game.libretro.mgba";
+ rev = "${version}-${rel}";
+ sha256 = "sha256-eZLuNhLwMTtzpLGkymc9cLC83FQJWZ2ZT0iyz4sY4EA=";
+ };
+
+ extraCMakeFlags = [
+ "-DMGBA_LIB=${mgba}/lib/retroarch/cores/mgba_libretro.so"
+ ];
+
+ extraBuildInputs = [ mgba ];
+ propagatedBuildInputs = [
+ libretro
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/kodi-game/game.libretro.mgba";
+ description = "mGBA for Kodi";
+ platforms = platforms.all;
+ license = licenses.gpl2Only;
+ maintainers = teams.kodi.members;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix
new file mode 100644
index 0000000000..640aec3d49
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/libretro/default.nix
new file mode 100644
index 0000000000..d1fc3d4afd
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi-packages/youtube/default.nix b/third_party/nixpkgs/pkgs/applications/video/kodi-packages/youtube/default.nix
index 7c16aa606f..090e09d55e 100644
--- a/third_party/nixpkgs/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/third_party/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
index 72d6533f38..d1eb38cd0b 100644
--- a/third_party/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix b/third_party/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
index 1ad0dee49c..dc5e41aeac 100644
--- a/third_party/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
@@ -16,7 +16,7 @@
, libcec, libcec_platform, dcadec, libuuid
, libcrossguid, libmicrohttpd
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
-, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
+, libplist, p11-kit, zlib, flatbuffers, fstrcmp, rapidjson
, lirc
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
, dbusSupport ? true, dbus
@@ -38,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 {
@@ -125,7 +125,7 @@ in stdenv.mkDerivation {
libgcrypt libgpg-error libunistring
libcrossguid libplist
bluez giflib glib harfbuzz lcms2 libpthreadstubs
- ffmpeg flatbuffers fmt fstrcmp rapidjson
+ ffmpeg flatbuffers fstrcmp rapidjson
lirc
mesa # for libEGL
]
@@ -198,10 +198,10 @@ in stdenv.mkDerivation {
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
# Need these tools on the build system when cross compiling,
# hacky, but have found no other way.
- CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
+ CXX=$CXX_FOR_BUILD LD=ld make -C tools/depends/native/JsonSchemaBuilder
cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
- CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
+ CXX=$CXX_FOR_BUILD LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
'';
diff --git a/third_party/nixpkgs/pkgs/applications/video/kodi/wrapper.nix b/third_party/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
index 7377e63867..52b7679a32 100644
--- a/third_party/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
@@ -22,7 +22,7 @@ buildEnv {
paths = [ kodi ] ++ addons;
pathsToLink = [ "/share" ];
- buildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ makeWrapper ];
postBuild = ''
mkdir $out/bin
diff --git a/third_party/nixpkgs/pkgs/applications/video/kooha/default.nix b/third_party/nixpkgs/pkgs/applications/video/kooha/default.nix
index 6203041ed6..f5be866473 100644
--- a/third_party/nixpkgs/pkgs/applications/video/kooha/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/kooha/default.nix
@@ -1,28 +1,40 @@
-{ lib, fetchFromGitHub, appstream-glib, desktop-file-utils, glib
-, gobject-introspection, gst_all_1, gtk4, libadwaita, librsvg, meson, ninja
-, pkg-config, python3, wrapGAppsHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, glib
+, gobject-introspection
+, gst_all_1
+, gtk4
+, libadwaita
+, libpulseaudio
+, librsvg
+, meson
+, ninja
+, pkg-config
+, python3
+, rustPlatform
+, wayland
+, wrapGAppsHook
+}:
-python3.pkgs.buildPythonApplication rec {
+stdenv.mkDerivation rec {
pname = "kooha";
- version = "1.2.1";
- format = "other";
+ version = "2.0.1";
src = fetchFromGitHub {
owner = "SeaDve";
repo = "Kooha";
rev = "v${version}";
- sha256 = "1qwbzdn0n1nxcfci1bhhkfchdhw5yz74fdvsa84cznyyx2jils8w";
+ sha256 = "05ynpwjdpl7zp9f17zhhvb59rbz3gd7hc0amla1g85ldgfxbgl00";
};
- buildInputs = [
- glib
- gobject-introspection
- gst_all_1.gstreamer
- gst_all_1.gst-plugins-base
- gtk4
- libadwaita
- librsvg
- ];
+ cargoDeps = rustPlatform.fetchCargoTarball {
+ inherit src;
+ name = "${pname}-${version}";
+ hash = "sha256:16zf6vb001z7xdv2g4kpmb2vqsmaql2cpsx1rl9zrfhpl2z6frs9";
+ };
nativeBuildInputs = [
appstream-glib
@@ -31,21 +43,31 @@ python3.pkgs.buildPythonApplication rec {
ninja
python3
pkg-config
+ rustPlatform.cargoSetupHook
+ rustPlatform.rust.cargo
+ rustPlatform.rust.rustc
+ wayland
wrapGAppsHook
];
+ buildInputs = [
+ glib
+ gobject-introspection
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gtk4
+ libadwaita
+ libpulseaudio
+ librsvg
+ ];
+
propagatedBuildInputs = [ python3.pkgs.pygobject3 ];
strictDeps = false;
- buildPhase = ''
- export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
- '';
-
# Fixes https://github.com/NixOS/nixpkgs/issues/31168
postPatch = ''
- chmod +x build-aux/meson/postinstall.py
- patchShebangs build-aux/meson/postinstall.py
+ patchShebangs build-aux/meson_post_install.py
'';
installCheckPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix b/third_party/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix
index 6a10aca398..60604a4b8a 100644
--- a/third_party/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libdvdread }:
stdenv.mkDerivation rec {
- name = "lxdvdrip-1.76";
+ pname = "lxdvdrip";
+ version = "1.76";
src = fetchurl {
- url = "mirror://sourceforge/lxdvdrip/${name}.tgz";
+ url = "mirror://sourceforge/lxdvdrip/lxdvdrip-${version}.tgz";
sha256 = "0vgslc7dapfrbgslnaicc8bggdccyrvcgjv1dwi19qswhh7jkzj6";
};
diff --git a/third_party/nixpkgs/pkgs/applications/video/makemkv/default.nix b/third_party/nixpkgs/pkgs/applications/video/makemkv/default.nix
index 180d5e8e82..26d80b1596 100644
--- a/third_party/nixpkgs/pkgs/applications/video/makemkv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -3,6 +3,7 @@
, fetchurl
, autoPatchelfHook
, pkg-config
+, curl
, ffmpeg
, openssl
, qtbase
@@ -13,21 +14,21 @@
}:
let
- version = "1.16.4";
+ version = "1.16.5";
# Using two URLs as the first one will break as soon as a new version is released
src_bin = fetchurl {
urls = [
"http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
"http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
];
- sha256 = "18kalql846b9ggl3nsz2dpbg51byn8pj0y68fsdcgwwkgvsx7yr2";
+ sha256 = "1y14yxhjj0sdq0s24qr58m0ddhna2rf0q0w3ny888as4wbqiwvm0";
};
src_oss = fetchurl {
urls = [
"http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
"http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
];
- sha256 = "0ssg3q1z80652d4gkv1z7kpsxx82xcw6kpsw266c8q4y2n8x7c76";
+ sha256 = "131vdi4gyc996z77rrcqb9nfbd62j8314ai4ib1jnilmrsrk93p5";
};
in mkDerivation {
@@ -42,6 +43,8 @@ in mkDerivation {
buildInputs = [ ffmpeg openssl qtbase zlib ];
+ runtimeDependencies = [ (lib.getLib curl) ];
+
qtWrapperArgs =
let
binPath = lib.makeBinPath [ jre_headless ];
diff --git a/third_party/nixpkgs/pkgs/applications/video/minitube/default.nix b/third_party/nixpkgs/pkgs/applications/video/minitube/default.nix
index 84b5e2a1d7..62e7e21cbb 100644
--- a/third_party/nixpkgs/pkgs/applications/video/minitube/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/third_party/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index 4eac16d349..c6628dde05 100644
--- a/third_party/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -47,13 +47,13 @@ let
in
stdenv.mkDerivation rec {
pname = "mkvtoolnix";
- version = "62.0.0";
+ version = "63.0.0";
src = fetchFromGitLab {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
- sha256 = "0pjf1lkpjirqanazm7a28b8bsyin4i1kd1s4y169zsilzb28kpiz";
+ sha256 = "0jniy2kkg4fkrgyw2k8jcpq872qzkrxkbpbc7ksadm2rdygsa3xh";
};
nativeBuildInputs = [
@@ -122,11 +122,6 @@ stdenv.mkDerivation rec {
dontWrapQtApps = true;
- # Avoid Qt 5.12 problem on Big Sur: https://bugreports.qt.io/browse/QTBUG-87014
- qtWrapperArgs = lib.optionals stdenv.isDarwin [
- "--set QT_MAC_WANTS_LAYER 1"
- ];
-
postFixup = optionalString withGUI ''
wrapQtApp $out/bin/mkvtoolnix-gui
'';
diff --git a/third_party/nixpkgs/pkgs/applications/video/molotov/default.nix b/third_party/nixpkgs/pkgs/applications/video/molotov/default.nix
index 3015bc1191..670eef3aa3 100644
--- a/third_party/nixpkgs/pkgs/applications/video/molotov/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/motion/default.nix b/third_party/nixpkgs/pkgs/applications/video/motion/default.nix
index 53db96e31d..c9ea2a51d3 100644
--- a/third_party/nixpkgs/pkgs/applications/video/motion/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/mplayer/default.nix b/third_party/nixpkgs/pkgs/applications/video/mplayer/default.nix
index 644e35468f..1715ce4a6a 100644
--- a/third_party/nixpkgs/pkgs/applications/video/mplayer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/mplayer/default.nix
@@ -174,7 +174,7 @@ stdenv.mkDerivation rec {
(useUnfreeCodecs && codecs != null && !crossBuild)
"--codecsdir=${codecs}"
++ optional
- ((stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) && !crossBuild)
+ (stdenv.hostPlatform.isx86 && !crossBuild)
"--enable-runtime-cpudetection"
++ optional fribidiSupport "--enable-fribidi"
++ optional stdenv.isLinux "--enable-vidix"
diff --git a/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix b/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix
index 12ca0dfe4c..3183ca9bbe 100644
--- a/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -1,148 +1,103 @@
-{ 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
, CoreFoundation, Cocoa, CoreAudio, MediaPlayer
, waylandSupport ? stdenv.isLinux
- , wayland ? null
- , wayland-protocols ? null
- , libxkbcommon ? null
+ , wayland
+ , wayland-protocols
+ , libxkbcommon
, x11Support ? stdenv.isLinux
- , libGLU, libGL ? null
- , libX11 ? null
- , libXext ? null
- , libXxf86vm ? null
- , libXrandr ? null
+ , libGLU, libGL
+ , libX11
+ , libXext
+ , libXxf86vm
+ , libXrandr
, cddaSupport ? false
- , libcdio ? null
- , libcdio-paranoia ? null
+ , libcdio
+ , libcdio-paranoia
, vulkanSupport ? stdenv.isLinux
- , libplacebo ? null
- , shaderc ? null
- , vulkan-headers ? null
- , vulkan-loader ? null
+ , libplacebo
+ , shaderc
+ , vulkan-headers
+ , vulkan-loader
, drmSupport ? stdenv.isLinux
- , libdrm ? null
- , mesa ? null
+ , libdrm
+ , mesa
-, alsaSupport ? stdenv.isLinux, alsa-lib ? null
-, archiveSupport ? true, libarchive ? null
-, bluraySupport ? true, libbluray ? null
-, bs2bSupport ? true, libbs2b ? null
-, cacaSupport ? true, libcaca ? null
-, cmsSupport ? true, lcms2 ? null
-, dvdnavSupport ? stdenv.isLinux, libdvdnav ? null
-, jackaudioSupport ? false, libjack2 ? null
-, libpngSupport ? true, libpng ? null
-, openalSupport ? true, openalSoft ? null
-, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
-, rubberbandSupport ? stdenv.isLinux, rubberband ? null
-, screenSaverSupport ? true, libXScrnSaver ? null
-, sdl2Support ? true, SDL2 ? null
-, sixelSupport ? false, libsixel ? null
-, speexSupport ? true, speex ? null
-, swiftSupport ? false, swift ? null
-, theoraSupport ? true, libtheora ? null
-, vaapiSupport ? stdenv.isLinux, libva ? null
-, vapoursynthSupport ? false, vapoursynth ? null
-, vdpauSupport ? true, libvdpau ? null
-, xineramaSupport ? stdenv.isLinux, libXinerama ? null
-, xvSupport ? stdenv.isLinux, libXv ? null
-, zimgSupport ? true, zimg ? null
+, alsaSupport ? stdenv.isLinux, alsa-lib
+, archiveSupport ? true, libarchive
+, bluraySupport ? true, libbluray
+, bs2bSupport ? true, libbs2b
+, cacaSupport ? true, libcaca
+, cmsSupport ? true, lcms2
+, dvdnavSupport ? stdenv.isLinux, libdvdnav
+, jackaudioSupport ? false, libjack2
+, libpngSupport ? true, libpng
+, openalSupport ? true, openalSoft
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
+, rubberbandSupport ? stdenv.isLinux, rubberband
+, screenSaverSupport ? true, libXScrnSaver
+, sdl2Support ? true, SDL2
+, sixelSupport ? false, libsixel
+, speexSupport ? true, speex
+, swiftSupport ? false, swift
+, theoraSupport ? true, libtheora
+, vaapiSupport ? stdenv.isLinux, libva
+, vapoursynthSupport ? false, vapoursynth
+, vdpauSupport ? true, libvdpau
+, xineramaSupport ? stdenv.isLinux, libXinerama
+, xvSupport ? stdenv.isLinux, libXv
+, zimgSupport ? true, zimg
}:
with lib;
-let
- available = x: x != null;
-in
-assert alsaSupport -> available alsa-lib;
-assert archiveSupport -> available libarchive;
-assert bluraySupport -> available libbluray;
-assert bs2bSupport -> available libbs2b;
-assert cacaSupport -> available libcaca;
-assert cddaSupport -> all available [ libcdio libcdio-paranoia ];
-assert cmsSupport -> available lcms2;
-assert drmSupport -> all available [ libdrm mesa ];
-assert dvdnavSupport -> available libdvdnav;
-assert jackaudioSupport -> available libjack2;
-assert libpngSupport -> available libpng;
-assert openalSupport -> available openalSoft;
-assert pulseSupport -> available libpulseaudio;
-assert rubberbandSupport -> available rubberband;
-assert screenSaverSupport -> available libXScrnSaver;
-assert sdl2Support -> available SDL2;
-assert sixelSupport -> available libsixel;
-assert speexSupport -> available speex;
-assert theoraSupport -> available libtheora;
-assert vaapiSupport -> available libva;
-assert vapoursynthSupport -> available vapoursynth;
-assert vdpauSupport -> available libvdpau;
-assert vulkanSupport -> all available [ libplacebo shaderc vulkan-headers vulkan-loader ];
-assert waylandSupport -> all available [ wayland wayland-protocols libxkbcommon ];
-assert x11Support -> all available [ libGLU libGL libX11 libXext libXxf86vm libXrandr ];
-assert xineramaSupport -> x11Support && available libXinerama;
-assert xvSupport -> x11Support && available libXv;
-assert zimgSupport -> available zimg;
-
let
luaEnv = lua.withPackages (ps: with ps; [ luasocket ]);
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";
- })
- # TOREMOVE when > 0.33.1
- # youtube-dl has been abandonned and is now unusable w/
- # youtube.com. Mpv migrated to yt-dlp since the 0.33.1 but did not
- # cut a new release yet. See
- # https://github.com/mpv-player/mpv/pull/9209
- (fetchpatch {
- url = "https://github.com/mpv-player/mpv/commit/d1c92bfd79ef81ac804fcc20aee2ed24e8d587aa.patch";
- sha256 = "1dwxzng3gsrx0gjljm5jmfcjz3pzdss9z2l0n25rmmb4nbcrcx1f";
- })
- ];
-
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"
@@ -150,60 +105,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
'';
@@ -219,28 +185,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
'';
+ 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
+ ;
+ };
+
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.
- '';
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/video/mpv/scripts/cutter.nix b/third_party/nixpkgs/pkgs/applications/video/mpv/scripts/cutter.nix
new file mode 100644
index 0000000000..498fcb530a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/video/mpv/scripts/cutter.nix
@@ -0,0 +1,47 @@
+{ lib, stdenvNoCC, fetchFromGitHub, makeWrapper }:
+
+stdenvNoCC.mkDerivation {
+ pname = "video-cutter";
+ version = "unstable-2021-02-03";
+
+ src = fetchFromGitHub {
+ owner = "rushmj";
+ repo = "mpv-video-cutter";
+ rev = "718d6ce9356e63fdd47208ec44f575a212b9068a";
+ sha256 = "sha256-ramID1DPl0UqEzevpqdYKb9aaW3CAy3Dy9CPb/oJ4eY=";
+ };
+
+ dontBuild = true;
+ dontCheck = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postPatch = ''
+ substituteInPlace cutter.lua \
+ --replace '~/.config/mpv/scripts/c_concat.sh' '${placeholder "out"}/share/mpv/scripts/c_concat.sh'
+
+ # needs to be ran separately so that we can replace everything, and not every single mention explicitly
+ # original script places them in the scripts folder, just spawning unnecessary errors
+ # i know that hardcoding .config and especially the .mpv directory isn't best practice, but I didn't want to deviate too much from upstream
+ substituteInPlace cutter.lua \
+ --replace '~/.config/mpv/scripts' "''${XDG_CONFIG_HOME:-~/.config}/mpv/cutter"
+ '';
+
+ installPhase = ''
+ install -Dm755 c_concat.sh $out/share/mpv/scripts/c_concat.sh
+ install cutter.lua $out/share/mpv/scripts/cutter.lua
+
+ wrapProgram $out/share/mpv/scripts/c_concat.sh \
+ --run "mkdir -p ~/.config/mpv/cutter/"
+ '';
+
+ passthru.scriptName = "cutter.lua";
+
+ meta = with lib; {
+ description = "Cut videos and concat them automatically";
+ homepage = "https://github.com/rushmj/mpv-video-cutter";
+ # repo doesn't have a license
+ license = licenses.unfree;
+ maintainers = with maintainers; [ lom ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/video/mpv/wrapper.nix b/third_party/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
index 984623ed77..28414c3756 100644
--- a/third_party/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
@@ -1,8 +1,8 @@
# Arguments that this derivation gets when it is created with `callPackage`
{ stdenv
, lib
-, symlinkJoin
, makeWrapper
+, symlinkJoin
, yt-dlp
}:
@@ -10,7 +10,7 @@
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,
@@ -79,6 +79,11 @@ let
rm "$out/Applications/mpv.app/Contents/MacOS/mpv"
makeWrapper "${mpv}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs}
'';
+
+ meta = {
+ inherit (mpv.meta) homepage description longDescription maintainers;
+ mainProgram = "mpv";
+ };
};
in
lib.makeOverridable wrapper
diff --git a/third_party/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/third_party/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index 85a0725477..31f478c47c 100644
--- a/third_party/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -21,16 +21,14 @@
, curl
, wayland
, xorg
-, makeWrapper
, pkg-config
, libvlc
, mbedtls
-
+, wrapGAppsHook
, scriptingSupport ? true
, luajit
, swig
, python3
-
, alsaSupport ? stdenv.isLinux
, alsa-lib
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
@@ -68,7 +66,7 @@ mkDerivation rec {
addOpenGLRunpath
cmake
pkg-config
- makeWrapper
+ wrapGAppsHook
]
++ optional scriptingSupport swig;
@@ -121,9 +119,13 @@ mkDerivation rec {
"-DCEF_ROOT_DIR=../../cef"
];
- qtWrapperArgs = [
- "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 libvlc ]}"
- ];
+ dontWrapGApps = true;
+ preFixup = ''
+ qtWrapperArgs+=(
+ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ xorg.libX11 libvlc ]}"
+ ''${gappsWrapperArgs[@]}
+ )
+ '';
postFixup = lib.optionalString stdenv.isLinux ''
addOpenGLRunpath $out/lib/lib*.so
diff --git a/third_party/nixpkgs/pkgs/applications/video/ogmtools/default.nix b/third_party/nixpkgs/pkgs/applications/video/ogmtools/default.nix
index aa0f2404ab..9f7e08a9dd 100644
--- a/third_party/nixpkgs/pkgs/applications/video/ogmtools/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/ogmtools/default.nix
@@ -1,14 +1,15 @@
{ lib, stdenv, fetchurl, libogg, libvorbis, libdvdread }:
stdenv.mkDerivation rec {
- name = "ogmtools-1.5";
+ pname = "ogmtools";
+ version = "1.5";
src = fetchurl {
- url = "https://www.bunkus.org/videotools/ogmtools/${name}.tar.bz2";
+ url = "https://www.bunkus.org/videotools/ogmtools/ogmtools-${version}.tar.bz2";
sha256 = "1spx81p5wf59ksl3r3gvf78d77sh7gj8a6lw773iv67bphfivmn8";
};
- buildInputs = [libogg libvorbis libdvdread];
+ buildInputs = [ libogg libvorbis libdvdread ];
meta = {
description = "Tools for modifying and inspecting OGG media streams";
diff --git a/third_party/nixpkgs/pkgs/applications/video/omxplayer/default.nix b/third_party/nixpkgs/pkgs/applications/video/omxplayer/default.nix
index 3fe3dcf454..e01d0a2f49 100644
--- a/third_party/nixpkgs/pkgs/applications/video/omxplayer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/omxplayer/default.nix
@@ -1,17 +1,25 @@
-{ lib, stdenv, fetchurl
-, raspberrypifw, pcre, boost, freetype, zlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, raspberrypifw
+, pcre
+, boost
+, freetype
+, zlib
}:
let
ffmpeg = stdenv.mkDerivation rec {
- name = "ffmpeg-1.1.3";
+ pname = "ffmpeg";
+ version = "1.1.3";
src = fetchurl {
- url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
+ url = "http://www.ffmpeg.org/releases/ffmpeg-${version}.tar.bz2";
sha256 = "03s1zsprz5p6gjgwwqcf7b6cvzwwid6l8k7bamx9i0f1iwkgdm0j";
};
- configurePlatforms = [];
+ configurePlatforms = [ ];
configureFlags = [
"--arch=${stdenv.hostPlatform.parsed.cpu.name}"
] ++ lib.optionals stdenv.hostPlatform.isAarch32 [
@@ -61,26 +69,32 @@ let
};
in
stdenv.mkDerivation rec {
- name = "omxplayer-20130328-fbee325dc2";
- src = fetchurl {
- url = "https://github.com/huceke/omxplayer/tarball/fbee325dc2";
- name = "${name}.tar.gz";
+ pname = "omxplayer";
+ version = "unstable-2013-03-28";
+
+ src = fetchFromGitHub {
+ owner = "huceke";
+ repo = "omxplayer";
+ rev = "fbee325dc20441138d04d8d2022ad85956302e97";
sha256 = "0fkvv8il7ffqxki2gp8cxa5shh6sz9jsy5vv3f4025g4gss6afkg";
};
- patchPhase = ''
+
+ postPatch = ''
sed -i 1d Makefile
export INCLUDES="-I${raspberrypifw}/include/interface/vcos/pthreads -I${raspberrypifw}/include/interface/vmcs_host/linux/"
'';
+
installPhase = ''
mkdir -p $out/bin
cp omxplayer.bin $out/bin
'';
+
buildInputs = [ raspberrypifw ffmpeg pcre boost freetype zlib ];
- meta = {
+ meta = with lib; {
homepage = "https://github.com/huceke/omxplayer";
description = "Commandline OMX player for the Raspberry Pi";
- license = lib.licenses.gpl2Plus;
- platforms = lib.platforms.arm;
+ license = licenses.gpl2Plus;
+ platforms = platforms.arm;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/video/openshot-qt/default.nix b/third_party/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
index ac396f4be8..bb6bfa637c 100644
--- a/third_party/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/third_party/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
index c3bcc09cd3..c5a33af443 100644
--- a/third_party/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix b/third_party/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
index 246c3d5cab..8a98010ef6 100644
--- a/third_party/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/smplayer/default.nix b/third_party/nixpkgs/pkgs/applications/video/smplayer/default.nix
index 007ef4262e..6d4e0f18d6 100644
--- a/third_party/nixpkgs/pkgs/applications/video/smplayer/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/streamlink/default.nix b/third_party/nixpkgs/pkgs/applications/video/streamlink/default.nix
index 4abc2b6546..7fa9072fbf 100644
--- a/third_party/nixpkgs/pkgs/applications/video/streamlink/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -1,17 +1,16 @@
{ lib
, python3Packages
-, rtmpdump
, ffmpeg
, fetchpatch
}:
python3Packages.buildPythonApplication rec {
pname = "streamlink";
- version = "2.4.0";
+ version = "3.0.3";
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "e95588e222d1a7bd51e3171cd4bce84fd6f646418537aff37993d40f597810af";
+ sha256 = "sha256-oEK9p6OuqGSm2JdgfnJ+N0sJtRq6wCoVCGcU0GNEMLI=";
};
checkInputs = with python3Packages; [
@@ -22,26 +21,20 @@ python3Packages.buildPythonApplication rec {
];
propagatedBuildInputs = (with python3Packages; [
- pycryptodome
- requests
- iso-639
- iso3166
- websocket-client
isodate
lxml
+ pycountry
+ pycryptodome
+ pysocks
+ requests
+ websocket-client
]) ++ [
- rtmpdump
ffmpeg
];
- patches = [
- # Patch failing tests to expect correct Accept-Encoding as generated by Requests
- (fetchpatch {
- url = "https://github.com/streamlink/streamlink/commit/ae747a113199c119bced4613d33edcc67a222bb9.patch";
- includes = [ "tests/test_stream_json.py" ];
- sha256 = "sha256-KEgyWdh5DNgNktmLSvKQowUQO9p9Q7zP4NbCQJPNgKw=";
- })
- ];
+ postPatch = ''
+ substituteInPlace setup.cfg --replace 'lxml >=4.6.4,<5.0' 'lxml'
+ '';
meta = with lib; {
homepage = "https://streamlink.github.io/";
diff --git a/third_party/nixpkgs/pkgs/applications/video/sub-batch/default.nix b/third_party/nixpkgs/pkgs/applications/video/sub-batch/default.nix
index 37daa870c6..fd5b2888d6 100644
--- a/third_party/nixpkgs/pkgs/applications/video/sub-batch/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/subdl/default.nix b/third_party/nixpkgs/pkgs/applications/video/subdl/default.nix
index e115fbcdd0..95f7be2cbc 100644
--- a/third_party/nixpkgs/pkgs/applications/video/subdl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/subdl/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, python3 }:
stdenv.mkDerivation {
- name = "subdl-0.0pre.2017.11.06";
+ pname = "subdl";
+ version = "unstable-2017-11.06";
src = fetchFromGitHub {
owner = "alexanderwink";
@@ -10,6 +11,12 @@ stdenv.mkDerivation {
sha256 = "0kmk5ck1j49q4ww0lvas2767kwnzhkq0vdwkmjypdx5zkxz73fn8";
};
+ buildInputs = [ python3 ];
+
+ installPhase = ''
+ install -vD subdl $out/bin/subdl
+ '';
+
meta = {
homepage = "https://github.com/alexanderwink/subdl";
description = "A command-line tool to download subtitles from opensubtitles.org";
@@ -17,10 +24,4 @@ stdenv.mkDerivation {
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.exfalso ];
};
-
- buildInputs = [ python3 ];
-
- installPhase = ''
- install -vD subdl $out/bin/subdl
- '';
}
diff --git a/third_party/nixpkgs/pkgs/applications/video/ustreamer/default.nix b/third_party/nixpkgs/pkgs/applications/video/ustreamer/default.nix
index 933747f398..6dc8aa56b5 100644
--- a/third_party/nixpkgs/pkgs/applications/video/ustreamer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/ustreamer/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "ustreamer";
- version = "3.27";
+ version = "4.9";
src = fetchFromGitHub {
owner = "pikvm";
repo = "ustreamer";
rev = "v${version}";
- sha256 = "1max2171abdpix0wq7mdkji5lvkfzisj166qfgmqkkwc2nh721iw";
+ sha256 = "sha256-dYwR+D2g4PxYyhsH9mGwgzTQ2Vw5UpMSomTl828gFvM=";
};
buildInputs = [ libbsd libevent libjpeg ];
diff --git a/third_party/nixpkgs/pkgs/applications/video/uvccapture/default.nix b/third_party/nixpkgs/pkgs/applications/video/uvccapture/default.nix
index 70c3baa0b8..be0a7fcd24 100644
--- a/third_party/nixpkgs/pkgs/applications/video/uvccapture/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/uvccapture/default.nix
@@ -8,11 +8,12 @@ let
in
-stdenv.mkDerivation {
- name = "uvccapture-0.5";
+stdenv.mkDerivation rec {
+ pname = "uvccapture";
+ version = "0.5";
src = fetchurl {
- url = "mirror://debian/pool/main/u/uvccapture/uvccapture_0.5.orig.tar.gz";
+ url = "mirror://debian/pool/main/u/uvccapture/uvccapture_${version}.orig.tar.gz";
sha256 = "1b3akkcmr3brbf93akr8xi20w8zqf2g0qfq928500wy04qi6jqpi";
};
diff --git a/third_party/nixpkgs/pkgs/applications/video/vcs/default.nix b/third_party/nixpkgs/pkgs/applications/video/vcs/default.nix
index 4998797fcf..37ea20718f 100644
--- a/third_party/nixpkgs/pkgs/applications/video/vcs/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/vcs/default.nix
@@ -1,11 +1,15 @@
{ lib, stdenv, fetchurl, makeWrapper
-, coreutils, ffmpeg, gawk, gnugrep, gnused, imagemagick, mplayer, util-linux
+, coreutils, ffmpeg, gawk, gnugrep, gnused, imagemagick, mplayer
+, util-linux, getopt
, dejavu_fonts
}:
with lib;
let
version = "1.13.4";
- runtimeDeps = [ coreutils ffmpeg gawk gnugrep gnused imagemagick mplayer util-linux ];
+ gopt = if stdenv.isLinux then util-linux else getopt;
+ runtimeDeps = [
+ coreutils ffmpeg gawk gnugrep gnused imagemagick mplayer gopt
+ ];
in
stdenv.mkDerivation {
pname = "vcs";
diff --git a/third_party/nixpkgs/pkgs/applications/video/vdr/default.nix b/third_party/nixpkgs/pkgs/applications/video/vdr/default.nix
index 265ef82528..c45c982d65 100644
--- a/third_party/nixpkgs/pkgs/applications/video/vdr/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/third_party/nixpkgs/pkgs/applications/video/vdr/plugins.nix
index 6f701779d4..f7eb5f201e 100644
--- a/third_party/nixpkgs/pkgs/applications/video/vdr/plugins.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/vdr/plugins.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, fetchgit, vdr, alsa-lib, fetchFromGitHub
-, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg_3
+, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg
, libiconv, boost, libgcrypt, perl, util-linux, groff, libva, xorg, ncurses
, callPackage
}: let
@@ -52,7 +52,7 @@ in {
version = "20190525";
buildInputs = [
- vdr libxcb xcbutilwm ffmpeg_3
+ vdr libxcb xcbutilwm ffmpeg
alsa-lib
libvdpau # vdpau
libva # va-api
@@ -62,6 +62,8 @@ in {
postPatch = ''
substituteInPlace vaapidev.c --replace /usr/bin/X ${xorgserver}/bin/X
+ # https://github.com/rofafor/vdr-plugin-vaapidevice/issues/5
+ substituteInPlace Makefile --replace libva libva-x11
'';
src = fetchFromGitHub {
@@ -130,12 +132,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/third_party/nixpkgs/pkgs/applications/video/xawtv/default.nix b/third_party/nixpkgs/pkgs/applications/video/xawtv/default.nix
index b046fbebaa..d52feb8a66 100644
--- a/third_party/nixpkgs/pkgs/applications/video/xawtv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/xawtv/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchurl
, ncurses
, libjpeg
@@ -19,10 +20,11 @@
}:
stdenv.mkDerivation rec {
- name = "xawtv-3.107";
+ pname = "xawtv";
+ version = "3.107";
src = fetchurl {
- url = "https://linuxtv.org/downloads/xawtv/${name}.tar.bz2";
+ url = "https://linuxtv.org/downloads/xawtv/xawtv-${version}.tar.bz2";
sha256 = "055p0wia0xsj073l8mg4ifa6m81dmv6p45qyh99brramq5iylfy5";
};
diff --git a/third_party/nixpkgs/pkgs/applications/video/xvidcap/default.nix b/third_party/nixpkgs/pkgs/applications/video/xvidcap/default.nix
index e0cca04098..06dc6bb465 100644
--- a/third_party/nixpkgs/pkgs/applications/video/xvidcap/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/xvidcap/default.nix
@@ -1,12 +1,26 @@
-{ lib, stdenv, fetchurl, perlPackages, pkg-config, gtk2
-, scrollkeeper, libglade, libXmu, libX11, libXext, gettext
-, lame, libXfixes, libXdamage }:
+{ lib
+, stdenv
+, fetchurl
+, perlPackages
+, pkg-config
+, gtk2
+, scrollkeeper
+, libglade
+, libXmu
+, libX11
+, libXext
+, gettext
+, lame
+, libXfixes
+, libXdamage
+}:
-stdenv.mkDerivation {
- name = "xvidcap-1.1.7";
+stdenv.mkDerivation rec {
+ pname = "xvidcap";
+ version = "1.1.7";
src = fetchurl {
- url = "mirror://sourceforge/xvidcap/xvidcap-1.1.7.tar.gz";
+ url = "mirror://sourceforge/xvidcap/xvidcap-${version}.tar.gz";
sha256 = "0p8rhpyhxgy37crf1xk1046z4p663jg7ww776jw92pld3s024ihm";
};
@@ -14,8 +28,16 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
- gtk2 scrollkeeper
- libglade libXmu gettext lame libXdamage libXfixes libXext libX11
+ gtk2
+ scrollkeeper
+ libglade
+ libXmu
+ gettext
+ lame
+ libXdamage
+ libXfixes
+ libXext
+ libX11
] ++ (with perlPackages; [ perl XMLParser ]);
# !!! don't know why this is necessary
@@ -24,7 +46,7 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Screencast video catpuring tool";
homepage = "http://xvidcap.sourceforge.net/";
- license = lib.licenses.gpl2;
+ license = licenses.gpl2;
platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
index 54378dbe13..7adcd328ad 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
@@ -31,7 +31,7 @@ edk2.mkDerivation projectDscPath {
hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
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/third_party/nixpkgs/pkgs/applications/virtualization/arion/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/arion/default.nix
index f144ec9767..33b2b000cb 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/arion/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/arion/default.nix
@@ -18,11 +18,11 @@ let
arion =
justStaticExecutables (
overrideCabal
- arion-compose
cabalOverrides
+ arion-compose
);
- inherit (haskell.lib) justStaticExecutables overrideCabal;
+ inherit (haskell.lib.compose) justStaticExecutables overrideCabal;
inherit (haskellPackages) arion-compose;
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix
index e311be68ab..e059a254cb 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/catatonit/default.nix
@@ -1,16 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, glibc, nixosTests }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }:
stdenv.mkDerivation rec {
pname = "catatonit";
- version = "0.1.6";
+ version = "0.1.7";
src = fetchFromGitHub {
owner = "openSUSE";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-hokG6o7toZxU984EvIlne33Aa2EZVZ3qu1jTZMm5nt4=";
+ sha256 = "sha256-jX4fYC/rpfd3ro2UZ6OEu4kU5wpusOwmEVPWEjxwlW4=";
};
+ patches = [
+ # Pull the fix pending upstream inclusion to support automake-1.16.5:
+ # https://github.com/openSUSE/catatonit/pull/18
+ (fetchpatch {
+ name = "automake-1.16.5.patch";
+ url = "https://github.com/openSUSE/catatonit/commit/99bb9048f532257f3a2c3856cfa19fe957ab6cec.patch";
+ sha256 = "sha256-ooxVjtWXJddQiBvO9I5aRyLeL8y3ecxW/Kvtfg/bpRA=";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook ];
buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 1afab16730..7b45656c5e 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "cloud-hypervisor";
- version = "19.0";
+ version = "20.0";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = pname;
rev = "v${version}";
- sha256 = "0h3varacv9696mih8zrz3fp6xa8hxxvwzkrslhpf9ilcjs1bjihd";
+ sha256 = "1j2p2phv1fxsa2mdr66gyswqgij33m3sdaa460xrf98dm581bqw2";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
- cargoSha256 = "015r9m9fr634ppn4qy0b8w1khjlxsv3wbpf3s7crmklzy57wakxl";
+ cargoSha256 = "12fmpq1y29mawa3xdwbwa3fw2hnhy5rqhlx54qp0s3x9g2jd7gsa";
meta = with lib; {
homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
index 844ab025f5..8f8da3d180 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -10,7 +10,7 @@
buildGoModule rec {
pname = "containerd";
- version = "1.5.7";
+ version = "1.5.8";
outputs = [ "out" "man" ];
@@ -18,7 +18,7 @@ buildGoModule rec {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
- sha256 = "sha256-BHVlGXyTkaiRkG8WG1LdtxrQs8nKS8djZFnO/AfKBUw=";
+ sha256 = "sha256-XIAByE2/eVG8DAZXstKs51LQYdVPcPQuIlST3xCclrU=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
index bc7e25d93d..75a3dbf374 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
@@ -15,13 +15,13 @@
buildGoModule rec {
pname = "cri-o";
- version = "1.22.0";
+ version = "1.22.1";
src = fetchFromGitHub {
owner = "cri-o";
repo = "cri-o";
rev = "v${version}";
- sha256 = "sha256-lY/kHvJBN7idFn3YUEHMR4w+M3F89RKMsvvyHmH/EPc=";
+ sha256 = "sha256-x1bnDksmEjKuzjwPBENP9xpQbzo8HAW+0i2l2Ra/48Y=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix
index c91bf3d142..2f09c3a29c 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix
@@ -37,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;
};
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
index 277c06438f..ebfaac0bde 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
buildGoPackage rec {
pname = "docker-slim";
- version = "1.37.0";
+ version = "1.37.2";
goPackagePath = "github.com/docker-slim/docker-slim";
@@ -14,7 +14,7 @@ buildGoPackage rec {
owner = "docker-slim";
repo = "docker-slim";
rev = version;
- sha256 = "1gxbgn61qv4zhzxwdd917hywwicr3jand34ghjzha35r44lmyzgz";
+ sha256 = "1svhi9xf71zrk843bnwkpmq4iaaln07dpfrdvq0vdqhj5xvbx47g";
};
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
index cf6395c8a5..75cf99caf8 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
@@ -1,29 +1,30 @@
-{ lib, stdenv, fetchgit }:
+{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
- name = "win-pvdrivers-git-20150701";
- version = "20150701";
+stdenv.mkDerivation {
+ pname = "win-pvdrivers";
+ version = "unstable-2015-07-01";
- src = fetchgit {
- url = "https://github.com/ts468/win-pvdrivers";
+ src = fetchFromGitHub {
+ owner = "ts468";
+ repo = "win-pvdrivers";
rev = "3054d645fc3ee182bea3e97ff01869f01cc3637a";
sha256 = "6232ca2b7c9af874abbcb9262faf2c74c819727ed2eb64599c790879df535106";
};
buildPhase =
let unpack = x: "tar xf $src/${x}.tar; mkdir -p x86/${x} amd64/${x}; cp ${x}/x86/* x86/${x}/.; cp ${x}/x64/* amd64/${x}/.";
- in lib.concatStringsSep "\n" (map unpack ["xenbus" "xeniface" "xenvif" "xennet" "xenvbd"]);
+ in lib.concatStringsSep "\n" (map unpack [ "xenbus" "xeniface" "xenvif" "xennet" "xenvbd" ]);
installPhase = ''
mkdir -p $out
cp -r x86 $out/.
cp -r amd64 $out/.
- '';
+ '';
meta = with lib; {
description = "Xen Subproject: Windows PV Driver";
homepage = "http://xenproject.org/downloads/windows-pv-drivers.html";
- maintainers = [ maintainers.tstrobel ];
+ maintainers = with maintainers; [ tstrobel ];
platforms = platforms.linux;
license = licenses.bsd3;
};
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix
index 7c1eb0055a..a4cd8dacc4 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix
@@ -1,19 +1,19 @@
{ lib, stdenv, fetchurl, p7zip }:
-stdenv.mkDerivation {
- name = "win-qemu-0.1.105-1";
+stdenv.mkDerivation rec {
+ pname = "win-qemu";
version = "0.1.105-1";
dontUnpack = true;
src = fetchurl {
- url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.105-1/virtio-win.iso";
+ url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-${version}/virtio-win.iso";
sha256 = "065gz7s77y0q9kfqbr27451sr28rm9azpi88sqjkfph8c6r8q3wc";
};
buildPhase = ''
${p7zip}/bin/7z x $src
- '';
+ '';
installPhase =
let
@@ -23,10 +23,10 @@ stdenv.mkDerivation {
mkdir -p $out/${arch}/qemuagent
cp guest-agent/${if arch=="x86" then "qemu-ga-x86.msi" else "qemu-ga-x64.msi"} $out/${arch}/qemuagent/qemu-guest-agent.msi
(cd $out/${arch}/qemuagent; ${p7zip}/bin/7z x qemu-guest-agent.msi; rm qemu-guest-agent.msi)
- '';
+ '';
copy = arch: version: (copy_pvpanic arch version) + (copy_pciserial arch) + (copy_agent arch);
in
- (copy "amd64" "w8.1") + (copy "x86" "w8.1");
+ (copy "amd64" "w8.1") + (copy "x86" "w8.1");
meta = with lib; {
description = "Windows QEMU Drivers";
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
index e9ad3b8633..ef8ec062e4 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
@@ -12,8 +12,8 @@ let
};
in
-stdenv.mkDerivation {
- name = "gplpv-0.11.0.373";
+stdenv.mkDerivation {
+ pname = "gplpv";
version = "0.11.0.373";
dontUnpack = true;
@@ -23,13 +23,13 @@ stdenv.mkDerivation {
(cd x86; ${p7zip}/bin/7z e ${src_x86})
mkdir -p amd64
(cd amd64; ${p7zip}/bin/7z e ${src_amd64})
- '';
+ '';
installPhase = ''
mkdir -p $out/x86 $out/amd64
cp x86/* $out/x86/.
cp amd64/* $out/amd64/.
- '';
+ '';
meta = with lib; {
description = ''
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
Windows to be para-virtualized.
The drivers are signed by Univention with a Software Publishers
Certificate obtained from the VeriSign CA.
- '';
+ '';
homepage = "http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers";
maintainers = [ maintainers.tstrobel ];
platforms = platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/ignite/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/ignite/default.nix
index 5439ad57b1..9ab1d36fef 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/ignite/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/virtualization/lima/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/lima/default.nix
index 9b6c412fa2..f22109b791 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/lima/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/lima/default.nix
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "lima";
- version = "0.7.2";
+ version = "0.7.4";
src = fetchFromGitHub {
owner = "lima-vm";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-XJZg3uX++gU65bO1uqJblXXcVPzFXROCWFTn/gfkea0=";
+ sha256 = "sha256-pn8GtFAZMQyFjOpn6blNBoDgQL7X1gaYjGsQHwvMzaQ=";
};
- vendorSha256 = "sha256-+fx/Iy78gmhxRjXPkHYdixpaMkOwEANUsZA+KSdQkWU=";
+ vendorSha256 = "sha256-egZFJSGnFYfOcBMNNEsPV6ngf3ddoYCSntnuloYfpxo=";
nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
index 2a6d2a20c4..c18790c1b8 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
@@ -1,19 +1,15 @@
{ lib, buildPythonApplication, fetchFromGitHub, pyyaml }:
buildPythonApplication rec {
- version = "0.2.0pre-2021-05-18";
+ version = "0.1.8";
pname = "podman-compose";
# "This project is still under development." -- README.md
- #
- # As of May 2021, the latest release (0.1.5) has fewer than half of all
- # commits. This project seems to have no release management, so the last
- # commit is the best one until proven otherwise.
src = fetchFromGitHub {
repo = "podman-compose";
owner = "containers";
- rev = "62d2024feecf312e9591cc145f49cee9c70ab4fe";
- sha256 = "17992imkvi6129wvajsp0iz5iicfmh53i20qy2mzz17kcz30r2pp";
+ rev = version;
+ sha256 = "sha256-BN6rG46ejYY6UCNjKYQpxPQGTW3x12zpGDnH2SKn304=";
};
propagatedBuildInputs = [ pyyaml ];
@@ -21,7 +17,7 @@ buildPythonApplication rec {
meta = {
description = "An implementation of docker-compose with podman backend";
homepage = "https://github.com/containers/podman-compose";
- license = lib.licenses.gpl2;
+ license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.sikmir ] ++ lib.teams.podman.members;
};
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/podman/default.nix
index 705e5b5d61..0f12d11cc3 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/podman/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/podman/default.nix
@@ -17,13 +17,13 @@
buildGoModule rec {
pname = "podman";
- version = "3.4.1";
+ version = "3.4.2";
src = fetchFromGitHub {
owner = "containers";
repo = "podman";
rev = "v${version}";
- sha256 = "sha256-+6ALwm1Hc76rYwlQN0r8zX2n+nxBk5iW4AHWBlzAIOc=";
+ sha256 = "sha256-VkKFlOm5r+a9+4em1oisjXNwK9mCCCPViql6g0O7PWw=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/qboot/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
index 8ac00d1f8e..c7a3620d64 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
@@ -1,7 +1,8 @@
{ lib, stdenv, meson, ninja, fetchFromGitHub, nixosTests }:
stdenv.mkDerivation {
- name = "qboot-20200423";
+ pname = "qboot";
+ version = "unstable-2020-04-23";
src = fetchFromGitHub {
owner = "bonzini";
@@ -26,6 +27,6 @@ stdenv.mkDerivation {
homepage = "https://github.com/bonzini/qboot";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ tstrobel ];
- platforms = ["x86_64-linux" "i686-linux"];
+ platforms = [ "x86_64-linux" "i686-linux" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
index 224969cc26..5c22b16492 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, fetchpatch, python, zlib, pkg-config, glib
, perl, pixman, vde2, alsa-lib, texinfo, flex
, bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool
-, makeWrapper, autoPatchelfHook
+, makeWrapper, autoPatchelfHook, runtimeShell
, attr, libcap, libcap_ng
, CoreServices, Cocoa, Hypervisor, rez, setfile
, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
@@ -18,11 +18,12 @@
, xenSupport ? false, xen
, cephSupport ? false, ceph
, glusterfsSupport ? false, glusterfs, libuuid
-, openGLSupport ? sdlSupport, mesa, epoxy, libdrm
+, openGLSupport ? sdlSupport, mesa, libepoxy, libdrm
, virglSupport ? openGLSupport, virglrenderer
, libiscsiSupport ? true, libiscsi
, smbdSupport ? false, samba
, tpmSupport ? true
+, uringSupport ? stdenv.isLinux, liburing
, hostCpuOnly ? false
, hostCpuTargets ? (if hostCpuOnly
then (lib.optional stdenv.isx86_64 "i386-softmmu"
@@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
++ lib.optionals stdenv.isDarwin [ CoreServices Cocoa Hypervisor rez setfile ]
++ lib.optionals seccompSupport [ libseccomp ]
++ lib.optionals numaSupport [ numactl ]
+ ++ lib.optionals alsaSupport [ alsa-lib ]
++ lib.optionals pulseSupport [ libpulseaudio ]
++ lib.optionals sdlSupport [ SDL2 SDL2_image ]
++ lib.optionals gtkSupport [ gtk3 gettext vte ]
@@ -70,14 +72,15 @@ stdenv.mkDerivation rec {
++ lib.optionals smartcardSupport [ libcacard ]
++ lib.optionals spiceSupport [ spice-protocol spice ]
++ lib.optionals usbredirSupport [ usbredir ]
- ++ lib.optionals stdenv.isLinux [ alsa-lib libaio libcap_ng libcap attr ]
+ ++ lib.optionals stdenv.isLinux [ libaio libcap_ng libcap attr ]
++ lib.optionals xenSupport [ xen ]
++ lib.optionals cephSupport [ ceph ]
++ lib.optionals glusterfsSupport [ glusterfs libuuid ]
- ++ lib.optionals openGLSupport [ mesa epoxy libdrm ]
+ ++ lib.optionals openGLSupport [ mesa libepoxy libdrm ]
++ lib.optionals virglSupport [ virglrenderer ]
++ lib.optionals libiscsiSupport [ libiscsi ]
- ++ lib.optionals smbdSupport [ samba ];
+ ++ lib.optionals smbdSupport [ samba ]
+ ++ lib.optionals uringSupport [ liburing ];
dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
@@ -92,12 +95,32 @@ 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=";
+ })
+ # Fixes managedsave (snapshot creation) with QXL video device. Remove with next release.
+ (fetchpatch {
+ name = "qxl-fix-pre-save-logic.patch";
+ url = "https://gitlab.com/qemu-project/qemu/-/commit/eb94846280df3f1e2a91b6179fc05f9890b7e384.patch";
+ sha256 = "sha256-p31fd47RTSw928DOMrubQQybnzDAGm23z4Yhe+hGJQ8=";
+ })
] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch
++ lib.optionals stdenv.hostPlatform.isMusl [
- (fetchpatch {
- url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/musl-F_SHLCK-and-F_EXLCK.patch";
- sha256 = "1gm67v41gw6apzgz7jr3zv9z80wvkv0jaxd2w4d16hmipa8bhs0k";
- })
./sigrtminmax.patch
(fetchpatch {
url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/fix-sigevent-and-sigval_t.patch";
@@ -156,6 +179,9 @@ stdenv.mkDerivation rec {
"--enable-guest-agent"
"--localstatedir=/var"
"--sysconfdir=/etc"
+ # Always use our Meson, not the bundled version, which doesn't
+ # have our patches and will be subtly broken because of that.
+ "--meson=meson"
] ++ lib.optional numaSupport "--enable-numa"
++ lib.optional seccompSupport "--enable-seccomp"
++ lib.optional smartcardSupport "--enable-smartcard"
@@ -173,7 +199,8 @@ stdenv.mkDerivation rec {
++ lib.optional virglSupport "--enable-virglrenderer"
++ lib.optional tpmSupport "--enable-tpm"
++ lib.optional libiscsiSupport "--enable-libiscsi"
- ++ lib.optional smbdSupport "--smbd=${samba}/bin/smbd";
+ ++ lib.optional smbdSupport "--smbd=${samba}/bin/smbd"
+ ++ lib.optional uringSupport "--enable-linux-io-uring";
doCheck = false; # tries to access /dev
dontWrapGApps = true;
@@ -201,10 +228,12 @@ stdenv.mkDerivation rec {
# Add a ‘qemu-kvm’ wrapper for compatibility/convenience.
postInstall = ''
+ install -m755 -D $emitKvmWarningsPath $out/libexec/emit-kvm-warnings
if [ -x $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} ]; then
makeWrapper $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} \
$out/bin/qemu-kvm \
- --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"
+ --run $out/libexec/emit-kvm-warnings \
+ --add-flags "\$([ -r /dev/kvm -a -w /dev/kvm ] && echo -enable-kvm)"
fi
'';
@@ -215,6 +244,26 @@ stdenv.mkDerivation rec {
# Builds in ~3h with 2 cores, and ~20m with a big-parallel builder.
requiredSystemFeatures = [ "big-parallel" ];
+ emitKvmWarnings = ''
+ #!${runtimeShell}
+ WARNCOL='\033[1;35m'
+ NEUTRALCOL='\033[0m'
+ WARNING="''${WARNCOL}warning:''${NEUTRALCOL}"
+ if [ ! -e /dev/kvm ]; then
+ echo -e "''${WARNING} KVM is not available - execution will be slow" >&2
+ echo "Consider installing KVM for hardware-accelerated execution." >&2
+ echo "If KVM is already installed make sure the kernel module is loaded." >&2
+ elif [ ! -r /dev/kvm -o ! -w /dev/kvm ]; then
+ echo -e "''${WARNING} /dev/kvm is not read-/writable - execution will be slow" >&2
+ echo "/dev/kvm needs to be read-/writable by the user executing QEMU." >&2
+ echo "" >&2
+ echo "For hardware-acceleration inside the nix build sandbox /dev/kvm" >&2
+ echo "must be world-read-/writable (rw-rw-rw-)." >&2
+ fi
+ '';
+
+ passAsFile = [ "emitKvmWarnings" ];
+
meta = with lib; {
homepage = "http://www.qemu.org/";
description = "A generic and open source machine emulator and virtualizer";
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/runc/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/runc/default.nix
index 6b0764e04b..79a21075f0 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/runc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/runc/default.nix
@@ -16,13 +16,13 @@
buildGoModule rec {
pname = "runc";
- version = "1.0.2";
+ version = "1.0.3";
src = fetchFromGitHub {
owner = "opencontainers";
repo = "runc";
rev = "v${version}";
- sha256 = "sha256-l+Uq7aiXFrI+qbKSOZpYFIXz0VJBBR7ZZxlAJeGb7K4=";
+ sha256 = "sha256-Tl/JKbIpao+FCjngPzaVkxse50zo3XQ9Mg/AdkblMcI=";
};
vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
index 37fad321ca..4d6fb0ef4a 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
@@ -15,11 +15,11 @@ with lib;
buildGoPackage rec {
pname = "singularity";
- version = "3.8.3";
+ version = "3.8.5";
src = fetchurl {
url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
- sha256 = "sha256-LiLrnuG3P91RuHgxSfDk2DwNLYoMHt9gNBV9UO7vuDU=";
+ sha256 = "sha256-f/94tcB7XU0IJpvSZ6xemUOQ+TMyHlTv1rfIZoMVPOQ=";
};
goPackagePath = "github.com/sylabs/singularity";
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/spike/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/spike/default.nix
index 054918dabf..6161c00635 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/spike/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
index 0d6d707a60..128753f264 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -2,35 +2,35 @@
, libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
, libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
, qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
-, alsa-lib, curl, libvpx, nettools, dbus, substituteAll
+, alsa-lib, curl, libvpx, nettools, dbus, substituteAll, gsoap, zlib
# If open-watcom-bin is not passed, VirtualBox will fall back to use
# the shipped alternative sources (assembly).
-, open-watcom-bin ? null
+, open-watcom-bin
, makeself, perl
-, javaBindings ? true, jdk ? null # Almost doesn't affect closure size
-, pythonBindings ? false, python3 ? null
-, extensionPack ? null, fakeroot ? null
-, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
+, javaBindings ? true, jdk # Almost doesn't affect closure size
+, pythonBindings ? false, python3
+, extensionPack ? null, fakeroot
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
, enableHardening ? false
, headless ? false
, enable32bitGuests ? true
+, enableWebService ? false
}:
with lib;
let
- python = python3;
buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
- version = "6.1.26";
+ version = "6.1.28";
in stdenv.mkDerivation {
pname = "virtualbox";
inherit version;
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
- sha256 = "0212602eea878d6c9fd7f4a3e0182da3e4505f31d25f5539fb8f7b1fbe366195";
+ sha256 = "8d34993d8e9c0cf35e7bd44dd26c8c757f17a3b7d5a64052f945d00fd798ebfe";
};
outputs = [ "out" "modsrc" ];
@@ -41,22 +41,23 @@ in stdenv.mkDerivation {
# Wrap manually because we wrap just a small number of executables.
dontWrapQtApps = true;
- buildInputs =
- [ acpica-tools dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
- libcap glib lvm2 alsa-lib curl libvpx pam makeself perl
- libXmu libpng libopus python ]
+ buildInputs = [
+ acpica-tools dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
+ libcap glib lvm2 alsa-lib curl libvpx pam makeself perl
+ libXmu libpng libopus python3 ]
++ optional javaBindings jdk
- ++ optional pythonBindings python # Python is needed even when not building bindings
+ ++ optional pythonBindings python3 # Python is needed even when not building bindings
++ optional pulseSupport libpulseaudio
- ++ optionals (headless) [ libXrandr libGL ]
- ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ];
+ ++ optionals headless [ libXrandr libGL ]
+ ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ]
+ ++ optionals enableWebService [ gsoap zlib ];
hardeningDisable = [ "format" "fortify" "pic" "stackprotector" ];
prePatch = ''
set -x
sed -e 's@MKISOFS --version@MKISOFS -version@' \
- -e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
+ -e 's@PYTHONDIR=.*@PYTHONDIR=${lib.optionalString pythonBindings python3}@' \
-e 's@CXX_FLAGS="\(.*\)"@CXX_FLAGS="-std=c++11 \1"@' \
${optionalString (!headless) ''
-e 's@TOOLQT5BIN=.*@TOOLQT5BIN="${getDev qtbase}/bin"@' \
@@ -94,9 +95,6 @@ in stdenv.mkDerivation {
})
++ [
./qtx11extras.patch
- # Temporary workaround for broken build
- # https://www.virtualbox.org/pipermail/vbox-dev/2021-July/015670.html
- ./fix-configure-pkgconfig-qt.patch
# https://github.com/NixOS/nixpkgs/issues/123851
./fix-audio-driver-loading.patch
];
@@ -136,6 +134,10 @@ in stdenv.mkDerivation {
PATH_QT5_X11_EXTRAS_INC := ${getDev qtx11extras}/include
TOOL_QT5_LRC := ${getDev qttools}/bin/lrelease
''}
+ ${optionalString enableWebService ''
+ # fix gsoap missing zlib include and produce errors with --as-needed
+ VBOX_GSOAP_CXX_LIBS := gsoapssl++ z
+ ''}
LOCAL_CONFIG
./configure \
@@ -145,6 +147,7 @@ in stdenv.mkDerivation {
${optionalString (!pulseSupport) "--disable-pulse"} \
${optionalString (!enableHardening) "--disable-hardening"} \
${optionalString (!enable32bitGuests) "--disable-vmmraw"} \
+ ${optionalString enableWebService "--enable-webservice"} \
${optionalString (open-watcom-bin != null) "--with-ow-dir=${open-watcom-bin}"} \
--disable-kmods
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
@@ -171,7 +174,7 @@ in stdenv.mkDerivation {
-name src -o -exec cp -avt "$libexec" {} +
mkdir -p $out/bin
- for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
+ for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} ${optionalString enableWebService "vboxwebsrv"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
echo "Linking $file to /bin"
test -x "$libexec/$file"
ln -s "$libexec/$file" $out/bin/$file
@@ -179,14 +182,14 @@ in stdenv.mkDerivation {
${optionalString (extensionPack != null) ''
mkdir -p "$share"
- "${fakeroot}/bin/fakeroot" "${stdenv.shell}" <Stat.st_gid != 2 /*bin*/ || suplibHardenedStrCmp(pszPath, "/usr/lib/iconv");
# else
NOREF(fRelaxed);
@@ -75,20 +75,46 @@ index ce0f288..6193108 100644
return supR3HardenedSetError3(VERR_SUPLIB_WRITE_NON_SYS_GROUP, pErrInfo,
"An unknown (and thus untrusted) group has write access to '", pszPath,
"' and we therefore cannot trust the directory content or that of any subdirectory");
+diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+index 2991d3a7..d042a08b 100644
+--- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
++++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
+
+ /* Get the path to the executable directory w/ trailing slash: */
+ char szPath[RTPATH_MAX];
+- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
++ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
+ AssertRCReturn(vrc, vrc);
+ size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
+ AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
+diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+index 2e57690a..3272c840 100644
+--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
++++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
+ * ASSUME it is relative to the directory that holds VBoxSVC.
+ */
+ char szExePath[RTPATH_MAX];
+- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
++ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
+ RTPathStripFilename(szExePath);
+ int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
+ AssertLogRelRCReturn(vrc, vrc);
diff --git a/src/VBox/Main/src-server/generic/NetIf-generic.cpp b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
-index 98dc91a..43a819f 100644
+index af155966..3b8e793d 100644
--- a/src/VBox/Main/src-server/generic/NetIf-generic.cpp
+++ b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
-@@ -47,7 +47,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
+@@ -48,7 +48,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
const char *args[] = { NULL, pcszIfName, pszAddr, pszOption, pszMask, NULL };
-
+
char szAdpCtl[RTPATH_MAX];
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
if (RT_FAILURE(rc))
{
LogRel(("NetIfAdpCtl: failed to get program path, rc=%Rrc.\n", rc));
-@@ -89,7 +89,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
+@@ -95,7 +95,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
int NetIfAdpCtlOut(const char * pcszName, const char * pcszCmd, char *pszBuffer, size_t cBufSize)
{
char szAdpCtl[RTPATH_MAX];
@@ -97,23 +123,23 @@ index 98dc91a..43a819f 100644
if (RT_FAILURE(rc))
{
LogRel(("NetIfAdpCtlOut: Failed to get program path, rc=%Rrc\n", rc));
-@@ -201,7 +201,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
+@@ -210,7 +210,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
progress.queryInterfaceTo(aProgress);
-
+
char szAdpCtl[RTPATH_MAX];
-- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
-+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
- if (RT_FAILURE(rc))
+- vrc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
++ vrc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
+ if (RT_FAILURE(vrc))
{
progress->i_notifyComplete(E_FAIL,
diff --git a/src/VBox/Runtime/r3/path.cpp b/src/VBox/Runtime/r3/path.cpp
-index 944848e..744a261 100644
+index 4b1a0ada..7f6dd707 100644
--- a/src/VBox/Runtime/r3/path.cpp
+++ b/src/VBox/Runtime/r3/path.cpp
@@ -81,6 +81,12 @@ RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath)
}
-
-
+
+
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath)
+{
+ return RTStrCopy(pszPath, cchPath, "/run/wrappers/bin");
@@ -124,13 +150,13 @@ index 944848e..744a261 100644
{
#if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE)
diff --git a/src/VBox/Runtime/r3/process.cpp b/src/VBox/Runtime/r3/process.cpp
-index 2aab645..9795f21 100644
+index 5f7c7a87..59461cfa 100644
--- a/src/VBox/Runtime/r3/process.cpp
+++ b/src/VBox/Runtime/r3/process.cpp
-@@ -111,6 +111,26 @@ RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath)
- return NULL;
+@@ -117,6 +117,25 @@ RTR3DECL(const char *) RTProcExecutablePath(void)
+ return g_szrtProcExePath;
}
-
+
+/*
+ * Note the / at the end! This is important, because the functions using this
+ * will cut off everything after the rightmost / as this function is analogous
@@ -150,33 +176,6 @@ index 2aab645..9795f21 100644
+ AssertMsgFailed(("Buffer too small (%zu <= %zu)\n", cbExecPath, sizeof(SUIDDIR)));
+ return NULL;
+}
-+
-
+
RTR3DECL(const char *) RTProcShortName(void)
{
-diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
-index 2e57690..3272c84 100644
---- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
-+++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
-@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
- * ASSUME it is relative to the directory that holds VBoxSVC.
- */
- char szExePath[RTPATH_MAX];
-- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
-+ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
- RTPathStripFilename(szExePath);
- int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
- AssertLogRelRCReturn(vrc, vrc);
-diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
-index 2991d3a7..d042a08b 100644
---- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
-+++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
-@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
-
- /* Get the path to the executable directory w/ trailing slash: */
- char szPath[RTPATH_MAX];
-- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
-+ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
- AssertRCReturn(vrc, vrc);
- size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
- AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
index c7ae948284..7e79d963fc 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,12 +1,12 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute2 }:
stdenv.mkDerivation rec {
pname = "x11docker";
- version = "6.9.0";
+ version = "6.10.0";
src = fetchFromGitHub {
owner = "mviereck";
repo = "x11docker";
rev = "v${version}";
- sha256 = "sha256-O+lab3K7J2Zz9t+yB/kYWtBOvQGOQMDFNDUVXzTj/h4=";
+ sha256 = "sha256-cPCtxfLzg1RDh3vKFfxAkcCMytu0mDsGp9CLJQmXATA=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
index ec7d3ae500..a26f824cd1 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
@@ -22,6 +22,14 @@ stdenv.mkDerivation rec {
url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
sha256 = "1vipy2lzzd2gqrsqk85pwgcdhargy815fxlbn57hsm45zglc3lj4";
})
+
+ # Fix pending upstream inclusion for binutils-2.36 support:
+ # https://github.com/afterstep/afterstep/pull/7
+ (fetchpatch {
+ name = "binutils-2.36.patch";
+ url = "https://github.com/afterstep/afterstep/commit/5e9e897cf8c455390dd6f5b27fec49707f6b9088.patch";
+ sha256 = "1kk97max05r2p1a71pvpaza79ff0klz32rggik342p7ki3516qv8";
+ })
];
postPatch = ''
@@ -40,6 +48,12 @@ stdenv.mkDerivation rec {
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
'';
+ # Parallel build fails due to missing dependencies between private libaries:
+ # ld: cannot find ../libAfterConf/libAfterConf.a: No such file or directory
+ # Let's disable parallel builds until it's fixed upstream:
+ # https://github.com/afterstep/afterstep/issues/8
+ enableParallelBuilding = false;
+
meta = with lib; {
description = "A NEXTStep-inspired window manager";
longDescription = ''
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
index 124c1abe6f..93f5b788c7 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
@@ -24,13 +24,13 @@
stdenv.mkDerivation rec {
pname = "cagebreak";
- version = "1.8.0";
+ version = "1.8.1";
src = fetchFromGitHub {
owner = "project-repo";
repo = pname;
rev = version;
- hash = "sha256-tWfHJajAOYZJ73GckZWWTdVz75YmHA7t/qDhM7+tJgk=";
+ hash = "sha256-YaLGRlvppTUCSHFlt3sEfHgN3pYHuc5oGt3dt0DDw3I=";
};
nativeBuildInputs = [
@@ -63,14 +63,12 @@ stdenv.mkDerivation rec {
"-Dxwayland=${lib.boolToString withXwayland}"
];
- # TODO: investigate why is this happening
postPatch = ''
+ # TODO: investigate why is this happening
sed -i -e 's|||' *.c
- '';
- postInstall = ''
- install -d $out/share/cagebreak/
- install -m644 $src/examples/config $out/share/cagebreak/
+ # Patch cagebreak to read its default configuration from $out/share/cagebreak
+ sed -i "s|/etc/xdg/cagebreak|$out/share/cagebreak|" meson.build cagebreak.c
'';
postFixup = lib.optionalString withXwayland ''
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
index 84380bfc9d..df7521cd2c 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
@@ -1,13 +1,14 @@
{ lib, stdenv, fetchurl, pkg-config, libX11, libXft, libXinerama, libXpm }:
-stdenv.mkDerivation {
- name = "dzen2-0.9.5";
+stdenv.mkDerivation rec {
+ pname = "dzen2";
+ version = "0.9.5";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libX11 libXft libXinerama libXpm ];
src = fetchurl {
- url = "https://github.com/robm/dzen/tarball/master/dzen2-0.9.5git.tar.gz";
+ url = "https://github.com/robm/dzen/tarball/master/dzen2-${version}git.tar.gz";
sha256 = "d4f7943cd39dc23fd825eb684b49dc3484860fa8443d30b06ee38af72a53b556";
};
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/e16/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/e16/default.nix
index 7028dcfc09..37a4f7c943 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/e16/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/e16/default.nix
@@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "e16";
- version = "1.0.23";
+ version = "1.0.24";
src = fetchurl {
url = "mirror://sourceforge/enlightenment/e16-${version}.tar.xz";
- sha256 = "028rn1plggacsvdd035qnnph4xw8nya34mmjvvl7d4gqj9pj293f";
+ sha256 = "1anmwfjyynwl0ylkyksa7bnsqzf58l1yccjzp3kbwq6nw1gs7dbv";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
index 94562cd0d2..0855e512fd 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
@@ -1,19 +1,36 @@
-{ lib, stdenv, fetchurl, libX11, libXext, libXrandr, libXrender,
- xorgproto, patches ? [] }:
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXext
+, libXrandr
+, libXrender
+, xorgproto
+, patches ? [ ]
+}:
stdenv.mkDerivation rec {
- name = "evilwm-1.1.1";
+ pname = "evilwm";
+ version = "1.1.1";
src = fetchurl {
- url = "http://www.6809.org.uk/evilwm/${name}.tar.gz";
+ url = "http://www.6809.org.uk/evilwm/evilwm-${version}.tar.gz";
sha256 = "79589c296a5915ee0bae1d231e8912601fc794d9f0a9cacb6b648ff9a5f2602a";
};
- buildInputs = [ libX11 libXext libXrandr libXrender
- xorgproto ];
+ buildInputs = [
+ libX11
+ libXext
+ libXrandr
+ libXrender
+ xorgproto
+ ];
- prePatch = ''substituteInPlace ./Makefile --replace /usr $out \
- --replace "CC = gcc" "#CC = gcc"'';
+ postPatch = ''
+ substituteInPlace ./Makefile \
+ --replace /usr $out \
+ --replace "CC = gcc" "#CC = gcc"
+ '';
# Allow users set their own list of patches
inherit patches;
@@ -21,14 +38,12 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "http://www.6809.org.uk/evilwm/";
description = "Minimalist window manager for the X Window System";
-
license = {
shortName = "evilwm";
fullName = "Custom, inherited from aewm and 9wm";
url = "http://www.6809.org.uk/evilwm/";
free = true;
- }; # like BSD/MIT, but Share-Alike'y; See README.
-
+ }; # like BSD/MIT, but Share-Alike'y; See README.
maintainers = with maintainers; [ amiloradovsky ];
platforms = platforms.all;
};
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/eww/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/eww/default.nix
index 08160690dc..e593a95a15 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/eww/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/eww/default.nix
@@ -5,6 +5,7 @@
, gtk3
, withWayland ? false
, gtk-layer-shell
+, stdenv
}:
rustPlatform.buildRustPackage rec {
@@ -24,10 +25,10 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ gtk3 ] ++ lib.optional withWayland gtk-layer-shell;
- cargoBuildFlags = [ "--bin" "eww" ] ++ lib.optionals withWayland [
- "--no-default-features"
- "--features=wayland"
- ];
+ buildNoDefaultFeatures = withWayland;
+ buildFeatures = lib.optional withWayland "wayland";
+
+ cargoBuildFlags = [ "--bin" "eww" ];
cargoTestFlags = cargoBuildFlags;
@@ -38,6 +39,7 @@ rustPlatform.buildRustPackage rec {
description = "ElKowars wacky widgets";
homepage = "https://github.com/elkowar/eww";
license = licenses.mit;
- maintainers = with maintainers; [ figsoda legendofmiracles ];
+ maintainers = with maintainers; [ figsoda lom ];
+ broken = stdenv.isDarwin;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/default.nix
index 7aa62e69df..5c2db7d47a 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/i3/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -7,15 +7,15 @@
stdenv.mkDerivation rec {
pname = "i3";
- version = "4.19.2";
+ version = "4.20.1";
src = fetchurl {
url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
- sha256 = "sha256-im7hd2idzyKWTSC2CTAU7k+gQZNF0/1RXVUS2ZgLsnk=";
+ sha256 = "1rpwdgykcvmrmdz244f0wm7446ih1dcw8rlc1hm1c7cc42pyrq93";
};
nativeBuildInputs = [
- pkg-config makeWrapper meson ninja installShellFiles
+ pkg-config makeWrapper meson ninja installShellFiles perl
asciidoc xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs
];
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
index 8ab8c5630d..6884e5ea7a 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
index 7e42a8efd7..9a1b959690 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
@@ -1,36 +1,49 @@
-{ lib, stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk
-, i3lock-color, getopt, fontconfig
+{ lib
+, stdenv
+, fetchFromGitHub
+, coreutils
+, scrot
+, imagemagick
+, gawk
+, i3lock-color
+, getopt
+, fontconfig
}:
stdenv.mkDerivation rec {
- rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
- name = "i3lock-fancy-unstable-2018-11-25_rev${builtins.substring 0 7 rev}";
+ pname = "i3lock-fancy";
+ version = "unstable-2018-11-25";
+
src = fetchFromGitHub {
owner = "meskarune";
repo = "i3lock-fancy";
- inherit rev;
+ rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
sha256 = "00lqsvz1knb8iqy8lnkn3sf4c2c4nzb0smky63qf48m8za5aw9b1";
};
- patchPhase = ''
- sed -i -e "s|mktemp|${coreutils}/bin/mktemp|" i3lock-fancy
- sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" i3lock-fancy
- sed -i -e "s|scrot -z |${scrot}/bin/scrot -z |" i3lock-fancy
- sed -i -e "s|convert |${imagemagick.out}/bin/convert |" i3lock-fancy
- sed -i -e "s|awk -F|${gawk}/bin/awk -F|" i3lock-fancy
- sed -i -e "s| awk | ${gawk}/bin/awk |" i3lock-fancy
- sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" i3lock-fancy
- sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' i3lock-fancy
- sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy
- sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy
- sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy
- sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|" i3lock-fancy
+
+ postPatch = ''
+ sed -i i3lock-fancy \
+ -e "s|mktemp|${coreutils}/bin/mktemp|" \
+ -e "s|'rm -f |'${coreutils}/bin/rm -f |" \
+ -e "s|scrot -z |${scrot}/bin/scrot -z |" \
+ -e "s|convert |${imagemagick.out}/bin/convert |" \
+ -e "s|awk -F|${gawk}/bin/awk -F|" \
+ -e "s| awk | ${gawk}/bin/awk |" \
+ -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" \
+ -e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' \
+ -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' \
+ -e "s|getopt |${getopt}/bin/getopt |" \
+ -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" \
+ -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|"
rm Makefile
'';
+
installPhase = ''
mkdir -p $out/bin $out/share/i3lock-fancy/icons
cp i3lock-fancy $out/bin/i3lock-fancy
cp icons/lock*.png $out/share/i3lock-fancy/icons
'';
+
meta = with lib; {
description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
homepage = "https://github.com/meskarune/i3lock-fancy";
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
index edb482ad15..a285c4b5a5 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
@@ -12,25 +12,25 @@
rustPlatform.buildRustPackage rec {
pname = "i3status-rust";
- version = "0.20.4";
+ version = "0.20.6";
src = fetchFromGitHub {
owner = "greshake";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-lohMrsMCAnb2p7H+xfa24Wx3LEFxCAlGHfP9A70Hg48=";
+ sha256 = "sha256-FLMfXloAAIz/9KAtKFfB8uokQz/J8R+WsGarq/5cblo=";
};
- cargoSha256 = "sha256-pe96VNTH49qgQ4yxKcAcQPN31W2k1mD9TdhNKBp4x5Q=";
+ cargoSha256 = "sha256-UVAF2rz0y6h3/rcTJ+31mMyJDLG7q40n6vBK8Wxultg=";
nativeBuildInputs = [ pkg-config makeWrapper ];
buildInputs = [ dbus libpulseaudio notmuch openssl ];
- cargoBuildFlags = [
- "--features=notmuch"
- "--features=maildir"
- "--features=pulseaudio"
+ buildFeatures = [
+ "notmuch"
+ "maildir"
+ "pulseaudio"
];
prePatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/i3/status.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/status.nix
index 8e9cb2d2b7..bbbad532d0 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/i3/status.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/i3/status.nix
@@ -1,10 +1,11 @@
{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
stdenv.mkDerivation rec {
- name = "i3status-2.13";
+ pname = "i3status";
+ version = "2.13";
src = fetchurl {
- url = "https://i3wm.org/i3status/${name}.tar.bz2";
+ url = "https://i3wm.org/i3status/i3status-${version}.tar.bz2";
sha256 = "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff";
};
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
index 6756afb4a5..ec2e03de0f 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec {
pname = "wmfocus";
- version = "1.2.0";
+ version = "1.3.0";
src = fetchFromGitHub {
owner = "svenstaro";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-fZbsKu7C+rqggaFVSDNIGDAgn23M7mi+1jhV85s1Co8=";
+ sha256 = "sha256-HrS+C/6KDG2Rn/3u/mMmp4vzQ5YAHUFL4HFecteuzsc=";
};
- cargoSha256 = "sha256-ejzVJdtOXBPe+14g4aJFBMCvXkmNia9dNAk/BVQ2ZSQ=";
+ cargoSha256 = "sha256-EzgYnfUgwK2ldzrlqe9N9jeGgK+RzQPjbOjJCGEkcwE=";
nativeBuildInputs = [ python3 pkg-config ];
buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ];
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
# For now, this is the only available featureset. This is also why the file is
# in the i3 folder, even though it might be useful for more than just i3
# users.
- cargoBuildFlags = [ "--features i3" ];
+ buildFeatures = [ "i3" ];
meta = with lib; {
description = "Visually focus windows by label";
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix
index 8f172ac870..45d56194be 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix
@@ -1,18 +1,30 @@
{ lib, stdenv, fetchurl, xlibsWrapper, lua, gettext, groff }:
-stdenv.mkDerivation {
- name = "ion-3-20090110";
- meta = {
- description = "Tiling tabbed window manager designed with keyboard users in mind";
- homepage = "http://modeemi.fi/~tuomov/ion";
- platforms = with lib.platforms; linux;
- license = lib.licenses.lgpl21;
- };
+stdenv.mkDerivation rec {
+ pname = "ion";
+ version = "3-20090110";
+
src = fetchurl {
- url = "http://tuomov.iki.fi/software/dl/ion-3-20090110.tar.gz";
+ url = "https://tuomov.iki.fi/software/ion/dl/ion-${version}.tar.gz";
sha256 = "1nkks5a95986nyfkxvg2rik6zmwx0lh7szd5fji7yizccwzc9xns";
};
+
buildInputs = [ xlibsWrapper lua gettext groff ];
+
buildFlags = [ "LUA_DIR=${lua}" "X11_PREFIX=/no-such-path" "PREFIX=\${out}" ];
+
+ # Build system is missing depends for autogenerated export headers:
+ # luac -o mod_tiling.lc mod_tiling.lua
+ # main.c:21:10: fatal error: exports.h: No such file or directory
+ enableParallelBuilding = false;
+
installFlags = [ "PREFIX=\${out}" ];
+
+ meta = with lib; {
+ description = "Tiling tabbed window manager designed with keyboard users in mind";
+ homepage = "http://modeemi.fi/~tuomov/ion";
+ platforms = with platforms; linux;
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ ];
+ };
}
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch b/third_party/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch
deleted file mode 100644
index f7b6a4cb9f..0000000000
--- a/third_party/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 347d325..dce95a0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -489,7 +489,8 @@ fi
- ############################################################################
- AM_ICONV
- AM_GNU_GETTEXT([external])
--AM_GNU_GETTEXT_VERSION([0.19])
-+AM_GNU_GETTEXT_VERSION([0.19.6])
-+AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
- LDFLAGS="$LDFLAGS $LIBINTL $LIBICONV"
-
- ############################################################################
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/jwm/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
index 3c97c5630b..2c9461d638 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
@@ -1,21 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, automake, autoconf, libtool, gettext
+{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, gettext
, which, xorg, libX11, libXext, libXinerama, libXpm, libXft, libXau, libXdmcp
, libXmu, libpng, libjpeg, expat, xorgproto, librsvg, freetype, fontconfig }:
stdenv.mkDerivation rec {
pname = "jwm";
- version = "1685";
+ version = "2.4.0";
src = fetchFromGitHub {
owner = "joewing";
repo = "jwm";
- rev = "s${version}";
- sha256 = "1kyvy022sij898g2hm5spy5vq0kw6aqd7fsnawl2xyh06gwh29wg";
+ rev = "v${version}";
+ sha256 = "19fnrlw05njib13ljh7pmi48myfclra1xhy4b6hi74c6w6yz2fgj";
};
- patches = [ ./0001-Fix-Gettext-Requirement.patch ];
-
- nativeBuildInputs = [ pkg-config automake autoconf libtool gettext which ];
+ nativeBuildInputs = [ pkg-config gettext which autoreconfHook ];
buildInputs = [
libX11
@@ -38,12 +36,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- preConfigure = "./autogen.sh";
-
meta = {
homepage = "http://joewing.net/projects/jwm/";
description = "Joe's Window Manager is a light-weight X11 window manager";
- license = lib.licenses.gpl2;
+ license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.romildo ];
};
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/third_party/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
index d3b685e7dc..d01e1bfdf9 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/window-managers/larswm/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/larswm/default.nix
index e9d400378e..ce212b1c68 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/larswm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/larswm/default.nix
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }:
-stdenv.mkDerivation {
- name = "larswm-7.5.3";
+stdenv.mkDerivation rec {
+ pname = "larswm";
+ version = "7.5.3";
src = fetchurl {
- url = "mirror://sourceforge/larswm/larswm-7.5.3.tar.gz";
+ url = "mirror://sourceforge/larswm/larswm-${version}.tar.gz";
sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v";
};
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
index e8330ee293..9379fb358b 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix
index 0124261e42..d24abb68fb 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/window-managers/phosh/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
index 0a16bfc884..2971bdeb57 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
@@ -30,7 +30,7 @@
stdenv.mkDerivation rec {
pname = "phosh";
- version = "0.13.1";
+ version = "0.14.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
repo = pname;
rev = "v${version}";
fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
- sha256 = "sha256-dKQK4mGe/dvNlca/XMDeq1Q4dH/WBF/rtiUh8RssF5c=";
+ sha256 = "sha256-pN2IWJDsQoTSOUki5gKhIucFYlYchzrqKHQYq6o4EkI=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/picom/picom-next.nix b/third_party/nixpkgs/pkgs/applications/window-managers/picom/picom-next.nix
new file mode 100644
index 0000000000..88b00c2731
--- /dev/null
+++ b/third_party/nixpkgs/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-11-19";
+ src = fetchFromGitHub {
+ owner = "yshui";
+ repo = "picom";
+ rev = "1c7a4ff5a3cd5f3e25abcac0196896eea5939dce";
+ sha256 = "sha256-2uy2ofXhEWKuM+nEUqU16c85UGt6fJGtPZj+az907aw=";
+ };
+ meta.maintainers = with lib.maintainers; oldAttrs.meta.maintainers ++ [ GKasparov ];
+})
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/qtile/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
index 786a47d49c..c831bc6907 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3, glib, cairo, pango, pkg-config, libxcb, xcbutilcursor }:
+{ lib, fetchFromGitHub, python3, mypy, glib, cairo, pango, pkg-config, libxcb, xcbutilcursor }:
let
enabled-xcffib = cairocffi-xcffib: cairocffi-xcffib.override {
@@ -47,6 +47,14 @@ let
psutil
pyxdg
pygobject3
+ pywayland
+ pywlroots
+ xkbcommon
+ ];
+
+ # for `qtile check`, needs `stubtest` and `mypy` commands
+ makeWrapperArgs = [
+ "--suffix PATH : ${lib.makeBinPath [ mypy ]}"
];
doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/river/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/river/default.nix
index 8cf72adbf8..e59ce5449e 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/river/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix
index fb0cb31fad..782bd360d7 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -22,19 +22,22 @@ stdenv.mkDerivation rec {
};
patches = [
- ./sway-config-no-nix-store-references.patch
./load-configuration-from-etc.patch
(substituteAll {
src = ./fix-paths.patch;
inherit swaybg;
})
+ ] ++ lib.optionals (!isNixOS) [
+ # References to /nix/store/... will get GC'ed which causes problems when
+ # copying the default configuration:
+ ./sway-config-no-nix-store-references.patch
+ ] ++ lib.optionals isNixOS [
+ # Use /run/current-system/sw/share and /etc instead of /nix/store
+ # references:
+ ./sway-config-nixos-paths.patch
];
- postPatch = lib.optionalString isNixOS ''
- echo -e '\ninclude /etc/sway/config.d/*' >> config.in
- '';
-
nativeBuildInputs = [
meson ninja pkg-config wayland-scanner scdoc
];
@@ -47,7 +50,6 @@ stdenv.mkDerivation rec {
];
mesonFlags = [
- "-Ddefault-wallpaper=false"
"-Dsd-bus-provider=libsystemd"
]
++ lib.optional (!enableXWayland) "-Dxwayland=disabled"
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch b/third_party/nixpkgs/pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch
new file mode 100644
index 0000000000..bbb0f722b8
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch
@@ -0,0 +1,21 @@
+diff --git a/config.in b/config.in
+index 08703bef..f3872730 100644
+--- a/config.in
++++ b/config.in
+@@ -22,8 +22,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec --
+
+ ### Output configuration
+ #
+-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
+-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
++# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
++output * bg /run/current-system/sw/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+ #
+ # Example configuration:
+ #
+@@ -214,4 +214,4 @@ bar {
+ }
+ }
+
+-include @sysconfdir@/sway/config.d/*
++include /etc/sway/config.d/*
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix b/third_party/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
index 7bcb26e0c9..827fce8970 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
index 2eeae7f4da..7366ff1969 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
@@ -1,9 +1,8 @@
-{lib, stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [] }:
-
-with lib;
+{ lib, stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [ ] }:
stdenv.mkDerivation {
- name = "tabbed-20180310";
+ pname = "tabbed";
+ version = "unstable-2018-03-10";
src = fetchgit {
url = "https://git.suckless.org/tabbed";
@@ -23,7 +22,7 @@ stdenv.mkDerivation {
"PREFIX=$(out)"
];
- meta = {
+ meta = with lib; {
homepage = "https://tools.suckless.org/tabbed";
description = "Simple generic tabbed fronted to xembed aware applications";
license = licenses.mit;
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/trayer/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/trayer/default.nix
index c210b39fe1..57cf0fc93f 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/trayer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/trayer/default.nix
@@ -1,22 +1,24 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, gtk2 }:
stdenv.mkDerivation rec {
- name = "trayer-1.1.8";
-
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [ gdk-pixbuf gtk2 ];
+ pname = "trayer";
+ version = "1.1.8";
src = fetchFromGitHub {
owner = "sargon";
repo = "trayer-srg";
- rev = name;
+ rev = "${pname}-${version}";
sha256 = "1mvhwaqa9bng9wh3jg3b7y8gl7nprbydmhg963xg0r076jyzv0cg";
};
- preConfigure = ''
+ postPatch = ''
patchShebangs configure
'';
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ gdk-pixbuf gtk2 ];
+
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/vwm/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/vwm/default.nix
index 9eea18f79d..e1a8c8f3dd 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/vwm/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/vwm/default.nix
@@ -1,19 +1,34 @@
-{lib, stdenv, fetchurl, ncurses, pkg-config, glib, libviper, libpseudo, gpm,
-libvterm}:
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+, pkg-config
+, glib
+, libviper
+, libpseudo
+, gpm
+, libvterm
+}:
stdenv.mkDerivation rec {
- name = "vwm-2.1.3";
+ pname = "vwm";
+ version = "2.1.3";
src = fetchurl {
- url = "mirror://sourceforge/vwm/${name}.tar.gz";
+ url = "mirror://sourceforge/vwm/vwm-${version}.tar.gz";
sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf";
};
- prePatch = ''
+ postPatch = ''
sed -i -e s@/usr/local@$out@ \
-e s@/usr/lib@$out/lib@ \
-e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
-e /ldconfig/d Makefile modules/*/Makefile vwm.h
+
+ # Fix ncurses-6.3 support:
+ substituteInPlace vwm_bkgd.c --replace \
+ 'mvwprintw(window,height-1,width-(strlen(version_str)),version_str);' \
+ 'mvwprintw(window,height-1,width-(strlen(version_str)),"%s", version_str);'
'';
preInstall = ''
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix b/third_party/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
index c201c55dce..225e44c21c 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
- preInstall = ''
+ installPhase = ''
runHook preInstall
install -d ${placeholder "out"}/bin
runHook postInstall
diff --git a/third_party/nixpkgs/pkgs/build-support/appimage/default.nix b/third_party/nixpkgs/pkgs/build-support/appimage/default.nix
index 9df241a48c..9ceaab8894 100644
--- a/third_party/nixpkgs/pkgs/build-support/appimage/default.nix
+++ b/third_party/nixpkgs/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; };
@@ -107,7 +106,7 @@ rec {
xorg.libICE
gnome2.GConf
freetype
- (curl.override { gnutlsSupport = true; sslSupport = false; })
+ (curl.override { gnutlsSupport = true; opensslSupport = false; })
nspr
nss
fontconfig
diff --git a/third_party/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix b/third_party/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
index 3d64639d33..c2d67169c9 100644
--- a/third_party/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
@@ -81,6 +81,8 @@ let
else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1"
else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1"
+ # `ld-linux-riscv{32,64}-.so.1`
+ else if targetPlatform.isRiscV then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1"
else if targetPlatform.isDarwin then "/usr/lib/dyld"
else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1"
else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
@@ -324,6 +326,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/third_party/nixpkgs/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh b/third_party/nixpkgs/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh
new file mode 100644
index 0000000000..5b5136e3d1
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/build-dotnet-module/default.nix b/third_party/nixpkgs/pkgs/build-support/build-dotnet-module/default.nix
index 3701f254d0..5178e08a9c 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-dotnet-module/default.nix
+++ b/third_party/nixpkgs/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.
@@ -18,7 +21,7 @@
# Unfortunately, dotnet has no method for doing this automatically.
# If unset, all executables in the projects root will get installed. This may cause bloat!
, executables ? null
-# The packages project file, which contains instructions on how to compile it.
+# The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well.
, projectFile ? null
# The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched.
# This can be generated using the `nuget-to-nix` tool.
@@ -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,10 +61,35 @@ let
};
});
- package = stdenv.mkDerivation (args // {
+ 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 dotnetPackages.Nuget cacert makeWrapper ];
+ nativeBuildInputs = args.nativeBuildInputs or [] ++ [ dotnet-sdk cacert makeWrapper ];
# Stripping breaks the executable
dontStrip = true;
@@ -66,20 +102,15 @@ 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 "$projectFile" \
- ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
- -p:ContinuousIntegrationBuild=true \
- -p:Deterministic=true \
- --source "$PWD/nixos" \
- "''${dotnetRestoreFlags[@]}" \
- "''${dotnetFlags[@]}"
+ for project in ''${projectFile[@]}; do
+ dotnet restore "$project" \
+ ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ --source "${nuget-source}/lib" \
+ "''${dotnetRestoreFlags[@]}" \
+ "''${dotnetFlags[@]}"
+ done
runHook postConfigure
'';
@@ -87,32 +118,55 @@ let
buildPhase = args.buildPhase or ''
runHook preBuild
- dotnet build "$projectFile" \
- -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
- -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \
- -p:ContinuousIntegrationBuild=true \
- -p:Deterministic=true \
- -p:Version=${args.version} \
- --configuration "$buildType" \
- --no-restore \
- "''${dotnetBuildFlags[@]}" \
- "''${dotnetFlags[@]}"
+ for project in ''${projectFile[@]}; do
+ dotnet build "$project" \
+ -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
+ -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ -p:Version=${args.version} \
+ --configuration "$buildType" \
+ --no-restore \
+ "''${dotnetBuildFlags[@]}" \
+ "''${dotnetFlags[@]}"
+ done
runHook postBuild
'';
+ checkPhase = args.checkPhase or ''
+ runHook preCheck
+
+ for project in ''${testProjectFile[@]}; do
+ ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$project" \
+ -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[@]}"
+ done
+
+ runHook postCheck
+ '';
+
installPhase = args.installPhase or ''
runHook preInstall
- dotnet publish "$projectFile" \
- -p:ContinuousIntegrationBuild=true \
- -p:Deterministic=true \
- --output $out/lib/${args.pname} \
- --configuration "$buildType" \
- --no-build \
- --no-self-contained \
- "''${dotnetInstallFlags[@]}" \
- "''${dotnetFlags[@]}"
+ for project in ''${projectFile[@]}; do
+ dotnet publish "$project" \
+ -p:ContinuousIntegrationBuild=true \
+ -p:Deterministic=true \
+ --output $out/lib/${args.pname} \
+ --configuration "$buildType" \
+ --no-build \
+ --no-self-contained \
+ "''${dotnetInstallFlags[@]}" \
+ "''${dotnetFlags[@]}"
+ done
'' + (if executables != null then ''
for executable in $executables; do
execPath="$out/lib/${args.pname}/$executable"
diff --git a/third_party/nixpkgs/pkgs/build-support/build-dotnet-package/default.nix b/third_party/nixpkgs/pkgs/build-support/build-dotnet-package/default.nix
index 440b10044f..16dfd694ed 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-dotnet-package/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/build-dotnet-package/default.nix
@@ -3,7 +3,7 @@
attrsOrig @
{ baseName
, version
-, buildInputs ? []
+, nativeBuildInputs ? []
, xBuildFiles ? [ ]
, xBuildFlags ? [ "/p:Configuration=Release" ]
, outputFiles ? [ "bin/Release/*" ]
@@ -19,12 +19,12 @@ attrsOrig @
attrs = {
name = "${baseName}-${version}";
- nativeBuildInputs = [ pkg-config ];
- buildInputs = [
- mono
- dotnetbuildhelpers
+ nativeBuildInputs = [
+ pkg-config
makeWrapper
- ] ++ buildInputs;
+ dotnetbuildhelpers
+ mono
+ ] ++ nativeBuildInputs;
configurePhase = ''
runHook preConfigure
@@ -87,7 +87,7 @@ attrsOrig @
then
echo "$dll already exported by a buildInputs, not re-exporting"
else
- ${dotnetbuildhelpers}/bin/create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll"
+ create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll"
fi
done
done
@@ -113,4 +113,4 @@ attrsOrig @
'';
};
in
- stdenv.mkDerivation (attrs // (builtins.removeAttrs attrsOrig [ "buildInputs" ] ))
+ stdenv.mkDerivation (attrs // (builtins.removeAttrs attrsOrig [ "nativeBuildInputs" ] ))
diff --git a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
index 23718bf636..4773a1e2cf 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -66,6 +66,7 @@ let
"asound.conf"
# SSL
"ssl/certs"
+ "ca-certificates"
"pki"
];
in concatStringsSep "\n "
diff --git a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
index b9c719a4c7..0051961d9f 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
+++ b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -156,7 +156,7 @@ let
done
cd ..
- for i in var etc; do
+ for i in var etc opt; do
if [ -d "${staticUsrProfileTarget}/$i" ]; then
cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
fi
diff --git a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
index 324c9d24ba..c109d7297e 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
+++ b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
@@ -18,7 +18,7 @@
if (expr) \
fail(#expr, errno);
-const gchar *bind_blacklist[] = {"bin", "etc", "host", "real-host", "usr", "lib", "lib64", "lib32", "sbin", NULL};
+const gchar *bind_blacklist[] = {"bin", "etc", "host", "real-host", "usr", "lib", "lib64", "lib32", "sbin", "opt", NULL};
int pivot_root(const char *new_root, const char *put_old) {
return syscall(SYS_pivot_root, new_root, put_old);
diff --git a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/env.nix b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/env.nix
index da4521b4de..44c8adb06e 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/env.nix
+++ b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv/env.nix
@@ -184,7 +184,7 @@ let
done
cd ..
- for i in var etc; do
+ for i in var etc opt; do
if [ -d "${staticUsrProfileTarget}/$i" ]; then
cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
fi
diff --git a/third_party/nixpkgs/pkgs/build-support/build-graalvm-native-image/default.nix b/third_party/nixpkgs/pkgs/build-support/build-graalvm-native-image/default.nix
new file mode 100644
index 0000000000..0ed8ea0486
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/build-graalvm-native-image/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, graalvmCEPackages, glibcLocales }:
+
+{ name ? "${args.pname}-${args.version}"
+ # Final executable name
+, executable ? args.pname
+ # JAR used as input for GraalVM derivation, defaults to src
+, jar ? args.src
+, dontUnpack ? (jar == args.src)
+ # Default native-image arguments. You probably don't want to set this,
+ # except in special cases. In most cases, use extraNativeBuildArgs instead
+, nativeImageBuildArgs ? [
+ "-jar" jar
+ "-H:CLibraryPath=${lib.getLib graalvm}/lib"
+ (lib.optionalString stdenv.isDarwin "-H:-CheckToolchain")
+ "-H:Name=${executable}"
+ "--verbose"
+ ]
+ # Extra arguments to be passed to the native-image
+, extraNativeImageBuildArgs ? [ ]
+ # XMX size of GraalVM during build
+, graalvmXmx ? "-J-Xmx6g"
+ # The GraalVM to use
+, graalvm ? graalvmCEPackages.graalvm11-ce
+, ...
+} @ args:
+
+stdenv.mkDerivation (args // {
+ inherit dontUnpack;
+
+ nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvm glibcLocales ];
+
+ nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ];
+
+ buildPhase = args.buildPhase or ''
+ runHook preBuild
+
+ native-image ''${nativeImageBuildArgs[@]}
+
+ runHook postBuild
+ '';
+
+ installPhase = args.installPhase or ''
+ runHook preInstall
+
+ install -Dm755 ${executable} -t $out/bin
+
+ runHook postInstall
+ '';
+
+ meta.platforms = lib.attrByPath [ "meta" "platforms" ] graalvm.meta.platforms args;
+ meta.mainProgram = lib.attrByPath [ "meta" "mainProgram" ] executable args;
+})
diff --git a/third_party/nixpkgs/pkgs/build-support/docker/default.nix b/third_party/nixpkgs/pkgs/build-support/docker/default.nix
index dcfa5ec593..9a20df5777 100644
--- a/third_party/nixpkgs/pkgs/build-support/docker/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/docker/default.nix
@@ -5,6 +5,7 @@
, closureInfo
, coreutils
, e2fsprogs
+, fakechroot
, fakeroot
, findutils
, go
@@ -34,6 +35,10 @@
}:
let
+ inherit (lib)
+ optionals
+ optionalString
+ ;
inherit (lib)
escapeShellArgs
@@ -811,6 +816,10 @@ rec {
, # Optional bash script to run inside fakeroot environment.
# Could be used for changing ownership of files in customisation layer.
fakeRootCommands ? ""
+ , # Whether to run fakeRootCommands in fakechroot as well, so that they
+ # appear to run inside the image, but have access to the normal Nix store.
+ # Perhaps this could be enabled on by default on pkgs.stdenv.buildPlatform.isLinux
+ enableFakechroot ? false
, # We pick 100 to ensure there is plenty of room for extension. I
# believe the actual maximum is 128.
maxLayers ? 100
@@ -842,16 +851,26 @@ rec {
name = "${baseName}-customisation-layer";
paths = contentsList;
inherit extraCommands fakeRootCommands;
- nativeBuildInputs = [ fakeroot ];
+ nativeBuildInputs = [
+ fakeroot
+ ] ++ optionals enableFakechroot [
+ fakechroot
+ # for chroot
+ coreutils
+ # fakechroot needs getopt, which is provided by util-linux
+ util-linux
+ ];
postBuild = ''
mv $out old_out
(cd old_out; eval "$extraCommands" )
mkdir $out
-
- fakeroot bash -c '
+ ${optionalString enableFakechroot ''
+ export FAKECHROOT_EXCLUDE_PATH=/dev:/proc:/sys:${builtins.storeDir}:$out/layer.tar
+ ''}
+ ${optionalString enableFakechroot ''fakechroot chroot $PWD/old_out ''}fakeroot bash -c '
source $stdenv/setup
- cd old_out
+ ${optionalString (!enableFakechroot) ''cd old_out''}
eval "$fakeRootCommands"
tar \
--sort name \
@@ -867,13 +886,13 @@ rec {
};
closureRoots = lib.optionals includeStorePaths /* normally true */ (
- [ baseJson ] ++ contentsList
+ [ baseJson customisationLayer ]
);
overallClosure = writeText "closure" (lib.concatStringsSep " " closureRoots);
# These derivations are only created as implementation details of docker-tools,
# so they'll be excluded from the created images.
- unnecessaryDrvs = [ baseJson overallClosure ];
+ unnecessaryDrvs = [ baseJson overallClosure customisationLayer ];
conf = runCommand "${baseName}-conf.json"
{
diff --git a/third_party/nixpkgs/pkgs/build-support/docker/examples.nix b/third_party/nixpkgs/pkgs/build-support/docker/examples.nix
index 141c2ba0ea..f2d4f809ae 100644
--- a/third_party/nixpkgs/pkgs/build-support/docker/examples.nix
+++ b/third_party/nixpkgs/pkgs/build-support/docker/examples.nix
@@ -350,6 +350,9 @@ rec {
# This removes sharing of busybox and is not recommended. We do this
# to make the example suitable as a test case with working binaries.
cp -r ${pkgs.pkgsStatic.busybox}/* .
+
+ # This is a "build" dependency that will not appear in the image
+ ${pkgs.hello}/bin/hello
'';
};
@@ -504,6 +507,11 @@ rec {
fakeRootCommands = ''
mkdir -p ./home/jane
chown 1000 ./home/jane
+ ln -s ${pkgs.hello.overrideAttrs (o: {
+ # A unique `hello` to make sure that it isn't included via another mechanism by accident.
+ configureFlags = o.configureFlags or "" + " --program-prefix=layeredImageWithFakeRootCommands-";
+ doCheck = false;
+ })} ./hello
'';
};
@@ -554,6 +562,20 @@ rec {
# Example export of the bash image
exportBash = pkgs.dockerTools.exportImage { fromImage = bash; };
+ imageViaFakeChroot = pkgs.dockerTools.streamLayeredImage {
+ name = "image-via-fake-chroot";
+ tag = "latest";
+ config.Cmd = [ "hello" ];
+ enableFakechroot = true;
+ # Crucially, instead of a relative path, this creates /bin, which is
+ # intercepted by fakechroot.
+ # This functionality is not available on darwin as of 2021.
+ fakeRootCommands = ''
+ mkdir /bin
+ ln -s ${pkgs.hello}/bin/hello /bin/hello
+ '';
+ };
+
build-image-with-path = buildImage {
name = "build-image-with-path";
tag = "latest";
diff --git a/third_party/nixpkgs/pkgs/build-support/emacs/mk-wrapper-subdirs.el b/third_party/nixpkgs/pkgs/build-support/emacs/mk-wrapper-subdirs.el
new file mode 100644
index 0000000000..7d30400a5c
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/emacs/mk-wrapper-subdirs.el
@@ -0,0 +1,6 @@
+(defmacro mk-subdirs-expr (path)
+ `(setq load-path
+ (delete-dups (append '(,path)
+ ',(let ((default-directory path))
+ (normal-top-level-add-subdirs-to-load-path))
+ load-path))))
diff --git a/third_party/nixpkgs/pkgs/build-support/emacs/wrapper.nix b/third_party/nixpkgs/pkgs/build-support/emacs/wrapper.nix
index ccbd58485e..2aa61d6d2f 100644
--- a/third_party/nixpkgs/pkgs/build-support/emacs/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/build-support/emacs/wrapper.nix
@@ -165,8 +165,13 @@ runCommand
(add-to-list 'native-comp-eln-load-path "$out/share/emacs/native-lisp/")
''}
EOF
- # Link subdirs.el from the emacs distribution
- ln -s $emacs/share/emacs/site-lisp/subdirs.el -T $subdirs
+
+ # Generate a subdirs.el that statically adds all subdirectories to load-path.
+ $emacs/bin/emacs \
+ --batch \
+ --load ${./mk-wrapper-subdirs.el} \
+ --eval "(prin1 (macroexpand-1 '(mk-subdirs-expr \"$out/share/emacs/site-lisp\")))" \
+ > "$subdirs"
# Byte-compiling improves start-up time only slightly, but costs nothing.
$emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs"
diff --git a/third_party/nixpkgs/pkgs/build-support/fetchgit/default.nix b/third_party/nixpkgs/pkgs/build-support/fetchgit/default.nix
index c139030ea9..3a05008dac 100644
--- a/third_party/nixpkgs/pkgs/build-support/fetchgit/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/fetchgit/default.nix
@@ -12,7 +12,7 @@
else "";
in "${if matched == null then base else builtins.head matched}${appendShort}";
in
-{ url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? deepClone
+{ url, rev ? "HEAD", md5 ? "", sha256 ? "", hash ? "", leaveDotGit ? deepClone
, fetchSubmodules ? true, deepClone ? false
, branchName ? null
, name ? urlToName url rev
@@ -54,6 +54,8 @@ assert deepClone -> leaveDotGit;
if md5 != "" then
throw "fetchgit does not support md5 anymore, please use sha256"
+else if hash != "" && sha256 != "" then
+ throw "Only one of sha256 or hash can be set"
else
stdenvNoCC.mkDerivation {
inherit name;
@@ -63,9 +65,14 @@ stdenvNoCC.mkDerivation {
nativeBuildInputs = [ git ]
++ lib.optionals fetchLFS [ git-lfs ];
- outputHashAlgo = "sha256";
+ outputHashAlgo = if hash != "" then null else "sha256";
outputHashMode = "recursive";
- outputHash = sha256;
+ outputHash = if hash != "" then
+ hash
+ else if sha256 != "" then
+ sha256
+ else
+ lib.fakeSha256;
inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName postFetch;
diff --git a/third_party/nixpkgs/pkgs/build-support/fetchgithub/default.nix b/third_party/nixpkgs/pkgs/build-support/fetchgithub/default.nix
index ea95bbb479..d40a0478ba 100644
--- a/third_party/nixpkgs/pkgs/build-support/fetchgithub/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/fetchgithub/default.nix
@@ -8,7 +8,7 @@
}@args:
let
baseUrl = "https://${githubBase}/${owner}/${repo}";
- passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "private" "githubBase" "varPrefix" ];
+ passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ];
varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit;
# We prefer fetchzip in cases we don't need submodules as the hash
diff --git a/third_party/nixpkgs/pkgs/build-support/fetchgitlab/default.nix b/third_party/nixpkgs/pkgs/build-support/fetchgitlab/default.nix
index 9ee0b3ca36..5c82a8f858 100644
--- a/third_party/nixpkgs/pkgs/build-support/fetchgitlab/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/fetchgitlab/default.nix
@@ -10,7 +10,7 @@ let
slug = lib.concatStringsSep "/" ((lib.optional (group != null) group) ++ [ owner repo ]);
escapedSlug = lib.replaceStrings [ "." "/" ] [ "%2E" "%2F" ] slug;
escapedRev = lib.replaceStrings [ "+" "%" "/" ] [ "%2B" "%25" "%2F" ] rev;
- passthruAttrs = removeAttrs args [ "domain" "owner" "group" "repo" "rev" ];
+ passthruAttrs = removeAttrs args [ "protocol" "domain" "owner" "group" "repo" "rev" ];
useFetchGit = deepClone || fetchSubmodules || leaveDotGit;
fetcher = if useFetchGit then fetchgit else fetchzip;
diff --git a/third_party/nixpkgs/pkgs/build-support/fetchmtn/builder.sh b/third_party/nixpkgs/pkgs/build-support/fetchmtn/builder.sh
index c1b0db895b..73eff9c272 100644
--- a/third_party/nixpkgs/pkgs/build-support/fetchmtn/builder.sh
+++ b/third_party/nixpkgs/pkgs/build-support/fetchmtn/builder.sh
@@ -2,33 +2,33 @@ source $stdenv/setup
set -x
-if ! [ -f "$cacheDB" ]; then
- echo "Creating cache DB $cacheDB"
- mtn --db "$cacheDB" db init
+if ! [ -f "$cacheDB" ]; then
+ echo "Creating cache DB $cacheDB"
+ mtn --db "$cacheDB" db init
fi
header "getting revision $selector";
done=;
for source in $dbs; do
- if mtn pull --db "$cacheDB" "$source" "${branch}"; then
- revision="$(mtn --db "$cacheDB" au toposort $(mtn --db "$cacheDB" au select "$selector") | tail -1)";
- if [ -n "$revision" ]; then
- if mtn --db "$cacheDB" au get_revision "$revision"; then
- echo "found revision $revision"
- done=1;
- else
- echo "revision $revision does not exist";
- fi
- else
- echo "selector $selector does not match any revision";
- fi
- else
- echo "pulling branch $branch wasn't successful";
- fi;
- if test -n "$done"; then
- break;
- fi;
+ if mtn pull --db "$cacheDB" "$source" "${branch}"; then
+ revision="$(mtn --db "$cacheDB" au toposort $(mtn --db "$cacheDB" au select "$selector") | tail -1)";
+ if [ -n "$revision" ]; then
+ if mtn --db "$cacheDB" au get_revision "$revision"; then
+ echo "found revision $revision"
+ done=1;
+ else
+ echo "revision $revision does not exist";
+ fi
+ else
+ echo "selector $selector does not match any revision";
+ fi
+ else
+ echo "pulling branch $branch wasn't successful";
+ fi;
+ if test -n "$done"; then
+ break;
+ fi;
done;
stopNest;
@@ -36,10 +36,10 @@ stopNest;
header "checking out the revision $revision";
if test -n "$done"; then
- mtn checkout --db "$cacheDB" -r "$revision" "$out" -b "${branch}"
+ mtn checkout --db "$cacheDB" -r "$revision" "$out" -b "${branch}"
else
- echo "Needed revision still not found. Exiting";
- exit 1;
+ echo "Needed revision still not found. Exiting";
+ exit 1;
fi;
stopNest
diff --git a/third_party/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix b/third_party/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
index 8dc4f4207b..e4d6f02a94 100644
--- a/third_party/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
+++ b/third_party/nixpkgs/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,96 @@
"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://mirrors.kernel.org/CPAN/"
+ "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/"
+ "https://mirrors.edge.kernel.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/"
+ "https://mirrors.edge.kernel.org/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/"
+ "https://mirrors.edge.kernel.org/opensuse/distribution/"
"http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/"
- "http://opensuse.mirror.server4you.net/distribution/"
- "http://ftp.nsysu.edu.tw/Linux/OpenSuSE/distribution/"
];
- # Gnome (see http://ftp.gnome.org/pub/GNOME/MIRRORS).
gnome = [
# This one redirects to some mirror closeby, so it should be all you need.
- "http://download.gnome.org/"
+ "https://download.gnome.org/"
- "http://ftp.unina.it/pub/linux/GNOME/"
- "http://fr2.rpmfind.net/linux/gnome.org/"
- "ftp://ftp.dit.upm.es/pub/GNOME/"
- "http://ftp.acc.umu.se/pub/GNOME/"
- "http://ftp.belnet.be/mirror/ftp.gnome.org/"
- "http://linorg.usp.br/gnome/"
- "http://mirror.aarnet.edu.au/pub/GNOME/"
+ "https://fr2.rpmfind.net/linux/gnome.org/"
+ "https://ftp.acc.umu.se/pub/GNOME/"
+ "https://ftp.belnet.be/mirror/ftp.gnome.org/"
"ftp://ftp.cse.buffalo.edu/pub/Gnome/"
"ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/"
];
xfce = [
- "http://archive.xfce.org/"
- "http://mirror.netcologne.de/xfce/"
+ "https://archive.xfce.org/"
+ "https://mirror.netcologne.de/xfce/"
+ "https://archive.be.xfce.org/xfce/"
+ "https://archive.al-us.xfce.org/"
"http://archive.se.xfce.org/xfce/"
- "http://archive.be.xfce.org/xfce/"
"http://mirror.perldude.de/archive.xfce.org/"
"http://archive.be2.xfce.org/"
"http://ftp.udc.es/xfce/"
- "http://archive.al-us.xfce.org/"
- "http://mirror.yongbok.net/X11/xfce-mirror/"
- "http://mirrors.tummy.com/pub/archive.xfce.org/"
- "http://xfce.mirror.uber.com.au/"
];
# X.org.
@@ -261,24 +241,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 +261,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 +270,80 @@
# http://bioconductor.fmrp.usp.br/
# http://mirror.aarnet.edu.au/pub/bioconductor/
# http://watson.nci.nih.gov/bioc_mirror/
+ "https://bioconductor.statistik.tu-dortmund.de/packages/"
+ "https://mirrors.ustc.edu.cn/bioc/"
"http://bioconductor.jp/packages/"
- "http://bioconductor.statistik.tu-dortmund.de/packages/"
- "http://mirrors.ustc.edu.cn/bioc/"
];
# Hackage mirrors
hackage = [
- "http://hackage.haskell.org/package/"
- "http://hdiff.luite.com/packages/archive/package/"
- "http://hackage.fpcomplete.com/package/"
- "http://objects-us-east-1.dream.io/hackage-mirror/package/"
+ "https://hackage.haskell.org/package/"
];
# Roy marples mirrors
roy = [
- "http://roy.marples.name/downloads/"
- "http://cflags.cc/roy/"
+ "https://roy.marples.name/downloads/"
+ "https://cflags.cc/roy/"
];
- # Sage mirrors (http://www.sagemath.org/mirrors.html)
+ # Sage mirrors (https://www.sagemath.org/mirrors.html)
sageupstream = [
- # Africa
- "ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/spkg/upstream/"
- "http://sagemath.mirror.ac.za/spkg/upstream/"
- "https://ftp.leg.uct.ac.za/pub/packages/sage/spkg/upstream/"
- "http://mirror.ufs.ac.za/sagemath/spkg/upstream/"
+ # Africa (HTTPS)
+ "https://sagemath.mirror.ac.za/spkg/upstream/"
+ "https://mirror.ufs.ac.za/sagemath/spkg/upstream/"
- # America, North
- "http://mirrors-usa.go-parts.com/sage/sagemath/spkg/upstream/"
- "http://mirrors.mit.edu/sage/spkg/upstream/"
- "http://www.cecm.sfu.ca/sage/spkg/upstream/"
- "http://files.sagemath.org/spkg/upstream/"
- "http://mirror.clibre.uqam.ca/sage/spkg/upstream/"
+ # America, North (HTTPS)
+ "https://mirrors.mit.edu/sage/spkg/upstream/"
"https://mirrors.xmission.com/sage/spkg/upstream/"
- # America, South
- "http://sagemath.c3sl.ufpr.br/spkg/upstream/"
- "http://linorg.usp.br/sage/spkg/upstream"
-
- # Asia
- "http://mirror.hust.edu.cn/sagemath/spkg/upstream/"
- "https://ftp.iitm.ac.in/sage/spkg/upstream/"
- "http://ftp.kaist.ac.kr/sage/spkg/upstream/"
- "http://ftp.riken.jp/sagemath/spkg/upstream/"
+ # Asia (HTTPS)
"https://mirrors.tuna.tsinghua.edu.cn/sagemath/spkg/upstream/"
"https://mirrors.ustc.edu.cn/sagemath/spkg/upstream/"
"http://ftp.tsukuba.wide.ad.jp/software/sage/spkg/upstream/"
- "http://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/"
+ "https://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/"
"https://mirror.yandex.ru/mirrors/sage.math.washington.edu/spkg/upstream/"
- # Australia
- "http://mirror.aarnet.edu.au/pub/sage/spkg/upstream/"
+ # Australia (HTTPS)
+ "https://mirror.aarnet.edu.au/pub/sage/spkg/upstream/"
- # Europe
- "http://sage.mirror.garr.it/mirrors/sage/spkg/upstream/"
- "http://mirror.switch.ch/mirror/sagemath/spkg/upstream/"
+ # Europe (HTTPS)
+ "https://sage.mirror.garr.it/mirrors/sage/spkg/upstream/"
+ "https://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/"
+
+ # Africa (non-HTTPS)
+ "ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/spkg/upstream/"
+
+ # America, North (non-HTTPS)
+ "http://www.cecm.sfu.ca/sage/spkg/upstream/"
+
+ # America, South (non-HTTPS)
+ "http://sagemath.c3sl.ufpr.br/spkg/upstream/"
+ "http://linorg.usp.br/sage/spkg/upstream"
+
+ # Asia (non-HTTPS)
+ "http://ftp.kaist.ac.kr/sage/spkg/upstream/"
+ "http://ftp.riken.jp/sagemath/spkg/upstream/"
+
+ # Europe (non-HTTPS)
"http://mirrors.fe.up.pt/pub/sage/spkg/upstream/"
- "http://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/"
"http://ftp.ntua.gr/pub/sagemath/spkg/upstream/"
];
# MySQL mirrors
mysql = [
- "http://cdn.mysql.com/Downloads/"
+ "https://cdn.mysql.com/Downloads/"
];
# OpenBSD mirrors
openbsd = [
- "http://ftp.openbsd.org/pub/OpenBSD/"
+ "https://ftp.openbsd.org/pub/OpenBSD/"
"ftp://ftp.nluug.nl/pub/OpenBSD/"
"ftp://ftp-stud.fht-esslingen.de/pub/OpenBSD/"
];
# Steam Runtime mirrors
steamrt = [
- "http://repo.steampowered.com/steamrt/"
+ "https://repo.steampowered.com/steamrt/"
"https://public.abbradar.moe/steamrt/"
];
@@ -389,7 +362,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/third_party/nixpkgs/pkgs/build-support/libredirect/default.nix b/third_party/nixpkgs/pkgs/build-support/libredirect/default.nix
index 42525ec98a..f87c6d23dd 100644
--- a/third_party/nixpkgs/pkgs/build-support/libredirect/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/libredirect/libredirect.c b/third_party/nixpkgs/pkgs/build-support/libredirect/libredirect.c
index c7058ce123..7dac468472 100644
--- a/third_party/nixpkgs/pkgs/build-support/libredirect/libredirect.c
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/builder.sh b/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/builder.sh
deleted file mode 100644
index 67abc465a9..0000000000
--- a/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/builder.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-source $stdenv/setup
-
-substitute $dllFixer $out --subst-var-by perl $perl/bin/perl
-chmod +x $out
diff --git a/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/default.nix b/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/default.nix
index 8f7d1e795d..09a986015e 100644
--- a/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/mono-dll-fixer/default.nix
@@ -1,8 +1,11 @@
{stdenv, perl}:
-
stdenv.mkDerivation {
name = "mono-dll-fixer";
- builder = ./builder.sh;
dllFixer = ./dll-fixer.pl;
+ dontUnpack = true;
+ installPhase = ''
+ substitute $dllFixer $out --subst-var-by perl $perl/bin/perl
+ chmod +x $out
+ '';
inherit perl;
}
diff --git a/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/default.nix b/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/default.nix
index 91aae055f6..6d67b87915 100644
--- a/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/default.nix
@@ -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/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/index.js b/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/index.js
index a9c5ab29cc..e728ad89e1 100755
--- a/third_party/nixpkgs/pkgs/build-support/node/fetch-yarn-deps/index.js
+++ b/third_party/nixpkgs/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+')) {
- const fileName = path.basename(url)
+ } else if (url.startsWith('git:')) {
return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
+ } else if (url.startsWith('git+')) {
+ return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
+ } else if (url.startsWith('file:')) {
+ console.warn(`ignoring unsupported file:path url "${url}"`)
} else {
throw new Error('don\'t know how to download "' + url + '"')
}
diff --git a/third_party/nixpkgs/pkgs/build-support/ocaml/default.nix b/third_party/nixpkgs/pkgs/build-support/ocaml/default.nix
index cd17eb688c..1fe99bb632 100644
--- a/third_party/nixpkgs/pkgs/build-support/ocaml/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/ocaml/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, writeText, ocaml, findlib, ocamlbuild, camlp4 }:
-{ name, version, nativeBuildInputs ? [],
+{ pname ? args.name, version, nativeBuildInputs ? [],
createFindlibDestdir ? true,
dontStrip ? true,
minimumSupportedOcamlVersion ? null,
@@ -17,13 +17,13 @@ in
lib.versionOlder minimumSupportedOcamlVersion ocaml.version;
stdenv.mkDerivation (args // {
- name = "ocaml-${name}-${version}";
+ name = "ocaml-${pname}-${version}";
nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ] ++ nativeBuildInputs;
setupHook = if setupHook == null && hasSharedObjects
then writeText "setupHook.sh" ''
- export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${name}/"
+ export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${pname}/"
''
else setupHook;
diff --git a/third_party/nixpkgs/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh b/third_party/nixpkgs/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
index f7c7429eb0..a5a4427166 100644
--- a/third_party/nixpkgs/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
+++ b/third_party/nixpkgs/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
@@ -13,9 +13,9 @@ if [ -z "${NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
fi
if (( ${#role_suffixes[@]} > 0 )); then
- # replace env var with nix-modified one
+ # replace env var with nix-modified one
PKG_CONFIG_PATH=$PKG_CONFIG_PATH_@suffixSalt@ exec @prog@ "$@"
else
- # pkg-config isn't a bonafied dependency so ignore setup hook entirely
- exec @prog@ "$@"
+ # pkg-config isn't a bonafied dependency so ignore setup hook entirely
+ exec @prog@ "$@"
fi
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/default.nix b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
similarity index 92%
rename from third_party/nixpkgs/pkgs/build-support/rust/default.nix
rename to third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
index 3d7057dd7d..2cfd8d1728 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
@@ -36,6 +36,10 @@
, cargoLock ? null
, cargoVendorDir ? null
, checkType ? buildType
+, buildNoDefaultFeatures ? false
+, checkNoDefaultFeatures ? buildNoDefaultFeatures
+, buildFeatures ? [ ]
+, checkFeatures ? buildFeatures
, depsExtraArgs ? {}
# Toggles whether a custom sysroot is created when the target is a .json file.
@@ -103,6 +107,14 @@ stdenv.mkDerivation ((removeAttrs args [ "depsExtraArgs" "cargoLock" ]) // lib.o
cargoCheckType = checkType;
+ cargoBuildNoDefaultFeatures = buildNoDefaultFeatures;
+
+ cargoCheckNoDefaultFeatures = checkNoDefaultFeatures;
+
+ cargoBuildFeatures = buildFeatures;
+
+ cargoCheckFeatures = checkFeatures;
+
patchRegistryDeps = ./patch-registry-deps;
nativeBuildInputs = nativeBuildInputs ++ [
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/patch-registry-deps/pkg-config b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config
similarity index 100%
rename from third_party/nixpkgs/pkgs/build-support/rust/patch-registry-deps/pkg-config
rename to third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/default.nix b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
similarity index 61%
rename from third_party/nixpkgs/pkgs/build-support/rust/sysroot/default.nix
rename to third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
index 4db7cf0dc3..1e0b901105 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
@@ -3,17 +3,8 @@
{ shortTarget, originalCargoToml, target, RUSTFLAGS }:
let
- cargoSrc = stdenv.mkDerivation {
- name = "cargo-src";
- preferLocalBuild = true;
- phases = [ "installPhase" ];
- installPhase = ''
- RUSTC_SRC=${rustPlatform.rustcSrc.override { minimalContent = false; }} ORIG_CARGO=${originalCargoToml} \
- ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py}
- mkdir -p $out
- cp Cargo.toml $out/Cargo.toml
- cp ${./Cargo.lock} $out/Cargo.lock
- '';
+ cargoSrc = import ../../sysroot/src.nix {
+ inherit stdenv rustPlatform buildPackages originalCargoToml;
};
in rustPlatform.buildRustPackage {
inherit target RUSTFLAGS;
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py b/third_party/nixpkgs/pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py
similarity index 100%
rename from third_party/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py
rename to third_party/nixpkgs/pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix b/third_party/nixpkgs/pkgs/build-support/rust/fetch-cargo-tarball/default.nix
similarity index 95%
rename from third_party/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix
rename to third_party/nixpkgs/pkgs/build-support/rust/fetch-cargo-tarball/default.nix
index c2be9aac82..d36200aa5f 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/fetchCargoTarball.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/fetch-cargo-tarball/default.nix
@@ -9,8 +9,8 @@ let cargo-vendor-normalise = stdenv.mkDerivation {
postFixup = "wrapPythonPrograms";
doInstallCheck = true;
installCheckPhase = ''
- # check that ./fetchcargo-default-config.toml is a fix point
- reference=${./fetchcargo-default-config.toml}
+ # check that ../fetchcargo-default-config.toml is a fix point
+ reference=${../fetchcargo-default-config.toml}
< $reference $out/bin/cargo-vendor-normalise > test;
cmp test $reference
'';
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh
index c10120c5aa..54ed765012 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh
+++ b/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-build-hook.sh
@@ -13,6 +13,14 @@ cargoBuildHook() {
cargoBuildProfileFlag="--${cargoBuildType}"
fi
+ if [ -n "${cargoBuildNoDefaultFeatures-}" ]; then
+ cargoBuildNoDefaultFeaturesFlag=--no-default-features
+ fi
+
+ if [ -n "${cargoBuildFeatures-}" ]; then
+ cargoBuildFeaturesFlag="--features=${cargoBuildFeatures// /,}"
+ fi
+
(
set -x
env \
@@ -24,6 +32,8 @@ cargoBuildHook() {
--target @rustTargetPlatformSpec@ \
--frozen \
${cargoBuildProfileFlag} \
+ ${cargoBuildNoDefaultFeaturesFlag} \
+ ${cargoBuildFeaturesFlag} \
${cargoBuildFlags}
)
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh
index f0339afb38..57fc2779cf 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh
+++ b/third_party/nixpkgs/pkgs/build-support/rust/hooks/cargo-check-hook.sh
@@ -16,11 +16,20 @@ cargoCheckHook() {
threads=1
fi
- if [ "${cargoBuildType}" != "debug" ]; then
- cargoBuildProfileFlag="--${cargoBuildType}"
+ if [ "${cargoCheckType}" != "debug" ]; then
+ cargoCheckProfileFlag="--${cargoCheckType}"
fi
- argstr="${cargoBuildProfileFlag} --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}";
+ if [ -n "${cargoCheckNoDefaultFeatures-}" ]; then
+ cargoCheckNoDefaultFeaturesFlag=--no-default-features
+ fi
+
+ if [ -n "${cargoCheckFeatures-}" ]; then
+ cargoCheckFeaturesFlag="--features=${cargoCheckFeatures// /,}"
+ fi
+
+ argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag}
+ --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}"
(
set -x
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix b/third_party/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix
index fe070e9638..fd3608741e 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix
@@ -125,20 +125,31 @@ let
};
in runCommand "${pkg.name}-${pkg.version}" {} ''
tree=${tree}
- if grep --quiet '\[workspace\]' "$tree/Cargo.toml"; then
- # If the target package is in a workspace, find the crate path
- # using `cargo metadata`.
- crateCargoTOML=$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path $tree/Cargo.toml | \
- ${jq}/bin/jq -r '.packages[] | select(.name == "${pkg.name}") | .manifest_path')
+ # If the target package is in a workspace, or if it's the top-level
+ # crate, we should find the crate path using `cargo metadata`.
+ crateCargoTOML=$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path $tree/Cargo.toml | \
+ ${jq}/bin/jq -r '.packages[] | select(.name == "${pkg.name}") | .manifest_path')
+
+ # If the repository is not a workspace the package might be in a subdirectory.
+ if [[ -z $crateCargoTOML ]]; then
+ for manifest in $(find $tree -name "Cargo.toml"); do
+ echo Looking at $manifest
+ crateCargoTOML=$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path "$manifest" | ${jq}/bin/jq -r '.packages[] | select(.name == "${pkg.name}") | .manifest_path' || :)
if [[ ! -z $crateCargoTOML ]]; then
- tree=$(dirname $crateCargoTOML)
- else
- >&2 echo "Cannot find path for crate '${pkg.name}-${pkg.version}' in the Cargo workspace in: $tree"
- exit 1
+ break
fi
+ done
+
+ if [[ -z $crateCargoTOML ]]; then
+ >&2 echo "Cannot find path for crate '${pkg.name}-${pkg.version}' in the tree in: $tree"
+ exit 1
+ fi
fi
+ echo Found crate ${pkg.name} at $crateCargoTOML
+ tree=$(dirname $crateCargoTOML)
+
cp -prvd "$tree/" $out
chmod u+w $out
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/lib/default.nix b/third_party/nixpkgs/pkgs/build-support/rust/lib/default.nix
new file mode 100644
index 0000000000..24adcf2cb4
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/rust/lib/default.nix
@@ -0,0 +1,37 @@
+{ lib }:
+
+rec {
+ # https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch
+ toTargetArch = platform:
+ if platform.isAarch32 then "arm"
+ else platform.parsed.cpu.name;
+
+ # https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
+ toTargetOs = platform:
+ if platform.isDarwin then "macos"
+ else platform.parsed.kernel.name;
+
+ # Returns the name of the rust target, even if it is custom. Adjustments are
+ # because rust has slightly different naming conventions than we do.
+ toRustTarget = platform: let
+ inherit (platform.parsed) cpu vendor kernel abi;
+ cpu_ = platform.rustc.platform.arch or {
+ "armv7a" = "armv7";
+ "armv7l" = "armv7";
+ "armv6l" = "arm";
+ "armv5tel" = "armv5te";
+ "riscv64" = "riscv64gc";
+ }.${cpu.name} or cpu.name;
+ vendor_ = platform.rustc.platform.vendor or {
+ "w64" = "pc";
+ }.${vendor.name} or vendor.name;
+ in platform.rustc.config
+ or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
+
+ # Returns the name of the rust target if it is standard, or the json file
+ # containing the custom target spec.
+ toRustTargetSpec = platform:
+ if (platform.rustc or {}) ? platform
+ then builtins.toFile (toRustTarget platform + ".json") (builtins.toJSON platform.rustc.platform)
+ else toRustTarget platform;
+}
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/Cargo.lock b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/Cargo.lock
index 61fcef6174..6ec6da6ae6 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/Cargo.lock
+++ b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/Cargo.lock
@@ -10,9 +10,9 @@ dependencies = [
[[package]]
name = "compiler_builtins"
-version = "0.1.36"
+version = "0.1.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cd0782e0a7da7598164153173e5a5d4d9b1da094473c98dce0ff91406112369"
+checksum = "b6591c2442ee984e2b264638a8b5e7ae44fd47b32d28e3a08e2e9c3cdb0c2fb0"
dependencies = [
"rustc-std-workspace-core",
]
@@ -21,9 +21,22 @@ dependencies = [
name = "core"
version = "0.0.0"
+[[package]]
+name = "nixpkgs-sysroot-stub-crate"
+version = "0.0.0"
+dependencies = [
+ "alloc",
+ "compiler_builtins",
+ "core",
+]
+
[[package]]
name = "rustc-std-workspace-core"
version = "1.99.0"
dependencies = [
"core",
]
+
+[[patch.unused]]
+name = "rustc-std-workspace-alloc"
+version = "1.99.0"
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/cargo.py b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/cargo.py
index 09f6fba6d1..9d970eff79 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/cargo.py
+++ b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/cargo.py
@@ -6,7 +6,7 @@ orig_cargo = os.environ['ORIG_CARGO'] if 'ORIG_CARGO' in os.environ else None
base = {
'package': {
- 'name': 'alloc',
+ 'name': 'nixpkgs-sysroot-stub-crate',
'version': '0.0.0',
'authors': ['The Rust Project Developers'],
'edition': '2018',
@@ -17,17 +17,19 @@ base = {
'features': ['rustc-dep-of-std', 'mem'],
},
'core': {
- 'path': os.path.join(rust_src, 'libcore'),
+ 'path': os.path.join(rust_src, 'core'),
+ },
+ 'alloc': {
+ 'path': os.path.join(rust_src, 'alloc'),
},
- },
- 'lib': {
- 'name': 'alloc',
- 'path': os.path.join(rust_src, 'liballoc/lib.rs'),
},
'patch': {
'crates-io': {
'rustc-std-workspace-core': {
- 'path': os.path.join(rust_src, 'tools/rustc-std-workspace-core'),
+ 'path': os.path.join(rust_src, 'rustc-std-workspace-core'),
+ },
+ 'rustc-std-workspace-alloc': {
+ 'path': os.path.join(rust_src, 'rustc-std-workspace-alloc'),
},
},
},
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/src.nix b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/src.nix
new file mode 100644
index 0000000000..3d11b62dd3
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/src.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, rustPlatform, buildPackages
+, originalCargoToml ? null
+}:
+
+stdenv.mkDerivation {
+ name = "cargo-src";
+ preferLocalBuild = true;
+
+ unpackPhase = "true";
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ export RUSTC_SRC=${rustPlatform.rustLibSrc.override { }}
+ ''
+ + lib.optionalString (originalCargoToml != null) ''
+ export ORIG_CARGO=${originalCargoToml}
+ ''
+ + ''
+ ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py}
+ mkdir -p $out/src
+ touch $out/src/lib.rs
+ cp Cargo.toml $out/Cargo.toml
+ cp ${./Cargo.lock} $out/Cargo.lock
+ '';
+}
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/update-lockfile.sh b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/update-lockfile.sh
index 83d2983238..d0596d1e5a 100755
--- a/third_party/nixpkgs/pkgs/build-support/rust/sysroot/update-lockfile.sh
+++ b/third_party/nixpkgs/pkgs/build-support/rust/sysroot/update-lockfile.sh
@@ -1,21 +1,27 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p python3 python3.pkgs.toml cargo
-set -e
+set -eu pipefile
-HERE=$(dirname "${BASH_SOURCE[0]}")
+HERE=$(readlink -e $(dirname "${BASH_SOURCE[0]}"))
NIXPKGS_ROOT="$HERE/../../../.."
# https://unix.stackexchange.com/a/84980/390173
tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-lockfile')
-
cd "$tempdir"
-nix-build -E "with import (/. + \"${NIXPKGS_ROOT}\") {}; pkgs.rustPlatform.rustcSrc.override { minimalContent = false; }"
-RUSTC_SRC="$(pwd)/result" python3 "$HERE/cargo.py"
-RUSTC_BOOTSTRAP=1 cargo build || echo "Build failure is expected. All that's needed is the lockfile."
+mkdir -p src
+touch src/lib.rs
+
+RUSTC_SRC=$(nix-build "${NIXPKGS_ROOT}" -A pkgs.rustPlatform.rustLibSrc --no-out-link)
+
+ln -s $RUSTC_SRC/{core,alloc} ./
+
+export RUSTC_SRC
+python3 "$HERE/cargo.py"
+
+export RUSTC_BOOTSTRAP=1
+cargo generate-lockfile
cp Cargo.lock "$HERE"
rm -rf "$tempdir"
-
-
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix
index 24e07099c0..c5c7b2f1c9 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix
@@ -7,6 +7,7 @@
basicDynamic = callPackage ./basic-dynamic { };
gitDependency = callPackage ./git-dependency { };
gitDependencyRev = callPackage ./git-dependency-rev { };
+ gitDependencyRevNonWorkspaceNestedCrate = callPackage ./git-dependency-rev-non-workspace-nested-crate { };
gitDependencyTag = callPackage ./git-dependency-tag { };
gitDependencyBranch = callPackage ./git-dependency-branch { };
maturin = callPackage ./maturin { };
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.lock b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.lock
new file mode 100644
index 0000000000..63ff1b3c11
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.lock
@@ -0,0 +1,638 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "anyhow"
+version = "1.0.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1"
+
+[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cargo-test-macro"
+version = "0.1.0"
+source = "git+https://github.com/rust-lang/cargo?branch=rust-1.53.0#4369396ce7d270972955d876eaa4954bea56bcd9"
+
+[[package]]
+name = "cargo-test-support"
+version = "0.1.0"
+source = "git+https://github.com/rust-lang/cargo?branch=rust-1.53.0#4369396ce7d270972955d876eaa4954bea56bcd9"
+dependencies = [
+ "anyhow",
+ "cargo-test-macro",
+ "cargo-util",
+ "filetime",
+ "flate2",
+ "git2",
+ "glob",
+ "lazy_static",
+ "remove_dir_all",
+ "serde_json",
+ "tar",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "cargo-util"
+version = "0.1.0"
+source = "git+https://github.com/rust-lang/cargo?branch=rust-1.53.0#4369396ce7d270972955d876eaa4954bea56bcd9"
+dependencies = [
+ "anyhow",
+ "core-foundation",
+ "crypto-hash",
+ "filetime",
+ "hex 0.4.3",
+ "jobserver",
+ "libc",
+ "log",
+ "miow",
+ "same-file",
+ "shell-escape",
+ "tempfile",
+ "walkdir",
+ "winapi",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "commoncrypto"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007"
+dependencies = [
+ "commoncrypto-sys",
+]
+
+[[package]]
+name = "commoncrypto-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "crc32fast"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crypto-hash"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a77162240fd97248d19a564a565eb563a3f592b386e4136fb300909e67dddca"
+dependencies = [
+ "commoncrypto",
+ "hex 0.3.2",
+ "openssl",
+ "winapi",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
+dependencies = [
+ "cfg-if",
+ "crc32fast",
+ "libc",
+ "libz-sys",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "git-dependency-rev-non-workspace-nested-crate"
+version = "0.1.0"
+dependencies = [
+ "cargo-test-support",
+]
+
+[[package]]
+name = "git2"
+version = "0.13.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a8057932925d3a9d9e4434ea016570d37420ddb1ceed45a174d577f24ed6700"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "openssl-probe",
+ "openssl-sys",
+ "url",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "hex"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
+name = "jobserver"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.105"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "869d572136620d55835903746bcb5cdc54cb2851fd0aeec53220b4bb65ef3013"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.12.24+1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddbd6021eef06fb289a8f54b3c2acfdd85ff2a585dfbb24b8576325373d2152c"
+dependencies = [
+ "cc",
+ "libc",
+ "libssh2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libssh2-sys"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+dependencies = [
+ "adler",
+ "autocfg",
+]
+
+[[package]]
+name = "miow"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+
+[[package]]
+name = "openssl"
+version = "0.10.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10e2fcbb64ecbe64c8e040a386c3104d384583af58b956d870aaaf229df6e66d"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741"
+
+[[package]]
+name = "rand"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.130"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
+
+[[package]]
+name = "serde_json"
+version = "1.0.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "shell-escape"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
+
+[[package]]
+name = "tar"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6f5515d3add52e0bbdcad7b83c388bb36ba7b754dda3b5f5bc2d38640cdba5c"
+dependencies = [
+ "filetime",
+ "libc",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "toml"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.toml b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.toml
new file mode 100644
index 0000000000..61f1a08dbe
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "git-dependency-rev-non-workspace-nested-crate"
+version = "0.1.0"
+authors = ["Stefan Junker "]
+edition = "2018"
+
+[dependencies]
+cargo-test-support = { git = "https://github.com/rust-lang/cargo", branch = "rust-1.53.0" }
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix
new file mode 100644
index 0000000000..dcf1e601c3
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix
@@ -0,0 +1,31 @@
+{ rustPlatform, pkg-config, openssl, lib, darwin, stdenv }:
+
+rustPlatform.buildRustPackage {
+ pname = "git-dependency-rev-non-workspace-nested-crate";
+ version = "0.1.0";
+
+ src = ./.;
+
+ nativeBuildInputs = [
+ pkg-config
+ ];
+
+ buildInputs = [
+ openssl
+ ] ++ lib.optionals stdenv.isDarwin [
+ darwin.apple_sdk.frameworks.Security
+ ];
+
+ cargoLock = {
+ lockFile = ./Cargo.lock;
+ outputHashes = {
+ "cargo-test-macro-0.1.0" = "1yy1y1d523xdzwg1gc77pigbcwsbawmy4b7vw8v21m7q957sk0c4";
+ };
+ };
+
+ doInstallCheck = true;
+
+ installCheckPhase = ''
+ $out/bin/git-dependency-rev-non-workspace-nested-crate
+ '';
+}
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/src/main.rs b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/src/main.rs
new file mode 100644
index 0000000000..cb4bfb5d92
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/src/main.rs
@@ -0,0 +1,3 @@
+fn main() {
+ println!("{}", cargo_test_support::t!(Result::<&str, &str>::Ok("msg")));
+}
diff --git a/third_party/nixpkgs/pkgs/build-support/setup-hooks/copy-desktop-items.sh b/third_party/nixpkgs/pkgs/build-support/setup-hooks/copy-desktop-items.sh
index f96a10f33d..b5c5ed81eb 100644
--- a/third_party/nixpkgs/pkgs/build-support/setup-hooks/copy-desktop-items.sh
+++ b/third_party/nixpkgs/pkgs/build-support/setup-hooks/copy-desktop-items.sh
@@ -30,8 +30,8 @@ copyDesktopItems() {
for desktopItem in $desktopItems; do
if [[ -f "$desktopItem" ]]; then
- echo "Copying '$f' into '$out/share/applications'"
- install -D -m 444 -t "$out"/share/applications "$f"
+ echo "Copying '$desktopItem' into '$out/share/applications'"
+ install -D -m 444 -t "$out"/share/applications "$desktopItem"
else
for f in "$desktopItem"/share/applications/*.desktop; do
echo "Copying '$f' into '$out/share/applications'"
diff --git a/third_party/nixpkgs/pkgs/build-support/setup-hooks/role.bash b/third_party/nixpkgs/pkgs/build-support/setup-hooks/role.bash
index cf69e732e7..b2d34a1f86 100644
--- a/third_party/nixpkgs/pkgs/build-support/setup-hooks/role.bash
+++ b/third_party/nixpkgs/pkgs/build-support/setup-hooks/role.bash
@@ -17,7 +17,7 @@ function getRole() {
role_post='_FOR_TARGET'
;;
*)
- echo "@name@: used as improper sort of dependency" >2
+ echo "@name@: used as improper sort of dependency" >&2
return 1
;;
esac
@@ -64,7 +64,7 @@ function getTargetRoleWrapper() {
export NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@=1
;;
*)
- echo "@name@: used as improper sort of dependency" >2
+ echo "@name@: used as improper sort of dependency" >&2
return 1
;;
esac
diff --git a/third_party/nixpkgs/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh b/third_party/nixpkgs/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh
index 4bf7c0ff1a..825da1bde9 100644
--- a/third_party/nixpkgs/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh
+++ b/third_party/nixpkgs/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh
@@ -71,9 +71,9 @@ _shortenPerlShebang() {
print
}
' "$program" > "$temp" || die
- # Preserve the mode of the original file
- cp --preserve=mode --attributes-only "$program" "$temp"
- mv "$temp" "$program"
+ # Preserve the mode of the original file
+ cp --preserve=mode --attributes-only "$program" "$temp"
+ mv "$temp" "$program"
# Measure the new shebang line length and make sure it's okay. We subtract
# one to account for the trailing newline that "head" included in its
diff --git a/third_party/nixpkgs/pkgs/build-support/setup-hooks/strip.sh b/third_party/nixpkgs/pkgs/build-support/setup-hooks/strip.sh
index c31a50eba5..2d8e66a89f 100644
--- a/third_party/nixpkgs/pkgs/build-support/setup-hooks/strip.sh
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/setup-hooks/validate-pkg-config.sh b/third_party/nixpkgs/pkgs/build-support/setup-hooks/validate-pkg-config.sh
index ada1b56760..c212a1f530 100644
--- a/third_party/nixpkgs/pkgs/build-support/setup-hooks/validate-pkg-config.sh
+++ b/third_party/nixpkgs/pkgs/build-support/setup-hooks/validate-pkg-config.sh
@@ -7,7 +7,7 @@ _validatePkgConfig() {
for pc in $(find "$prefix" -name '*.pc'); do
# Do not fail immediately. It's nice to see all errors when
# there are multiple pkgconfig files.
- if ! pkg-config --validate "$pc"; then
+ if ! $PKG_CONFIG --validate "$pc"; then
bail=1
fi
done
diff --git a/third_party/nixpkgs/pkgs/build-support/singularity-tools/default.nix b/third_party/nixpkgs/pkgs/build-support/singularity-tools/default.nix
index 318f5b430f..a6a3cd001b 100644
--- a/third_party/nixpkgs/pkgs/build-support/singularity-tools/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/singularity-tools/default.nix
@@ -73,7 +73,7 @@ rec {
''}
# Build /bin and copy across closure
- mkdir -p bin nix/store
+ mkdir -p bin ./${builtins.storeDir}
for f in $(cat $layerClosure) ; do
cp -ar $f ./$f
done
diff --git a/third_party/nixpkgs/pkgs/build-support/trivial-builders.nix b/third_party/nixpkgs/pkgs/build-support/trivial-builders.nix
index f06d2136b8..3c9f3189d2 100644
--- a/third_party/nixpkgs/pkgs/build-support/trivial-builders.nix
+++ b/third_party/nixpkgs/pkgs/build-support/trivial-builders.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, stdenvNoCC, lndir, runtimeShell }:
+{ lib, stdenv, stdenvNoCC, lndir, runtimeShell, shellcheck }:
rec {
@@ -111,9 +111,10 @@ rec {
, executable ? false # run chmod +x ?
, destination ? "" # relative path appended to $out eg "/bin/foo"
, checkPhase ? "" # syntax checks, e.g. for scripts
+ , meta ? { }
}:
runCommand name
- { inherit text executable checkPhase;
+ { inherit text executable checkPhase meta;
passAsFile = [ "text" ];
# Pointless to do this on a remote machine.
preferLocalBuild = true;
@@ -249,6 +250,60 @@ rec {
'';
};
+ /*
+ * Similar to writeShellScriptBin and writeScriptBin.
+ * Writes an executable Shell script to /nix/store//bin/ and
+ * checks its syntax with shellcheck and the shell's -n option.
+ * Automatically includes sane set of shellopts (errexit, nounset, pipefail)
+ * and handles creation of PATH based on runtimeInputs
+ *
+ * Note that the checkPhase uses stdenv.shell for the test run of the script,
+ * while the generated shebang uses runtimeShell. If, for whatever reason,
+ * those were to mismatch you might lose fidelity in the default checks.
+ *
+ * Example:
+ * # Writes my-file to /nix/store//bin/my-file and makes executable.
+ * writeShellApplication {
+ * name = "my-file";
+ * runtimeInputs = [ curl w3m ];
+ * text = ''
+ * curl -s 'https://nixos.org' | w3m -dump -T text/html
+ * '';
+ * }
+ */
+ writeShellApplication =
+ { name
+ , text
+ , runtimeInputs ? [ ]
+ , checkPhase ? null
+ }:
+ writeTextFile {
+ inherit name;
+ executable = true;
+ destination = "/bin/${name}";
+ text = ''
+ #!${runtimeShell}
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
+
+ ${text}
+ '';
+
+ checkPhase =
+ if checkPhase == null then ''
+ runHook preCheck
+ ${stdenv.shell} -n $out/bin/${name}
+ ${shellcheck}/bin/shellcheck $out/bin/${name}
+ runHook postCheck
+ ''
+ else checkPhase;
+
+ meta.mainProgram = name;
+ };
+
# Create a C binary
writeCBin = name: code:
runCommandCC name
@@ -465,6 +520,88 @@ rec {
'';
+ /*
+ * Extract a string's references to derivations and paths (its
+ * context) and write them to a text file, removing the input string
+ * itself from the dependency graph. This is useful when you want to
+ * make a derivation depend on the string's references, but not its
+ * contents (to avoid unnecessary rebuilds, for example).
+ *
+ * Note that this only works as intended on Nix >= 2.3.
+ */
+ writeStringReferencesToFile = string:
+ /*
+ * The basic operation this performs is to copy the string context
+ * from `string' to a second string and wrap that string in a
+ * derivation. However, that alone is not enough, since nothing in the
+ * string refers to the output paths of the derivations/paths in its
+ * context, meaning they'll be considered build-time dependencies and
+ * removed from the wrapper derivation's closure. Putting the
+ * necessary output paths in the new string is however not very
+ * straightforward - the attrset returned by `getContext' contains
+ * only references to derivations' .drv-paths, not their output
+ * paths. In order to "convert" them, we try to extract the
+ * corresponding paths from the original string using regex.
+ */
+ let
+ # Taken from https://github.com/NixOS/nix/blob/130284b8508dad3c70e8160b15f3d62042fc730a/src/libutil/hash.cc#L84
+ nixHashChars = "0123456789abcdfghijklmnpqrsvwxyz";
+ context = builtins.getContext string;
+ derivations = lib.filterAttrs (n: v: v ? outputs) context;
+ # Objects copied from outside of the store, such as paths and
+ # `builtins.fetch*`ed ones
+ sources = lib.attrNames (lib.filterAttrs (n: v: v ? path) context);
+ packages =
+ lib.mapAttrs'
+ (name: value:
+ {
+ inherit value;
+ name = lib.head (builtins.match "${builtins.storeDir}/[${nixHashChars}]+-(.*)\.drv" name);
+ })
+ derivations;
+ # The syntax of output paths differs between outputs named `out`
+ # and other, explicitly named ones. For explicitly named ones,
+ # the output name is suffixed as `-name`, but `out` outputs
+ # aren't suffixed at all, and thus aren't easily distinguished
+ # from named output paths. Therefore, we find all the named ones
+ # first so we can use them to remove false matches when looking
+ # for `out` outputs (see the definition of `outputPaths`).
+ namedOutputPaths =
+ lib.flatten
+ (lib.mapAttrsToList
+ (name: value:
+ (map
+ (output:
+ lib.filter
+ lib.isList
+ (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name}-${output})" string))
+ (lib.remove "out" value.outputs)))
+ packages);
+ # Only `out` outputs
+ outputPaths =
+ lib.flatten
+ (lib.mapAttrsToList
+ (name: value:
+ if lib.elem "out" value.outputs then
+ lib.filter
+ (x: lib.isList x &&
+ # If the matched path is in `namedOutputPaths`,
+ # it's a partial match of an output path where
+ # the output name isn't `out`
+ lib.all (o: !lib.hasPrefix (lib.head x) o) namedOutputPaths)
+ (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name})" string)
+ else
+ [])
+ packages);
+ allPaths = lib.concatStringsSep "\n" (lib.unique (sources ++ namedOutputPaths ++ outputPaths));
+ allPathsWithContext = builtins.appendContext allPaths context;
+ in
+ if builtins ? getContext then
+ writeText "string-references" allPathsWithContext
+ else
+ writeDirectReferencesToFile (writeText "string-file" string);
+
+
/* Print an error message if the file with the specified name and
* hash doesn't exist in the Nix store. This function should only
* be used by non-redistributable software with an unfree license
@@ -612,7 +749,7 @@ rec {
{ package,
command ? "${package.meta.mainProgram or package.pname or package.name} --version",
version ? package.version,
- }: runCommand "test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } ''
+ }: runCommand "${package.name}-test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } ''
${command} |& grep -Fw ${version}
touch $out
'';
diff --git a/third_party/nixpkgs/pkgs/build-support/trivial-builders/test.sh b/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/references-test.sh
similarity index 67%
rename from third_party/nixpkgs/pkgs/build-support/trivial-builders/test.sh
rename to third_party/nixpkgs/pkgs/build-support/trivial-builders/test/references-test.sh
index b7c4726a9b..473ca6e107 100755
--- a/third_party/nixpkgs/pkgs/build-support/trivial-builders/test.sh
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/trivial-builders/test.nix b/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/references.nix
similarity index 73%
rename from third_party/nixpkgs/pkgs/build-support/trivial-builders/test.nix
rename to third_party/nixpkgs/pkgs/build-support/trivial-builders/test/references.nix
index 204fb54fca..a2bee51b13 100644
--- a/third_party/nixpkgs/pkgs/build-support/trivial-builders/test.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix b/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix
index 27aee6b73d..a4eedce841 100644
--- a/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix b/third_party/nixpkgs/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix
new file mode 100644
index 0000000000..b93b43b74a
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/build-support/vm/default.nix b/third_party/nixpkgs/pkgs/build-support/vm/default.nix
index d2aeb784e7..7b517333d9 100644
--- a/third_party/nixpkgs/pkgs/build-support/vm/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/vm/default.nix
@@ -5,7 +5,7 @@
, storeDir ? builtins.storeDir
, rootModules ?
[ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" ]
- ++ pkgs.lib.optional (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) "rtc_cmos"
+ ++ pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos"
}:
let
@@ -390,7 +390,7 @@ rec {
diskImage=$(pwd)/disk-image.qcow2
origImage=${attrs.diskImage}
if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi
- ${qemu}/bin/qemu-img create -b "$origImage" -f qcow2 $diskImage
+ ${qemu}/bin/qemu-img create -F ${attrs.diskImageFormat} -b "$origImage" -f qcow2 $diskImage
'';
/* Inside the VM, run the stdenv setup script normally, but at the
diff --git a/third_party/nixpkgs/pkgs/build-support/vm/test.nix b/third_party/nixpkgs/pkgs/build-support/vm/test.nix
index 1a29554ee8..384c920880 100644
--- a/third_party/nixpkgs/pkgs/build-support/vm/test.nix
+++ b/third_party/nixpkgs/pkgs/build-support/vm/test.nix
@@ -28,10 +28,10 @@ with vmTools;
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
name = "deb-compile";
src = patchelf.src;
- diskImage = diskImages.ubuntu1204i386;
+ diskImage = diskImages.ubuntu1804i386;
+ diskImageFormat = "qcow2";
memSize = 512;
- prePhases = [ sysInfoPhase ];
- sysInfoPhase = ''
+ postHook = ''
dpkg-query --list
'';
});
diff --git a/third_party/nixpkgs/pkgs/build-support/wrapper-common/utils.bash b/third_party/nixpkgs/pkgs/build-support/wrapper-common/utils.bash
index cb3552ebc5..0afccadf33 100644
--- a/third_party/nixpkgs/pkgs/build-support/wrapper-common/utils.bash
+++ b/third_party/nixpkgs/pkgs/build-support/wrapper-common/utils.bash
@@ -21,13 +21,13 @@ mangleVarListGeneric() {
local -a role_suffixes=("$@")
local outputVar="${var}_@suffixSalt@"
- declare -gx ${outputVar}+=''
+ declare -gx "$outputVar"+=''
# For each role we serve, we accumulate the input parameters into our own
# cc-wrapper-derivation-specific environment variables.
for suffix in "${role_suffixes[@]}"; do
local inputVar="${var}${suffix}"
if [ -v "$inputVar" ]; then
- export ${outputVar}+="${!outputVar:+$sep}${!inputVar}"
+ export "${outputVar}+=${!outputVar:+$sep}${!inputVar}"
fi
done
}
@@ -42,7 +42,7 @@ mangleVarBool() {
local -a role_suffixes=("$@")
local outputVar="${var}_@suffixSalt@"
- declare -gxi ${outputVar}+=0
+ declare -gxi "${outputVar}+=0"
for suffix in "${role_suffixes[@]}"; do
local inputVar="${var}${suffix}"
if [ -v "$inputVar" ]; then
@@ -131,7 +131,7 @@ expandResponseParams() {
}
checkLinkType() {
- local arg mode
+ local arg
type="dynamic"
for arg in "$@"; do
if [[ "$arg" = -static ]]; then
@@ -146,7 +146,7 @@ checkLinkType() {
# When building static-pie executables we cannot have rpath
# set. At least glibc requires rpath to be empty
filterRpathFlags() {
- local linkType=$1 ret="" i
+ local linkType=$1 ret i
shift
if [[ "$linkType" == "static-pie" ]]; then
@@ -156,11 +156,11 @@ filterRpathFlags() {
# also skip its argument
shift
else
- ret+="$i "
+ ret+=("$i")
fi
done
else
- ret=$@
+ ret=("$@")
fi
- echo $ret
+ echo "${ret[@]}"
}
diff --git a/third_party/nixpkgs/pkgs/build-support/writers/default.nix b/third_party/nixpkgs/pkgs/build-support/writers/default.nix
index 111ec68a60..3797df56af 100644
--- a/third_party/nixpkgs/pkgs/build-support/writers/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/writers/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, gawk, gnused, gixy }:
+{ pkgs, buildPackages, lib, stdenv, libiconv, 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}")
@@ -146,10 +150,13 @@ rec {
rustcArgs ? [],
strip ? true
}:
+ let
+ darwinArgs = lib.optionals stdenv.isDarwin [ "-L${lib.getLib libiconv}/lib" ];
+ in
makeBinWriter {
compileScript = ''
cp "$contentPath" tmp.rs
- PATH=${makeBinPath [pkgs.gcc]} ${lib.getBin rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} -o "$out" tmp.rs
+ PATH=${makeBinPath [pkgs.gcc]} ${lib.getBin rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} ${lib.escapeShellArgs darwinArgs} -o "$out" tmp.rs
'';
inherit strip;
} name;
@@ -233,9 +240,9 @@ rec {
then "${python}/bin/python"
else "${python.withPackages (ps: libraries)}/bin/python"
;
- check = writeDash "python2check.sh" ''
+ check = optionalString python.isPy3k (writeDash "pythoncheck.sh" ''
exec ${pythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
- '';
+ '');
} name;
# writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
diff --git a/third_party/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix b/third_party/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix
index 0b1cb34bb3..ed4389cad6 100644
--- a/third_party/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix b/third_party/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix
index 583f1ff99f..d38df8cf03 100644
--- a/third_party/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix b/third_party/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix
index 453125cc68..769f34348b 100644
--- a/third_party/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/arphic/default.nix b/third_party/nixpkgs/pkgs/data/fonts/arphic/default.nix
index 714af585d2..02e2a2de41 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/arphic/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix b/third_party/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
index b6a1a7a2c1..89547c23b8 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,13 +1,13 @@
{ lib, fetchzip }:
let
- version = "2108.26";
+ version = "2110.31";
in
fetchzip {
name = "cascadia-code-${version}";
url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
- sha256 = "1dvwn5rs4ss4rwd64namy8ccz8dagkk84qjg13sxxqizyd5y08h1";
+ sha256 = "sha256-SyPQtmudfogBwASTApl1hSpOPf2PLTSOzhJAJzrQ3Mg=";
postFetch = ''
mkdir -p $out/share/fonts/
@@ -18,6 +18,7 @@ fetchzip {
meta = with lib; {
description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
homepage = "https://github.com/microsoft/cascadia-code";
+ changelog = "https://github.com/microsoft/cascadia-code/raw/v${version}/FONTLOG.txt";
license = licenses.ofl;
maintainers = [ maintainers.marsam ];
platforms = platforms.all;
diff --git a/third_party/nixpkgs/pkgs/data/fonts/fira-code/default.nix b/third_party/nixpkgs/pkgs/data/fonts/fira-code/default.nix
index d5c5d0e000..f69cd89905 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/fira-code/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/fira-code/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "5.2";
+ version = "6";
in fetchzip {
name = "fira-code-${version}";
@@ -13,7 +13,7 @@ in fetchzip {
unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
'';
- sha256 = "1wbfjgvr9m5azl5w49y0hpqzgcraw6spd1wnxgxlzfx57x6gcw0k";
+ sha256 = "h2Q63rT26SxXeZ76CRCcFg+NfDAc0IgYaYD2ok09Jh4=";
meta = with lib; {
homepage = "https://github.com/tonsky/FiraCode";
diff --git a/third_party/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix b/third_party/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
index cd33a834ac..c24c507695 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh b/third_party/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
index a402f152d8..68f93f1f26 100755
--- a/third_party/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
+++ b/third_party/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
@@ -10,19 +10,19 @@ oldVersion=$(nix-instantiate --eval -E 'with import ../../../.. {}; lib.getVersi
version=$(echo "$release" | jq -r .tag_name | tr -d v)
if test "$oldVersion" = "$version"; then
- echo "New version same as old version, nothing to do." >&2
- exit 0
+ echo "New version same as old version, nothing to do." >&2
+ exit 0
fi
sed -i "s/$oldVersion/$version/" bin.nix
{
- echo '# This file was autogenerated. DO NOT EDIT!'
- echo '{'
- for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
- printf ' %s = "%s";\n' \
- $(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
- $(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
- done
- echo '}'
+ echo '# This file was autogenerated. DO NOT EDIT!'
+ echo '{'
+ for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
+ printf ' %s = "%s";\n' \
+ $(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
+ $(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
+ done
+ echo '}'
} >variants.nix
diff --git a/third_party/nixpkgs/pkgs/data/fonts/junicode/default.nix b/third_party/nixpkgs/pkgs/data/fonts/junicode/default.nix
index 19502cdf78..5f5ce1048c 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/junicode/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -1,22 +1,26 @@
-{ lib, fetchzip }:
+{ lib, fetchFromGitHub }:
let
pname = "junicode";
- version = "1.002";
-in fetchzip {
+ version = "1.003";
+in
+fetchFromGitHub {
name = "${pname}-${version}";
- url = "mirror://sourceforge/junicode/junicode/junicode-${version}/junicode-${version}.zip";
+ owner = "psb1558";
+ repo = "Junicode-font";
+ rev = "55d816d91a5e19795d9b66edec478379ee2b9ddb";
postFetch = ''
- mkdir -p $out/share/fonts
- unzip -j $downloadedFile \*.ttf -d $out/share/fonts/junicode-ttf
+ local out_ttf=$out/share/fonts/junicode-ttf
+ mkdir -p $out_ttf
+ tar -f $downloadedFile -C $out_ttf --wildcards -x '*.ttf' --strip=2
'';
- sha256 = "1n170gw41lr0zr5958z5cgpg6i1aa7kj7iq9s6gdh1cqq7hhgd08";
+ sha256 = "1v334gljmidh58kmrarz5pf348b0ac7vh25f1xs3gyvn78khh5nw";
meta = {
- homepage = "http://junicode.sourceforge.net/";
+ homepage = "https://github.com/psb1558/Junicode-font";
description = "A Unicode font for medievalists";
maintainers = with lib.maintainers; [ ivan-timokhin ];
license = lib.licenses.ofl;
diff --git a/third_party/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix b/third_party/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
index 305bd69f2d..4d56af449c 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "meslo-lgs-nf";
- version = "2020-03-22";
+ version = "2021-09-03";
src = fetchFromGitHub {
owner = "romkatv";
repo = "powerlevel10k-media";
- rev = "32c7d40239c93507277f14522be90b5750f442c9";
- sha256 = "10hq4whai1rqj495w4n80p0y21am8rihm4rc40xq7241d6dzilrd";
+ rev = "389133fb8c9a2347929a23702ce3039aacc46c3d";
+ sha256 = "sha256-dWqRxjqsa/Tiv0Ww8VLHRDhftD3eqa1t2/T0irFeMFI=";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
index 27e414b12e..88c17e8f4a 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -110,20 +110,25 @@ in
};
noto-fonts-emoji = let
- version = "2.028";
+ version = "2.034";
emojiPythonEnv =
python3.withPackages (p: with p; [ fonttools nototools ]);
in stdenv.mkDerivation {
pname = "noto-fonts-emoji";
- version = builtins.replaceStrings [ "_" ] [ "." ] version;
+ inherit version;
src = fetchFromGitHub {
owner = "googlefonts";
repo = "noto-emoji";
rev = "v${version}";
- sha256 = "0dy7px7wfl6bqkfzz82jm4gvbjp338ddsx0mwfl6m7z48l7ng4v6";
+ sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
};
+ makeFlags = [
+ # TODO(@sternenseemann): remove if afdko is new enough to know about Unicode 14.0
+ "BYPASS_SEQUENCE_CHECK=True"
+ ];
+
nativeBuildInputs = [
cairo
imagemagick
@@ -166,31 +171,32 @@ in
homepage = "https://github.com/googlefonts/noto-emoji";
license = with licenses; [ ofl asl20 ];
platforms = platforms.all;
- maintainers = with maintainers; [ mathnerd314 ];
+ maintainers = with maintainers; [ mathnerd314 sternenseemann ];
};
};
- noto-fonts-emoji-blob-bin = stdenv.mkDerivation rec {
- pname = "noto-fonts-emoji-blob-bin";
- version = "2019-06-14-Emoji-12";
-
- src = fetchurl {
+ noto-fonts-emoji-blob-bin =
+ let
+ pname = "noto-fonts-emoji-blob-bin";
+ version = "14.0.1";
+ in
+ fetchurl {
+ name = "${pname}-${version}";
url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
- sha256 = "0snvymglmvpnfgsriw2cnnqm0f4llav0jvzir6mpd17mqqhhabbh";
+ sha256 = "sha256-wSH9kRJ8y2i5ZDqzeT96dJcEJnHDSpU8bOhmxaT+UCg=";
+
+ downloadToTemp = true;
+ recursiveHash = true;
+ postFetch = ''
+ install -Dm 444 $downloadedFile $out/share/fonts/blobmoji/Blobmoji.ttf
+ '';
+
+ meta = with lib; {
+ description = "Noto Emoji with extended Blob support";
+ homepage = "https://github.com/C1710/blobmoji";
+ license = with licenses; [ ofl asl20 ];
+ platforms = platforms.all;
+ maintainers = with maintainers; [ rileyinman jk ];
+ };
};
-
- dontUnpack = true;
-
- installPhase = ''
- install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf
- '';
-
- meta = with lib; {
- description = "Noto Emoji with extended Blob support";
- homepage = "https://github.com/C1710/blobmoji";
- license = with licenses; [ ofl asl20 ];
- platforms = platforms.all;
- maintainers = with maintainers; [ rileyinman ];
- };
- };
}
diff --git a/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
index 791aa6534d..7d850ef716 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -7,7 +7,7 @@
buildPythonPackage rec {
pname = "nototools";
- version = "0.2.13";
+ version = "0.2.16";
disabled = pythonOlder "3.6";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
owner = "googlefonts";
repo = "nototools";
rev = "v${version}";
- sha256 = "0ggp65xgkf9y7jamncm65lkm84wapsa47abf133pcb702875v8jz";
+ sha256 = "14rrdamkmhrykff8ln07fq9cm8zwj3k113lzwjcy0lgz23g51jyl";
};
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/data/fonts/public-sans/default.nix b/third_party/nixpkgs/pkgs/data/fonts/public-sans/default.nix
index 7d7a81ec7e..88da0cb5d5 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/public-sans/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/recursive/default.nix b/third_party/nixpkgs/pkgs/data/fonts/recursive/default.nix
index a1d99c33b8..142f84ba7d 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/recursive/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "1.082";
+ version = "1.084";
in
fetchzip {
name = "recursive-${version}";
@@ -14,7 +14,7 @@ fetchzip {
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "1hjyjvzhfgqw58py4gk58fwyp5pxr3j8j76ppj6apg4dndfhs0lp";
+ sha256 = "sha256-YL09RVU9pgP0/aGRKECHzd5t1VmNDPtOFcRygWqIisg=";
meta = with lib; {
homepage = "https://recursive.design/";
diff --git a/third_party/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/third_party/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
index 5bc691e724..00caa09a00 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix b/third_party/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
index 5960e4fb6e..7f12fee506 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/sudo/default.nix b/third_party/nixpkgs/pkgs/data/fonts/sudo/default.nix
index 2cb310109b..e0bc42f8d1 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
{ lib, fetchzip }:
let
- version = "0.60";
+ version = "0.61";
in fetchzip {
name = "sudo-font-${version}";
url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
- sha256 = "1zhl9yhx0dzkzc31i60lmcrizq8f3rkc7dbng5fal6iy8dwhnkmg";
+ sha256 = "sha256-4GDlx2zhwkcsxJPq0IrS1owmw+RKy09X3Q0zzA9l79w=";
postFetch = ''
mkdir -p $out/share/fonts/
diff --git a/third_party/nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch b/third_party/nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch
new file mode 100644
index 0000000000..6154b80147
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/terminus-font/default.nix b/third_party/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
index fca357706a..9ccf0371f1 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/third_party/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
index d34ebaf6d8..4733bcf04e 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -1,12 +1,12 @@
{ lib, fetchzip }:
let
- version = "2.0";
+ version = "2.2";
in
fetchzip {
name = "ultimate-oldschool-pc-font-pack-${version}";
- url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_ttf.zip";
- sha256 = "0z0fw6ni7iq806y4m83xrfx46r14xxxql09ch2gxjqi062awqyh8";
+ url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_linux.zip";
+ sha256 = "sha256-BOA2fMa2KT3Bkpvj/0DzrzuZbl3RARvNn4qbI/+dApU=";
postFetch= ''
mkdir -p $out/share/fonts/truetype
diff --git a/third_party/nixpkgs/pkgs/data/fonts/victor-mono/default.nix b/third_party/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
index 940c0d76c4..17ad7e23e8 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -1,14 +1,10 @@
-{ lib, fetchFromGitHub }:
+{ lib, fetchzip }:
let
- pname = "victor-mono";
- version = "1.4.1";
-in fetchFromGitHub rec {
- name = "${pname}-${version}";
-
- owner = "rubjo";
- repo = pname;
- rev = "v${version}";
+ version = "1.5.0";
+in
+fetchzip {
+ name = "victor-mono-${version}";
# Upstream prefers we download from the website,
# but we really insist on a more versioned resource.
@@ -17,23 +13,21 @@ in fetchFromGitHub rec {
# so we extract it from the tagged release.
# Both methods produce the same file, but this way
# we can safely reason about what version it is.
+ url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
+
postFetch = ''
- tar xvf $downloadedFile --strip-components=2 ${pname}-${version}/public/VictorMonoAll.zip
-
- mkdir -p $out/share/fonts/{true,open}type/${pname}
-
- unzip -j VictorMonoAll.zip \*.ttf -d $out/share/fonts/truetype/${pname}
- unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
+ mkdir -p $out/share/fonts/
+ unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+ unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "1g3jjrqd2fiw2hdifhff2fn20p5a0xfma3964f67ibdyri976zq5";
+ sha256 = "1x3dnkq8awn5zniywap78qwp5nxmf14bq8snzsywk70ah0jmbawi";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";
homepage = "https://rubjo.github.io/victor-mono";
- license = with licenses; [ mit ];
+ license = licenses.ofl;
maintainers = with maintainers; [ jpotier dtzWill ];
platforms = platforms.all;
};
}
-
diff --git a/third_party/nixpkgs/pkgs/data/fonts/vista-fonts-cht/default.nix b/third_party/nixpkgs/pkgs/data/fonts/vista-fonts-cht/default.nix
index 264d5a41bf..78271e2f1e 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/vista-fonts-cht/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/vista-fonts-cht/default.nix
@@ -5,7 +5,7 @@ stdenvNoCC.mkDerivation {
version = "1";
src = fetchurl {
- url = https://download.microsoft.com/download/7/6/b/76bd7a77-be02-47f3-8472-fa1de7eda62f/VistaFont_CHT.EXE;
+ url = "https://download.microsoft.com/download/7/6/b/76bd7a77-be02-47f3-8472-fa1de7eda62f/VistaFont_CHT.EXE";
sha256 = "sha256-fSnbbxlMPzbhFSQyKxQaS5paiWji8njK7tS8Eppsj6g=";
};
diff --git a/third_party/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix b/third_party/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
index ca2ae302b3..fa8308b8c9 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
@@ -14,11 +14,12 @@ stdenvNoCC.mkDerivation {
unpackPhase = ''
cabextract --lowercase --filter ppviewer.cab $src
cabextract --lowercase --filter '*.TTF' ppviewer.cab
+ cabextract --lowercase --filter '*.TTC' ppviewer.cab
'';
installPhase = ''
mkdir -p $out/share/fonts/truetype
- cp *.ttf $out/share/fonts/truetype
+ cp *.ttf *.ttc $out/share/fonts/truetype
# Set up no-op font configs to override any aliases set up by
# other packages.
diff --git a/third_party/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
index 743bcba54d..69e18beec3 100644
--- a/third_party/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub , gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "flat-remix-icon-theme";
- version = "20200710";
+ version = "20211106";
- src = fetchFromGitHub {
+ src = fetchFromGitHub {
owner = "daniruiz";
repo = "flat-remix";
rev = version;
- sha256 = "0rlrmgimvs9rrj64g5jn04jgyi7wmn2dnsk7ckmxk6p8cdfjd0hx";
+ sha256 = "1dlz88bg764zzd0s3yqci4m1awhwdrrql9l9plsjjzgdx9r7ndmf";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
index 5c8f3d15b6..89fd80c468 100644
--- a/third_party/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix
new file mode 100644
index 0000000000..b7febabacd
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, breeze-icons
+, elementary-icon-theme
+, gnome-icon-theme
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+ pname = "la-capitaine-icon-theme";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "keeferrourke";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0id2dddx6rl71472l47vafx968wnklmq6b980br68w82kcvqczzs";
+ };
+
+ propagatedBuildInputs = [
+ breeze-icons
+ elementary-icon-theme
+ gnome-icon-theme
+ hicolor-icon-theme
+ ];
+
+ dontDropIconThemeCache = true;
+
+ postPatch = ''
+ patchShebangs configure
+
+ substituteInPlace configure \
+ --replace 'DISTRO=$(format "$(lsb_release -si 2>/dev/null)")' 'DISTRO=nixos'
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/share/icons/$pname
+ cp -a * $out/share/icons/$pname
+ rm $out/share/icons/$pname/{configure,COPYING,LICENSE,*.md}
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Icon theme inspired by macOS and Google's Material Design";
+ homepage = "https://github.com/keeferrourke/la-capitaine-icon-theme";
+ license = with licenses; [ gpl3Plus mit ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
index 5e67fdc9cc..04e1bce127 100644
--- a/third_party/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme, hicolor-icon-theme, jdupes }:
stdenv.mkDerivation rec {
pname = "moka-icon-theme";
- version = "5.4.0";
+ version = "unstable-2019-05-29";
src = fetchFromGitHub {
owner = "snwh";
repo = pname;
- rev = "v${version}";
- sha256 = "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd";
+ rev = "c0355ea31e5cfdb6b44d8108f602d66817546a09";
+ sha256 = "0m4kfarkl94wdhsds2q1l9x5hfa9l3117l8j6j7qm7sf7yzr90c8";
};
nativeBuildInputs = [
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
ninja
gtk3
python3
+ jdupes
];
propagatedBuildInputs = [
@@ -25,14 +26,23 @@ stdenv.mkDerivation rec {
dontDropIconThemeCache = true;
+ # These fixup steps are slow and unnecessary for this package
+ dontPatchELF = true;
+ dontRewriteSymlinks = true;
+
postPatch = ''
patchShebangs meson/post_install.py
'';
+ postInstall = ''
+ # replace duplicate files with symlinks
+ jdupes -l -r $out/share/icons
+ '';
+
meta = with lib; {
- description = "An icon theme designed with a minimal flat style using simple geometry and bright colours";
+ description = "Icon theme designed with a minimal flat style using simple geometry and bright colours";
homepage = "https://snwh.org/moka";
- license = with licenses; [ cc-by-sa-40 gpl3 ];
+ license = with licenses; [ cc-by-sa-40 gpl3Only ];
# darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ romildo ];
diff --git a/third_party/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
index 377cf05ac1..e7f0905ff4 100644
--- a/third_party/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
@@ -1,28 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, inkscape, xcursorgen }:
+{ lib, stdenv, fetchFromGitHub, inkscape, xcursorgen }:
stdenv.mkDerivation rec {
- version = "1.1";
- package-name = "numix-cursor-theme";
- name = "${package-name}-${version}";
+ pname = "numix-cursor-theme";
+ version = "1.2";
src = fetchFromGitHub {
owner = "numixproject";
- repo = package-name;
+ repo = pname;
rev = "v${version}";
- sha256 = "0p8h48wsy3z5dz9vdnp01fpn6q8ky0h74l5qgixlip557bsa1spi";
+ sha256 = "1q3w5i0h3ly6i7s9pqjdrb14kp89i78s0havri7lhiqyxizjvcvh";
};
nativeBuildInputs = [ inkscape xcursorgen ];
- patches = [
- # Remove when https://github.com/numixproject/numix-cursor-theme/pull/7 is merged
- (fetchpatch {
- url = "https://github.com/stephaneyfx/numix-cursor-theme/commit/3b647bf768cebb8f127b88e3786f6a9640460197.patch";
- sha256 = "174kmhlvv76wwvndkys78aqc32051sqg3wzc0xg6b7by4agrbg76";
- name = "support-inkscape-1-in-numix-cursor-theme.patch";
- })
- ];
-
buildPhase = ''
patchShebangs .
HOME=$TMP ./build.sh
diff --git a/third_party/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
index 194a36021a..c46cc0a6ec 100644
--- a/third_party/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
index a8eb1a8736..fc541f6e5b 100644
--- a/third_party/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
@@ -1,21 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, gnome, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, gnome, gnome-icon-theme, hicolor-icon-theme, jdupes }:
stdenv.mkDerivation rec {
pname = "paper-icon-theme";
- version = "2018-06-24";
+ version = "unstable-2020-03-12";
src = fetchFromGitHub {
owner = "snwh";
repo = pname;
- rev = "c7cd013fba06dd8fd5cdff9f885520e2923266b8";
- sha256 = "0x45zkjnmbz904df63ph06npbm3phpgck4xwyymx8r8jgrfplk6v";
+ rev = "aa3e8af7a1f0831a51fd7e638a4acb077a1e5188";
+ sha256 = "0x6qzch4rrc8firb1dcf926j93gpqxvd7h6dj5wwczxbvxi5bd77";
};
nativeBuildInputs = [
meson
ninja
gtk3
- python3
+ jdupes
];
propagatedBuildInputs = [
@@ -26,13 +26,16 @@ stdenv.mkDerivation rec {
dontDropIconThemeCache = true;
- postPatch = ''
- patchShebangs meson/post_install.py
- '';
+ # These fixup steps are slow and unnecessary for this package
+ dontPatchELF = true;
+ dontRewriteSymlinks = true;
postInstall = ''
# The cache for Paper-Mono-Dark is missing
gtk-update-icon-cache "$out"/share/icons/Paper-Mono-Dark;
+
+ # replace duplicate files with symlinks
+ jdupes -l -r $out/share/icons
'';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
index 1bcfab57b4..7254e8bc21 100644
--- a/third_party/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
@@ -1,23 +1,22 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, meson
, ninja
, gtk3
-, breeze-icons
-, gnome
-, pantheon
+, adwaita-icon-theme
, hicolor-icon-theme
}:
stdenv.mkDerivation rec {
pname = "pop-icon-theme";
- version = "2020-03-04";
+ version = "2021-11-17";
src = fetchFromGitHub {
owner = "pop-os";
repo = "icon-theme";
- rev = "11f18cb48455b47b6535018f1968777100471be1";
- sha256 = "1s4pjwv2ynw400gnzgzczlxzw3gxh5s8cxxbi9zpxq4wzjg6jqyv";
+ rev = "9998b20b78f3ff65ecbf2253bb863d1e669abe74";
+ sha256 = "0lwdmaxs9xj4bm21ldh64bzyb6iz5d5k1256iwvyjp725l7686cl";
};
nativeBuildInputs = [
@@ -27,9 +26,7 @@ stdenv.mkDerivation rec {
];
propagatedBuildInputs = [
- breeze-icons
- gnome.adwaita-icon-theme
- pantheon.elementary-icon-theme
+ adwaita-icon-theme
hicolor-icon-theme
];
@@ -39,7 +36,7 @@ stdenv.mkDerivation rec {
description = "Icon theme for Pop!_OS with a semi-flat design and raised 3D motifs";
homepage = "https://github.com/pop-os/icon-theme";
license = with licenses; [ cc-by-sa-40 gpl3 ];
- platforms = platforms.unix;
+ platforms = platforms.linux; # hash mismatch on darwin due to file names differing only in case
maintainers = with maintainers; [ romildo ];
};
}
diff --git a/third_party/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
index 31745f9b2f..6140256519 100644
--- a/third_party/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
+++ b/third_party/nixpkgs/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 ];
@@ -36,7 +36,8 @@ stdenvNoCC.mkDerivation rec {
description = "A flat colorful Design icon theme";
homepage = "https://github.com/vinceliuice/tela-icon-theme";
license = licenses.gpl3Only;
- platforms = platforms.unix;
+ # darwin systems use case-insensitive filesystems that cause hash mismatches
+ platforms = subtractLists platforms.darwin platforms.unix;
maintainers = with maintainers; [ figsoda ];
};
}
diff --git a/third_party/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
new file mode 100644
index 0000000000..502a8023c9
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes }:
+
+stdenv.mkDerivation rec {
+ pname = "vimix-icon-theme";
+ version = "2021-11-09";
+
+ src = fetchFromGitHub {
+ owner = "vinceliuice";
+ repo = pname;
+ rev = version;
+ sha256 = "1ali128027yw5kllip7p32c92pby5gaqs0i393m3bp69547np1d4";
+ };
+
+ nativeBuildInputs = [ gtk3 jdupes ];
+
+ propagatedBuildInputs = [ hicolor-icon-theme ];
+
+ dontDropIconThemeCache = true;
+
+ # These fixup steps are slow and unnecessary for this package
+ dontPatchELF = true;
+ dontRewriteSymlinks = true;
+
+ installPhase = ''
+ runHook preInstall
+ patchShebangs install.sh
+ ./install.sh -a -d $out/share/icons
+ # replace duplicate files with symlinks
+ jdupes -l -r $out/share/icons
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "A Material Design icon theme based on Paper icon theme";
+ homepage = "https://github.com/vinceliuice/vimix-icon-theme";
+ license = with licenses; [ cc-by-sa-40 ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix b/third_party/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
index 27695f3cbd..27465b828a 100644
--- a/third_party/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "Whitesur-icon-theme";
- version = "2021-08-26";
+ version = "2021-11-08";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "O7nb6X20HvnzldijP/fXqAs/2qE5JUg3DEMb84ZMQp4=";
+ sha256 = "LZ0GLJFUUvzsPhU2sBkfy5mPpQHuPzYhbumwFKnogoA=";
};
nativeBuildInputs = [ gtk3 ];
diff --git a/third_party/nixpkgs/pkgs/data/misc/cacert/default.nix b/third_party/nixpkgs/pkgs/data/misc/cacert/default.nix
index bd67e2a58f..49645ee800 100644
--- a/third_party/nixpkgs/pkgs/data/misc/cacert/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -1,126 +1,27 @@
{ lib
, stdenv
+, writeText
, fetchurl
-, nss
-, python3
-, blacklist ? [ ]
+, buildcatrust
+, blacklist ? []
+, extraCertificateFiles ? []
+, extraCertificateStrings ? []
- # Used for tests only
+# Used by update.sh
+, nssOverride ? null
+
+# Used for tests only
, runCommand
, cacert
, openssl
}:
let
- certdata2pem = fetchurl {
- name = "certdata2pem.py";
- urls = [
- "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py"
- "https://git.launchpad.net/ubuntu/+source/ca-certificates/plain/mozilla/certdata2pem.py?id=47e49e1e0a8a1ca74deda27f88fe181191562957"
- ];
- sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
- };
-in
-
-stdenv.mkDerivation rec {
- pname = "nss-cacert";
- version = "3.66";
-
- src = fetchurl {
- url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
- sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
- };
-
- outputs = [ "out" "unbundled" ];
-
- nativeBuildInputs = [ python3 ];
-
- configurePhase = ''
- ln -s nss/lib/ckfw/builtins/certdata.txt
-
- cat << EOF > blacklist.txt
- ${lib.concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
- EOF
-
- # copy from the store, otherwise python will scan it for imports
- cat "${certdata2pem}" > certdata2pem.py
- '';
-
- buildPhase = ''
- python certdata2pem.py | grep -vE '^(!|UNTRUSTED)'
-
- for cert in *.crt; do
- echo $cert | cut -d. -f1 | sed -e 's,_, ,g' >> ca-bundle.crt
- cat $cert >> ca-bundle.crt
- echo >> ca-bundle.crt
- done
- '';
-
- installPhase = ''
- mkdir -pv $out/etc/ssl/certs
- cp -v ca-bundle.crt $out/etc/ssl/certs
- # install individual certs in unbundled output
- mkdir -pv $unbundled/etc/ssl/certs
- cp -v *.crt $unbundled/etc/ssl/certs
- rm $unbundled/etc/ssl/certs/ca-bundle.crt # not wanted in unbundled
- '';
-
- setupHook = ./setup-hook.sh;
-
- passthru = {
- updateScript = ./update.sh;
- tests = {
- # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
- blacklist-utf8 =
- let
- blacklistCAToFingerprint = {
- # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
- "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
- "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
- };
- mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint);
- in
- runCommand "verify-the-cacert-filter-output"
- {
- cacert = cacert.unbundled;
- cacertWithExcludes = (cacert.override {
- blacklist = builtins.attrNames blacklistCAToFingerprint;
- }).unbundled;
-
- nativeBuildInputs = [ openssl ];
- } ''
- isPresent() {
- # isPresent
- for f in $1/etc/ssl/certs/*.crt; do
- fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
- if [[ "x$fingerprint" == "x$3" ]]; then
- return 0
- fi
- done
- return 1
- }
-
- # Ensure that each certificate is in the main "cacert".
- ${mapBlacklist (caName: caFingerprint: ''
- isPresent "$cacert" "${caName}" "${caFingerprint}" || ({
- echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
- exit 1
- })
- '')}
-
- # Ensure that each certificate is NOT in the "cacertWithExcludes".
- ${mapBlacklist (caName: caFingerprint: ''
- isPresent "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
- echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
- exit 1
- })
- '')}
-
- touch $out
- '';
- };
- };
+ blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
+ extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
+ srcVersion = "3.71";
+ version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html";
description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
@@ -128,4 +29,179 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ andir fpletz lukegb ];
license = licenses.mpl20;
};
+ certdata = stdenv.mkDerivation {
+ pname = "nss-cacert-certdata";
+ inherit version;
+
+ src = if nssOverride != null then nssOverride.src else fetchurl {
+ url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
+ sha256 = "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir $out
+ cp nss/lib/ckfw/builtins/certdata.txt $out
+
+ runHook postInstall
+ '';
+
+ inherit meta;
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "nss-cacert";
+ inherit version;
+
+ src = certdata;
+
+ outputs = [ "out" "unbundled" "p11kit" ];
+
+ nativeBuildInputs = [ buildcatrust ];
+
+ buildPhase = ''
+ mkdir unbundled
+ buildcatrust \
+ --certdata_input certdata.txt \
+ --ca_bundle_input "${extraCertificatesBundle}" ${lib.escapeShellArgs (map (arg: "${arg}") extraCertificateFiles)} \
+ --blocklist "${blocklist}" \
+ --ca_bundle_output ca-bundle.crt \
+ --ca_unpacked_output unbundled \
+ --p11kit_output ca-bundle.trust.p11-kit
+ '';
+
+ installPhase = ''
+ install -D -t "$out/etc/ssl/certs" ca-bundle.crt
+
+ # install p11-kit specific output to p11kit output
+ install -D -t "$p11kit/etc/ssl/trust-source" ca-bundle.trust.p11-kit
+
+ # install individual certs in unbundled output
+ install -D -t "$unbundled/etc/ssl/certs" unbundled/*.crt
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ passthru = {
+ updateScript = ./update.sh;
+ tests = let
+ isTrusted = ''
+ isTrusted() {
+ # isTrusted
+ for f in $1/etc/ssl/certs/*.crt; do
+ if ! [[ -s "$f" ]]; then continue; fi
+ fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
+ if [[ "x$fingerprint" == "x$3" ]]; then
+ # If the certificate is treated as rejected for TLS Web Server, then we consider it untrusted.
+ if openssl x509 -in "$f" -noout -text | grep -q '^Rejected Uses:'; then
+ if openssl x509 -in "$f" -noout -text | grep -A1 '^Rejected Uses:' | grep -q 'TLS Web Server'; then
+ return 1
+ fi
+ fi
+ return 0
+ fi
+ done
+ return 1
+ }
+ '';
+ in {
+ # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
+ blacklist-utf8 = let
+ blacklistCAToFingerprint = {
+ # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
+ "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
+ "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
+ };
+ mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint);
+ in runCommand "verify-the-cacert-filter-output" {
+ cacert = cacert.unbundled;
+ cacertWithExcludes = (cacert.override {
+ blacklist = builtins.attrNames blacklistCAToFingerprint;
+ }).unbundled;
+
+ nativeBuildInputs = [ openssl ];
+ } ''
+ ${isTrusted}
+
+ # Ensure that each certificate is in the main "cacert".
+ ${mapBlacklist (caName: caFingerprint: ''
+ isTrusted "$cacert" "${caName}" "${caFingerprint}" || ({
+ echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
+ exit 1
+ })
+ '')}
+
+ # Ensure that each certificate is NOT in the "cacertWithExcludes".
+ ${mapBlacklist (caName: caFingerprint: ''
+ isTrusted "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
+ echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
+ exit 1
+ })
+ '')}
+
+ touch "$out"
+ '';
+
+ # Test that we can add additional certificates to the store, and have them be trusted.
+ extra-certificates = let
+ extraCertificateStr = ''
+ -----BEGIN CERTIFICATE-----
+ MIIB5DCCAWqgAwIBAgIUItvsAYEIdYDkOIo5sdDYMcUaNuIwCgYIKoZIzj0EAwIw
+ KTEnMCUGA1UEAwweTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlMB4XDTIx
+ MDYxMjE5MDQzMFoXDTIyMDYxMjE5MDQzMFowKTEnMCUGA1UEAwweTml4T1MgY2Fj
+ ZXJ0IGV4dHJhIGNlcnRpZmljYXRlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuP8y
+ lAm6ZyQt9v/P6gTlV/a9R+D61WjucW04kaegOhg8csiluimYodiSv0Pbgymu+Zxm
+ A3Bz9QGmytaYTiJ16083rJkwwIhqoYl7kWsLzreSTaLz87KH+rdeol59+H0Oo1Mw
+ UTAdBgNVHQ4EFgQUCxuHfvqI4YVU5M+A0+aKvd1LrdswHwYDVR0jBBgwFoAUCxuH
+ fvqI4YVU5M+A0+aKvd1LrdswDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNo
+ ADBlAjEArgxgjdNmRlSEuai0dzlktmBEDZKy2Iiul+ttSoce9ohfEVYESwO602HW
+ keVvI56vAjBCro3dc3m2TuktiKO6lQV56PUEyxko4H/sR5pnHlduCGRDlFzQKXf/
+ pMMmtj7cVb8=
+ -----END CERTIFICATE-----
+ '';
+ extraCertificateFile = ./test-cert-file.crt;
+ extraCertificatesToFingerprint = {
+ # String above
+ "NixOS cacert extra certificate string" = "A3:20:D0:84:96:97:25:FF:98:B8:A9:6D:A3:7C:89:95:6E:7A:77:21:92:F3:33:E9:31:AF:5E:03:CE:A9:E5:EE";
+
+ # File
+ "NixOS cacert extra certificate file" = "88:B8:BE:A7:57:AC:F1:FE:D6:98:8B:50:E0:BD:0A:AE:88:C7:DF:70:26:E1:67:5E:F5:F6:91:27:FF:02:D4:A5";
+ };
+ mapExtra = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f extraCertificatesToFingerprint);
+ in runCommand "verify-the-cacert-extra-output" {
+ cacert = cacert.unbundled;
+ cacertWithExtras = (cacert.override {
+ extraCertificateStrings = [ extraCertificateStr ];
+ extraCertificateFiles = [ extraCertificateFile ];
+ }).unbundled;
+
+ nativeBuildInputs = [ openssl ];
+ } ''
+ ${isTrusted}
+
+ # Ensure that the extra certificate is not in the main "cacert".
+ ${mapExtra (extraName: extraFingerprint: ''
+ isTrusted "$cacert" "${extraName}" "${extraFingerprint}" && ({
+ echo "'extra' CA fingerprint ${extraFingerprint} (${extraName}) is present in the main CA bundle." >&2
+ exit 1
+ })
+ '')}
+
+ # Ensure that the extra certificates ARE in the "cacertWithExtras".
+ ${mapExtra (extraName: extraFingerprint: ''
+ isTrusted "$cacertWithExtras" "${extraName}" "${extraFingerprint}" || ({
+ echo "CA fingerprint ${extraFingerprint} (${extraName}) is not present in the cacertWithExtras bundle." >&2
+ exit 1
+ })
+ '')}
+
+ touch "$out"
+ '';
+ };
+ };
+
+ inherit meta;
}
diff --git a/third_party/nixpkgs/pkgs/data/misc/cacert/test-cert-file.crt b/third_party/nixpkgs/pkgs/data/misc/cacert/test-cert-file.crt
new file mode 100644
index 0000000000..095f38817d
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/misc/cacert/update.sh b/third_party/nixpkgs/pkgs/data/misc/cacert/update.sh
index 1c286dc620..72d581b965 100755
--- a/third_party/nixpkgs/pkgs/data/misc/cacert/update.sh
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix b/third_party/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
index cabc28a89c..1f5c4d57f7 100644
--- a/third_party/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
@@ -1,14 +1,12 @@
{ lib, stdenv
, fetchurl
-, python2
+, python3
}:
stdenv.mkDerivation rec {
pname = "conway_polynomials";
version = "0.5";
- pythonEnv = python2.withPackages (ps: with ps; [ six ]);
-
src = fetchurl {
url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
@@ -16,8 +14,8 @@ stdenv.mkDerivation rec {
# Script that creates the "database" (nested python array) and pickles it
spkg-install = fetchurl {
- url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
- sha256 = "0m12nfb37j3bn4bp06ddgnyp2d6z0hg5f83pbbjszxw7vxs33a82";
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=9.2";
+ sha256 = "1bwnqasnyv793hxg29viing4dnliz29grkhldsirq19d509yk1fs";
};
installPhase = ''
@@ -31,7 +29,7 @@ stdenv.mkDerivation rec {
export SAGE_SHARE="$out/share"
export PYTHONPATH=$PWD
- ${pythonEnv.interpreter} ${spkg-install}
+ ${python3.interpreter} ${spkg-install}
'';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix b/third_party/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
index beccf9dc77..c8a76b9836 100644
--- a/third_party/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "ddccontrol-db";
- version = "20210804";
+ version = "20210812";
src = fetchFromGitHub {
owner = "ddccontrol";
repo = "ddccontrol-db";
rev = version;
- sha256 = "sha256-+PTw4bDJhWyuEae5ShkIL/KvQ29+gU46iE2RdtTWb8M=";
+ sha256 = "sha256-dRqyjDC9yNkNOnYQ9fkWPlnyzSqIZ4zxZ2T7t8Bu9FE=";
};
preConfigure = ''
diff --git a/third_party/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix b/third_party/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
index 9825940002..daa017a681 100644
--- a/third_party/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv
, fetchurl
-, python2
+, python3
}:
stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
export SAGE_SHARE="$out/share"
export PYTHONPATH=$PWD
- ${python2.interpreter} ${spkg-install}
+ ${python3.interpreter} ${spkg-install}
'';
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh b/third_party/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
index 683b2e8606..0bb61d863e 100644
--- a/third_party/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
+++ b/third_party/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
@@ -5,13 +5,13 @@ cd $out/share/GeoIP
# Iterate over all environment variable names beginning with "src":
for var in "${!src@}"; do
- # Store the value of the variable with name $var in $src:
- eval src="\$$var"
+ # Store the value of the variable with name $var in $src:
+ eval src="\$$var"
- # Copy $src to current directory, removing Nix hash from the filename:
- dest="${src##*/}"
- dest="${dest#*-}"
- cp "$src" "$dest"
+ # Copy $src to current directory, removing Nix hash from the filename:
+ dest="${src##*/}"
+ dest="${dest#*-}"
+ cp "$src" "$dest"
done
gzip -dv *.gz
diff --git a/third_party/nixpkgs/pkgs/data/misc/hackage/pin.json b/third_party/nixpkgs/pkgs/data/misc/hackage/pin.json
index fb0b6cd615..01dc7dbd19 100644
--- a/third_party/nixpkgs/pkgs/data/misc/hackage/pin.json
+++ b/third_party/nixpkgs/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
{
- "commit": "b60d5f4b773d16857c105718faad9699e145edcd",
- "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/b60d5f4b773d16857c105718faad9699e145edcd.tar.gz",
- "sha256": "19avxynbjhkhvjy5kcxgd3fp0b2nczsk213s1za488r6kksj90f5",
- "msg": "Update from Hackage at 2021-10-18T14:27:09Z"
+ "commit": "d859530d8342c52d09a73d1d125c144725b5945d",
+ "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/d859530d8342c52d09a73d1d125c144725b5945d.tar.gz",
+ "sha256": "0gjahsqqq99dc4bjcx9p3z8adpwy51w3mzrf57nib856jlvlfmv5",
+ "msg": "Update from Hackage at 2021-12-02T21:05:02Z"
}
diff --git a/third_party/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix b/third_party/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
index ca79e251f2..db74b74f22 100644
--- a/third_party/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
@@ -2,13 +2,13 @@
let
pname = "publicsuffix-list";
- version = "2019-05-24";
+ version = "2021-09-03";
in fetchFromGitHub {
name = "${pname}-${version}";
owner = "publicsuffix";
repo = "list";
- rev = "a1db0e898956e126de65be1a5e977fbbbbeebe33";
- sha256 = "092153w2jr7nx28p9wc9k6b5azi9c39ghnqfnfiwfzv1j8jm3znq";
+ rev = "2533d032871e1ef1f410fc0754b848d4587c8021";
+ sha256 = "sha256-Q8uIXM1CMu8dlWcVoL17M1XRGu3kG7Y7jpx0oHQh+2I=";
postFetch = ''
tar xf $downloadedFile --strip=1
diff --git a/third_party/nixpkgs/pkgs/data/misc/rime-data/default.nix b/third_party/nixpkgs/pkgs/data/misc/rime-data/default.nix
index 371a07d3ec..fbf65bc12a 100644
--- a/third_party/nixpkgs/pkgs/data/misc/rime-data/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/rime-data/default.nix
@@ -61,6 +61,6 @@ stdenv.mkDerivation {
# rime-cantonese
cc-by-40
];
- maintainers = [ maintainers.pengmeiyu ];
+ maintainers = with maintainers; [ pmy ];
};
}
diff --git a/third_party/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/third_party/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
index 939acc96ce..f7f5f64bfd 100644
--- a/third_party/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "spdx-license-list-data";
- version = "3.14";
+ version = "3.15";
src = fetchFromGitHub {
owner = "spdx";
repo = "license-list-data";
rev = "v${version}";
- sha256 = "07fl31732bvcmm93fqrpa7pfq5ynxc1fpd8n9w2iah39lyz49sjm";
+ sha256 = "0r88j00shmhayfq8avswaxsaj1my1vq540rg0srma29862vrjpfk";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/data/misc/tzdata/default.nix b/third_party/nixpkgs/pkgs/data/misc/tzdata/default.nix
index aa3d9e787b..fddd1aec61 100644
--- a/third_party/nixpkgs/pkgs/data/misc/tzdata/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix b/third_party/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
new file mode 100644
index 0000000000..c0a41a39cd
--- /dev/null
+++ b/third_party/nixpkgs/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 = "20211119143108";
+ src = fetchFromGitHub {
+ owner = "v2fly";
+ repo = "domain-list-community";
+ rev = version;
+ sha256 = "sha256-CJMINkutaUI/Eka0OJTjeG3weTMYaNKdB2BWOxFgI3s=";
+ };
+ 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/third_party/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix b/third_party/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
index d23733fb03..2a729c7aa2 100644
--- a/third_party/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
+++ b/third_party/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "wireless-regdb";
- version = "2021.07.14";
+ version = "2021.08.28";
src = fetchurl {
url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
- sha256 = "sha256-Li3SFqXxoxC4SXdK9j5jCdlMIgfDR3GlNMR64YsWJ0I=";
+ sha256 = "sha256-z/NwxBDR5tMWrgp/qKxieP3x78pdPWZKynz9Kq+lREY=";
};
dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix b/third_party/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
index f1424b15ad..37cca06a69 100644
--- a/third_party/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
@@ -12,7 +12,7 @@
mkDerivation rec {
pname = "adwaita-qt";
- version = "1.4.0";
+ version = "1.4.1";
outputs = [ "out" "dev" ];
@@ -20,7 +20,7 @@ mkDerivation rec {
owner = "FedoraQt";
repo = pname;
rev = version;
- sha256 = "sha256-KkqLUhS0JMwJsgu8fv5iGozH3Xv+cXumxx5IewZTTPc=";
+ sha256 = "sha256-t9vv1KcMUg8Qe7lhVMN4GO+VPoT7QzeoQ6hV4fesA8U=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix b/third_party/nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix
new file mode 100644
index 0000000000..2e8453b097
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, gnome
+, gtk-engine-murrine
+, gtk3
+, inkscape
+, lib
+, optipng
+, pkg-config
+, sassc
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ayu-theme-gtk";
+ version = "unstable-2017-05-12";
+
+ src = fetchFromGitHub {
+ owner = "dnordstrom";
+ repo = "ayu-theme";
+ rev = "cc6f3d3b72897c304e2f00afcaf51df863155e35";
+ sha256 = "sha256-1EhTfPhYl+4IootTCCE04y6V7nW1/eWdHarfF7/j1U0=";
+ };
+
+ postPatch = ''
+ ln -sn 3.20 common/gtk-3.0/3.24
+ ln -sn 3.18 common/gnome-shell/3.24
+ '';
+
+ nativeBuildInputs = [
+ autoreconfHook
+ gtk3
+ inkscape
+ optipng
+ pkg-config
+ sassc
+ ];
+
+ propagatedUserEnvPkgs = [
+ gnome.gnome-themes-extra
+ gtk-engine-murrine
+ ];
+
+ enableParallelBuilding = true;
+
+ preBuild = ''
+ # Shut up inkscape's warnings about creating profile directory
+ export HOME="$NIX_BUILD_ROOT"
+ '';
+
+ configureFlags = [
+ "--with-gnome-shell=${gnome.gnome-shell.version}"
+ "--disable-unity"
+ ];
+
+ postInstall = ''
+ install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
+ '';
+
+ meta = with lib; {
+ description = "Ayu colored GTK and Kvantum themes based on Arc";
+ homepage = "https://github.com/dnordstrom/ayu-theme/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+}
+
diff --git a/third_party/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix b/third_party/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
index 8e273afc76..e4b1ac6f41 100644
--- a/third_party/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -2,24 +2,30 @@
, fetchFromGitHub
, glib
, lib
+, writeScriptBin
}:
-
+let
+ # make install will use dconf to find desktop background file uri.
+ # consider adding an args to allow specify pictures manually.
+ # https://github.com/daniruiz/flat-remix-gnome/blob/20211113/Makefile#L38
+ fake-dconf = writeScriptBin "dconf" "echo -n";
+in
stdenv.mkDerivation rec {
pname = "flat-remix-gnome";
- version = "20210921";
+ version = "20211202";
src = fetchFromGitHub {
owner = "daniruiz";
repo = pname;
rev = version;
- hash = "sha256-HnbKqdDAre2jhZH1Osf3jigz/dQpx7k0fPsVaZz7xC8=";
+ hash = "sha256-aq4hnr581dNYoULeqdB9gWetDcuOthPNJuzHFVGNFc8=";
};
- nativeBuildInputs = [ glib ];
+ nativeBuildInputs = [ glib fake-dconf ];
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/20211202/Makefile#L56
mkdir -p $out/share/gnome-shell/
touch $out/share/gnome-shell/gnome-shell-theme.gresource
'';
diff --git a/third_party/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix b/third_party/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix
index afdf478fea..722c3cbc41 100644
--- a/third_party/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "flat-remix-gtk";
- version = "20201129";
+ version = "20211130";
src = fetchFromGitHub {
owner = "daniruiz";
repo = pname;
rev = version;
- hash = "sha256-lAlHRVB/P3A1qWsXQZPZ3uhgctR4FLa+ocUrsbleXJU=";
+ sha256 = "0n6djx346bzk558yd9nk0r6hqszcbkj0h1pv2n8n15ps2j9lyvw8";
};
dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix b/third_party/nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix
new file mode 100644
index 0000000000..99b9edfc3a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, theme, lib }:
+
+stdenv.mkDerivation rec {
+ pname = "gtk-theme-framework";
+ version = "0.2.3";
+
+ src = fetchFromGitHub {
+ owner = "jaxwilko";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1z5s5rsgiypanf2z0avaisbflnvwrc8aiy5qskrsvbbaja63jy3s";
+ };
+
+ postPatch = ''
+ substituteInPlace main.sh \
+ --replace "#!/usr/bin/env bash" "#!/bin/sh"
+
+ substituteInPlace scripts/install.sh \
+ --replace "#!/usr/bin/env bash" "#!/bin/sh"
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/themes
+ ./main.sh -i -t ${theme} -d $out/share/themes
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/jaxwilko/gtk-theme-framework";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ flexagoon ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix b/third_party/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
new file mode 100644
index 0000000000..2f5230181d
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/data/themes/marwaita/default.nix b/third_party/nixpkgs/pkgs/data/themes/marwaita/default.nix
index be10704779..5676d03abe 100644
--- a/third_party/nixpkgs/pkgs/data/themes/marwaita/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/marwaita/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "marwaita";
- version = "11.2.1";
+ version = "11.3";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = version;
- sha256 = "1bc9pj5k0zwc5fspp7b2i2sfrd6qbbi4kyxggc8kxrgv1sdgw3ff";
+ sha256 = "sha256-7l3fvqhMMJyv27yv/jShju0hL5AAvHk8pmISj/oyUP4=";
};
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/data/themes/matcha/default.nix b/third_party/nixpkgs/pkgs/data/themes/matcha/default.nix
index 4507e3c2f1..886a173b2d 100644
--- a/third_party/nixpkgs/pkgs/data/themes/matcha/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "matcha-gtk-theme";
- version = "2021-09-24";
+ version = "2021-11-29";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "064x340z6fif59bbk1p7ryl6xfj8hlf42ld7h8prcjsyghpznw15";
+ sha256 = "10fgz09h25cmnvz0bzx5qadv7cqnl1bdd6hj7w0rcbsws4c2j17q";
};
buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/third_party/nixpkgs/pkgs/data/themes/materia-theme/default.nix b/third_party/nixpkgs/pkgs/data/themes/materia-theme/default.nix
index f9e3463f2f..da79f68638 100644
--- a/third_party/nixpkgs/pkgs/data/themes/materia-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/materia-theme/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, meson
, ninja
@@ -11,30 +12,20 @@
stdenv.mkDerivation rec {
pname = "materia-theme";
- version = "20200916";
+ version = "20210322";
src = fetchFromGitHub {
owner = "nana-4";
repo = pname;
rev = "v${version}";
- sha256 = "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74";
+ sha256 = "1fsicmcni70jkl4jb3fvh7yv0v9jhb8nwjzdq8vfwn256qyk0xvl";
};
- nativeBuildInputs = [
- meson
- ninja
- sassc
- ];
+ nativeBuildInputs = [ meson ninja sassc ];
- buildInputs = [
- gnome.gnome-themes-extra
- gdk-pixbuf
- librsvg
- ];
+ buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
- propagatedUserEnvPkgs = [
- gtk-engine-murrine
- ];
+ propagatedUserEnvPkgs = [ gtk-engine-murrine ];
dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix b/third_party/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
new file mode 100644
index 0000000000..f5dccefbc1
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, qtx11extras
+, kcoreaddons
+, kguiaddons
+, kconfig
+, kdecoration
+, kconfigwidgets
+, kwindowsystem
+, kiconthemes
+, kwayland
+}:
+
+mkDerivation rec {
+ pname = "material-kwin-decoration";
+ version = "unstable-20211028";
+
+ src = fetchFromGitHub {
+ owner = "Zren";
+ repo = "material-decoration";
+ rev = "cc5cc399a546b66907629b28c339693423c894c8";
+ sha256 = "sha256-aYlnPFhf+ISVe5Ycryu5BSXY8Lb5OoueMqnWQZiv6Lc=";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+ buildInputs = [
+ qtx11extras
+ kcoreaddons
+ kguiaddons
+ kdecoration
+ kconfig
+ kconfigwidgets
+ kwindowsystem
+ kiconthemes
+ kwayland
+ ];
+
+ meta = with lib; {
+ description = "Material-ish window decoration theme for KWin";
+ homepage = "https://github.com/Zren/material-decoration";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.nickcao ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/data/themes/nordic/default.nix b/third_party/nixpkgs/pkgs/data/themes/nordic/default.nix
index 3fb2ae45f5..8d41ce5e38 100644
--- a/third_party/nixpkgs/pkgs/data/themes/nordic/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/nordic/default.nix
@@ -2,70 +2,70 @@
stdenv.mkDerivation rec {
pname = "nordic";
- version = "unstable-2021-08-13";
+ version = "2.1.0";
srcs = [
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
- rev = "937ca200e8148a61c73228030ec260abecc27fb2";
- sha256 = "0h7z7jh5p0916i9lx4n94r6vbydafnikdi6d9p4djvpyhn5nizgy";
+ rev = "0112af91943b8819f7a1af9a508cda7fe3d74051";
+ sha256 = "sha256-ccOA5/jXTx20495NpTgVu7DvsjfTEULqL3IyJ+Pd/ug";
name = "Nordic";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
- rev = "e736846a130be7907e977b16d0b3a0ab19631015";
- sha256 = "0dv7z31zw1r3iac5bvwapf9lm99y5l0xfzaw93hn8msh10w5crx8";
+ rev = "b30d2c844cc6ef5d020308f1c02791de45b607a7";
+ sha256 = "sha256-g5yCCFXzipZLmUat+1r6QWHB7DWQvMKhMexHPV/DJHM";
name = "Nordic-standard-buttons";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
- rev = "8ff12077f28e25f4e57f055a51e5e3b9b1bf53fd";
- sha256 = "082k0na39qb97kbvc15g3mdfh8d8ricql84i4wdjy3rjfbfwq0pl";
+ rev = "6d38d6af363528f42619f663e3ecd4c08dfd2411";
+ sha256 = "sha256-jaRiSE6yfTltzZ2vr8w4d+YtSz7REOcL7vOOhQvIMlQ";
name = "Nordic-darker";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
- rev = "8c422e4bfdf5680ff323938f49f411680154d3d6";
- sha256 = "1w540zlmsxpwa455wpxy1dpgv2fjr36xwjqbyc8x4y0ya0qfify0";
+ rev = "4142817c14c27b371d42796445bedc84dc94672c";
+ sha256 = "sha256-FAb1+EREcwYrfSxAl6LrPaJtkHMt67NV3bG87g1cFT4";
name = "Nordic-darker-standard-buttons";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
- rev = "ce31d794fe1c6b72d3cff2e9513e08ddce014118";
- sha256 = "09d41wllr9hgxshgvpgngx9rlg8pvx5aqgkk5q8jra4jz2a92fhq";
+ rev = "2a91d6f3db70412b0a80ed33546fbe93075627d8";
+ sha256 = "sha256-Su+amS7moc2IDONNvqw3bjL6Q0WLJWzHu6WvfcVDcDY";
name = "Nordic-bluish-accent";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
- rev = "8ca4fe244c31775effacc77f0a25ae10c6bee60c";
- sha256 = "1cby8wmaqdqpd9c40wiy7i9wmrazwfhb3h818hg0ni7yfcm2fr58";
+ rev = "3ebd334f97d638fdc888b16d69851e3ee31131f2";
+ sha256 = "sha256-h0IXtWcdDvAEVi/1cLZF4Vacdl6VAY+5uo0LGPNe0bg";
name = "Nordic-bluish-accent-standard-buttons";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = "${pname}-polar";
- rev = "a2d1c633ac2bfe261e8f612c8af14af0311c7f67";
- sha256 = "05llvix671i6128vbr3jiik8mipaab7bn0v9i89ydwyfhw822n7v";
+ rev = "803926882f8178c72b433466a377aaa33c5b372a";
+ sha256 = "sha256-G7Vu03PoFOEU9uxb5JiHR4Tr8qk47fPo7Gg7Vt9Zzns";
name = "Nordic-Polar";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = "${pname}-polar";
- rev = "62a1702a17e7ea96e9b692832d68a0a7f26aabb6";
- sha256 = "0r1qn1rj322b44h15hcfbx79hhmb1m4pkv2fpdsn3s2klcxwr1ql";
+ rev = "988cb8a16ece3901b8b0e7a5b86503400491cb1e";
+ sha256 = "sha256-Zx1mrzJm5o4wQwOR8ZU2OEcjD3/6UXwLrBYpMtCkQbg";
name = "Nordic-Polar-standard-buttons";
})
];
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
+
mkdir -p $out/share/themes
cp -a Nordic* $out/share/themes
rm -r $out/share/themes/*/.gitignore
@@ -88,13 +89,23 @@ stdenv.mkDerivation rec {
rm -r $out/share/themes/*/gnome-shell/{extensions,*.scss}
rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
- rm -r $out/share/themes/*/kde
rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+
+ # move kde related contents to appropriate directories
+ mkdir -p $out/share/{aurorae/themes,color-schemes,Kvantum,plasma,sddm/themes/Nordic}
+ mv -v $out/share/themes/Nordic/kde/aurorae/* $out/share/aurorae/themes/
+ mv -v $out/share/themes/Nordic/kde/colorschemes/* $out/share/color-schemes/
+ mv -v $out/share/themes/Nordic/kde/konsole $out/share/
+ mv -v $out/share/themes/Nordic/kde/kvantum/* $out/share/Kvantum/
+ mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/
+ mv -v $out/share/themes/Nordic/kde/sddm/* $out/share/sddm/themes/Nordic/
+ rm -rf $out/share/themes/Nordic/kde
+
runHook postInstall
'';
meta = with lib; {
- description = "Gtk themes using the Nord color pallete";
+ description = "Gtk and KDE themes using the Nord color pallete";
homepage = "https://github.com/EliverLara/Nordic";
license = licenses.gpl3Only;
platforms = platforms.all;
diff --git a/third_party/nixpkgs/pkgs/data/themes/pop-gtk/default.nix b/third_party/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
index ec17be3261..022e1dd81b 100644
--- a/third_party/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, meson
, ninja
@@ -14,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "pop-gtk-theme";
- version = "2020-06-30";
+ version = "2021-08-19";
src = fetchFromGitHub {
owner = "pop-os";
repo = "gtk-theme";
- rev = "8c31be9f9257375bf7a049069cb4ecbac7d281a1";
- sha256 = "16dxxazpllcxlbiblynqq4b65wfn9k1jab8dl69l819v73z303ky";
+ rev = "6615e4510485c5dc0b379746acc40f538d987c86";
+ sha256 = "16h03x2m4j4hfwp7pdmw1navcy5q7di38jvigfgf263wajyxbznr";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/data/themes/qogir/default.nix b/third_party/nixpkgs/pkgs/data/themes/qogir/default.nix
index c85b5259f6..57d664415d 100644
--- a/third_party/nixpkgs/pkgs/data/themes/qogir/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/qogir/default.nix
@@ -1,24 +1,44 @@
-{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gnome-themes-extra
+, gtk-engine-murrine
+, librsvg
+, sassc
+, which
+}:
stdenv.mkDerivation rec {
pname = "qogir-theme";
- version = "2021-08-02";
+ version = "2021-11-17";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "sha256-U048qNBfxjx/5iHIXcqAwXfIwmux+sw4hVQkN3TDLzk=";
+ sha256 = "1ri2dh34vw2pfv0lxzk9f4755v0d4ilnr6fzj3raw9b5fp5zzi91";
};
- buildInputs = [ gdk-pixbuf librsvg ];
+ nativeBuildInputs = [
+ sassc
+ which
+ ];
- propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+ buildInputs = [
+ gdk-pixbuf # pixbuf engine for Gtk2
+ gnome-themes-extra # adwaita engine for Gtk2
+ librsvg # pixbuf loader for svg
+ ];
+
+ propagatedUserEnvPkgs = [
+ gtk-engine-murrine # murrine engine for Gtk2
+ ];
installPhase = ''
patchShebangs .
mkdir -p $out/share/themes
- name= ./install.sh -d $out/share/themes
+ name= ./install.sh -t all -d $out/share/themes
mkdir -p $out/share/doc/${pname}
cp -a src/firefox $out/share/doc/${pname}
rm $out/share/themes/*/{AUTHORS,COPYING}
diff --git a/third_party/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix b/third_party/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
new file mode 100644
index 0000000000..d139876e14
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, gnome-themes-extra
+, gtk-engine-murrine
+, gtk_engines
+}:
+
+stdenv.mkDerivation rec {
+ pname = "rose-pine-gtk-theme";
+ version = "unstable-2021-02-22";
+
+ src = fetchFromGitHub {
+ owner = "rose-pine";
+ repo = "gtk";
+ rev = "9cd2dd449f911973ec549231a57a070d256da9fd";
+ sha256 = "0lqx8dmv754ix3xbg7h440x964n0bg4lb06vbzvsydnbx79h7lvy";
+ };
+
+ buildInputs = [
+ gnome-themes-extra # adwaita engine for Gtk2
+ gtk_engines # pixmap engine for Gtk2
+ ];
+
+ propagatedUserEnvPkgs = [
+ gtk-engine-murrine # murrine engine for Gtk2
+ ];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/share/themes
+ cp -a Rose-Pine $out/share/themes
+ rm $out/share/themes/*/LICENSE
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Rosé Pine theme for GTK";
+ homepage = "https://github.com/rose-pine/gtk";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/data/themes/sweet/default.nix b/third_party/nixpkgs/pkgs/data/themes/sweet/default.nix
index bd1df3277c..3ffa3caf8b 100644
--- a/third_party/nixpkgs/pkgs/data/themes/sweet/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/sweet/default.nix
@@ -1,32 +1,34 @@
-{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, unzip, gtk-engine-murrine }:
stdenv.mkDerivation rec {
pname = "sweet";
- version = "2.0";
+ version = "3.0";
srcs = [
(fetchurl {
- url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar-Blue.tar.xz";
- sha256 = "028pk07im7pab8a2vh3bvjm8jg37dpvn4c1mwn6vhb6wcr9v5c75";
+ url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
+ sha256 = "sha256-6ZrjH5L7Yox7riR+2I7vVbFoG4k7xHGyOq1OnkllyiY";
})
(fetchurl {
- url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar.tar.xz";
- sha256 = "0zmdmqndj65kr43g3z57blrmv0y856zlfprm6y45zbf4xz3ybkg6";
+ url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
+ sha256 = "sha256-FAbf682YJCCt8NKSdFoaFLwxLDU1aCcTgNdlybZtPMo=";
})
(fetchurl {
- url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Dark.tar.xz";
- sha256 = "02sw664fkrfpsygspq8fn4zgk8rxs9rd29nnx6nyvkji68mb51s6";
+ url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
+ sha256 = "sha256-t6fczOnKwi4B9hSFhHQaQ533o7MFL+7HPtUJ/p2CIXM=";
})
(fetchurl {
- url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-mars.tar.xz";
- sha256 = "14rl3il61jyqwiqlpgbh397q3rcs7jcf2pvr2763ar5a9czmy8h6";
+ url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
+ sha256 = "sha256-QGkkpUqkxGPM1DXrvToB3taajk7vK3rqibQF2M4N9i0=";
})
(fetchurl {
- url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet.tar.xz";
- sha256 = "0rza3yxwj256ibqimymjhd6lpjzr7fkhggq0ijdg1wab3q91x66q";
+ url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
+ sha256 = "sha256-1qVC2n7ypN1BFuSzBpbY7QzJUzF1anYNAVcMkNpGTMM";
})
];
+ nativeBuildInputs = [ unzip ];
+
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
sourceRoot = ".";
diff --git a/third_party/nixpkgs/pkgs/data/themes/whitesur/default.nix b/third_party/nixpkgs/pkgs/data/themes/whitesur/default.nix
index 46594e4f5e..cbf08acce5 100644
--- a/third_party/nixpkgs/pkgs/data/themes/whitesur/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/whitesur/default.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "whitesur-gtk-theme";
- version = "2021-10-21";
+ version = "2021-12-04";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
- sha256 = "1rbwf6z2bda647kw00q2fp349gjzvdc4gyk986fkjli0nr0jh8hp";
+ sha256 = "0fpq6xw2xq0fkmpg1la9q26nfbqhf0212s95v25256miz55p67ha";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/arcan/arcan/000-openal.patch b/third_party/nixpkgs/pkgs/desktops/arcan/arcan/000-openal.patch
new file mode 100644
index 0000000000..f8e02a4cb0
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/arcan/arcan/001-luajit.patch b/third_party/nixpkgs/pkgs/desktops/arcan/arcan/001-luajit.patch
new file mode 100644
index 0000000000..eff3c0a5aa
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/arcan/arcan/002-libuvc.patch b/third_party/nixpkgs/pkgs/desktops/arcan/arcan/002-libuvc.patch
new file mode 100644
index 0000000000..48d25fe827
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/arcan/arcan/003-freetype.patch b/third_party/nixpkgs/pkgs/desktops/arcan/arcan/003-freetype.patch
new file mode 100644
index 0000000000..e38d329b02
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/arcan/arcan/clone-sources.nix b/third_party/nixpkgs/pkgs/desktops/arcan/arcan/clone-sources.nix
new file mode 100644
index 0000000000..2ade63e70b
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/arcan/arcan/default.nix b/third_party/nixpkgs/pkgs/desktops/arcan/arcan/default.nix
index 48d4f9a548..f3f4be2fcc 100644
--- a/third_party/nixpkgs/pkgs/desktops/arcan/arcan/default.nix
+++ b/third_party/nixpkgs/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
@@ -36,53 +38,30 @@
, xcbutil
, xcbutilwm
, xz
-, buildManpages ? true, ruby
+, 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-10-16";
+ pname = "arcan" + lib.optionalString useStaticOpenAL "-static-openal";
+ version = "0.6.1";
src = fetchFromGitHub {
owner = "letoram";
repo = "arcan";
- rev = "e0182b944152fbcb49f5c16932d38c05a9fb2680";
- hash = "sha256-4FodFuO51ehvyjH4YaF/xBY9dwA6cP/e6/BvEsH4w7U=";
+ rev = version;
+ hash = "sha256-2do4+6KB0AAcJk22mN0IA/e/bPaeGipLjI4RSTPqLBg=";
};
- postUnpack = ''
- pushd .
- cd $sourceRoot/external/git/
- cp -a ${letoram-openal-src}/ openal/
- chmod --recursive 744 openal/
- popd
- '';
-
- # 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
pkg-config
- ] ++ lib.optionals buildManpages [
+ ] ++ lib.optionals buildManPages [
ruby
];
@@ -108,6 +87,7 @@ stdenv.mkDerivation rec {
libvncserver
libxcb
libxkbcommon
+ lua
luajit
mesa
openal
@@ -121,11 +101,54 @@ 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 ''
- pushd .
- cd doc
+ preConfigure = lib.optionalString buildManPages ''
+ pushd doc
ruby docgen.rb mangen
popd
'';
@@ -136,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/third_party/nixpkgs/pkgs/desktops/arcan/durden/default.nix b/third_party/nixpkgs/pkgs/desktops/arcan/durden/default.nix
index 69aae1d216..b5fc02127e 100644
--- a/third_party/nixpkgs/pkgs/desktops/arcan/durden/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/arcan/durden/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "durden";
- version = "0.6.1+unstable=2021-10-15";
+ version = "0.6.1+date=2021-10-17";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
- rev = "ab6cdaf19e87b74895a9ab5e1d005a07ea9396a6";
- hash = "sha256-FxqY1TUgbD/PjQjTZZerb7ngn5nkcqmVwqPvbRAYaqo=";
+ rev = "5fb8b0f9bc2952ed9cf7dc20a1c5c0cc44c02ff1";
+ hash = "sha256-+EIsrCkMe9MrUQOCh0R+rsDg/Rqs3iQWO0GZCgZQ+No=";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/desktops/arcan/pipeworld/default.nix b/third_party/nixpkgs/pkgs/desktops/arcan/pipeworld/default.nix
index 359c3a21a6..fa1a09230d 100644
--- a/third_party/nixpkgs/pkgs/desktops/arcan/pipeworld/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/arcan/pipeworld/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "pipeworld";
- version = "0.pre+unstable=2021-08-01";
+ version = "0.pre+date=2021-11-26";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
- rev = "311cc91946be63faab3b1578bc1d40668dd30f8c";
- hash = "sha256-iqcdVzEp4ST/f93+9fGSwvJMj7BznNtoEx4F3oMPCYk=";
+ rev = "9f816db154ca5c54af952ad11c2186ccac5bdd2d";
+ hash = "sha256-uwnrRsMP0RLEGr2mEVQ6kEtV/c6t5qSCHY0ynywPzkw=";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/desktops/arcan/xarcan/default.nix b/third_party/nixpkgs/pkgs/desktops/arcan/xarcan/default.nix
index 9bfd7e2907..6245471a7e 100644
--- a/third_party/nixpkgs/pkgs/desktops/arcan/xarcan/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/arcan/xarcan/default.nix
@@ -4,7 +4,7 @@
, arcan
, audit
, dbus
-, epoxy
+, libepoxy
, fontutil
, libGL
, libX11
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
arcan
audit
dbus
- epoxy
+ libepoxy
fontutil
libGL
libX11
diff --git a/third_party/nixpkgs/pkgs/desktops/cdesktopenv/default.nix b/third_party/nixpkgs/pkgs/desktops/cdesktopenv/default.nix
index 563a1b49e5..7715f4f232 100644
--- a/third_party/nixpkgs/pkgs/desktops/cdesktopenv/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cdesktopenv/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchurl, xorgproto, libX11, bison, ksh, perl, gnum4
+{ lib, stdenv, fetchurl
+, fetchpatch
+, xorgproto, libX11, bison, ksh, perl, gnum4
, libXinerama, libXt, libXext, libtirpc, motif, libXft, xbitmaps
, libjpeg, libXmu, libXdmcp, libXScrnSaver, symlinkJoin, bdftopcf
, ncompress, mkfontdir, tcl, libXaw, gcc, glibcLocales, gawk
@@ -27,6 +29,13 @@ in stdenv.mkDerivation rec {
patches = [
./2.3.2.patch
./0001-all-remove-deprecated-sys_errlist-and-replace-with-A.patch
+
+ (fetchpatch {
+ name = "binutils-2.36.patch";
+ url = "https://github.com/cdesktopenv/cde/commit/0b7849e210a99a413ddeb52a0eb5aef9a08504a0.patch";
+ sha256 = "0wlhs617hws3rwln9v74y1nw27n3pp7jkpnxlala7k5y64506ipj";
+ stripLen = 1;
+ })
];
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
index 511cb6a1c0..56cf5a0ff5 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "bulky";
- version = "1.7";
+ version = "1.9";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "bulky";
rev = version;
- sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
+ hash = "sha256-OCBFhlnEXZROp47KDiy7Y6l4GDVCCP+i1IFYQa7esyg=";
};
nativeBuildInputs = [
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- (python3.withPackages(p: with p; [ pygobject3 magic setproctitle ]))
+ (python3.withPackages (p: with p; [ pygobject3 magic setproctitle ]))
gsettings-desktop-schemas
gtk3
glib
@@ -55,6 +55,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/linuxmint/bulky";
license = licenses.gpl3Plus;
platforms = platforms.linux;
- maintainers = [ maintainers.mkg20001 ];
+ maintainers = teams.cinnamon.members;
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 936c4578ea..303443cc5f 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -25,7 +25,8 @@
, networkmanager
, pkg-config
, polkit
-, lib, stdenv
+, lib
+, stdenv
, wrapGAppsHook
, libxml2
, gtk-doc
@@ -50,23 +51,28 @@
stdenv.mkDerivation rec {
pname = "cinnamon-common";
- version = "4.8.6";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "cinnamon";
rev = version;
- hash = "sha256-4DMXQYH1/RjLhgrn55I7Vkk6+gGsR+OVmiwxVHUIyro=";
+ hash = "sha256-B2Du2zis0xWeeyh3kSyz1doWImk9Fuk4qQ8HNZZdqdw=";
};
patches = [
./use-sane-install-dir.patch
./libdir.patch
+
+ (fetchpatch {
+ url = "https://github.com/linuxmint/cinnamon/commit/77ed66050f7df889fcb7a10b702c7b8bcdeaa130.patch";
+ sha256 = "sha256-OegLxz6Xr/nxVwVOAd2oOY62ohZ3r6uYn1+YED5EBHQ=";
+ })
];
buildInputs = [
# TODO: review if we really need this all
- (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro ]))
+ (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro requests ]))
atk
cacert
cinnamon-control-center
@@ -148,7 +154,7 @@ stdenv.mkDerivation rec {
'';
passthru = {
- providedSessions = ["cinnamon" "cinnamon2d"];
+ providedSessions = [ "cinnamon" "cinnamon2d" ];
};
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 94080e3e47..a105f39ac4 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, pkg-config
, glib
@@ -29,17 +30,18 @@
, meson
, ninja
, cinnamon-translations
+, python3
}:
stdenv.mkDerivation rec {
pname = "cinnamon-control-center";
- version = "4.8.2";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-vALThDY0uN9bV7b1fga3MK7b2/l5uL33+B2x6oSLPRE=";
+ hash = "sha256-j7+2uLcHr7bO7i8OGqkw3ifawZULNyihhJ+h2D5gx/k=";
};
buildInputs = [
@@ -67,13 +69,15 @@ stdenv.mkDerivation rec {
];
/* ./panels/datetime/test-timezone.c:4:#define TZ_DIR "/usr/share/zoneinfo/"
- ./panels/datetime/tz.h:32:# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
- ./panels/datetime/tz.h:34:# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" */
+ ./panels/datetime/tz.h:32:# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
+ ./panels/datetime/tz.h:34:# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" */
postPatch = ''
sed 's|TZ_DIR "/usr/share/zoneinfo/"|TZ_DIR "${tzdata}/share/zoneinfo/"|g' -i ./panels/datetime/test-timezone.c
sed 's|TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"|TZ_DATA_FILE "${tzdata}/share/zoneinfo/zone.tab"|g' -i ./panels/datetime/tz.h
sed 's|"/usr/share/i18n/locales/"|"${glibc}/share/i18n/locales/"|g' -i panels/datetime/test-endianess.c
+
+ patchShebangs meson_install_schemas.py
'';
# it needs to have access to that file, otherwise we can't run tests after build
@@ -103,6 +107,7 @@ stdenv.mkDerivation rec {
ninja
wrapGAppsHook
gettext
+ python3
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index 25af38d43b..ec786c7bac 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -8,7 +8,8 @@
, pkg-config
, pulseaudio
, python3
-, lib, stdenv
+, lib
+, stdenv
, xkeyboard_config
, xorg
, wrapGAppsHook
@@ -17,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-desktop";
- version = "4.8.1";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-FLruY1lxzB3iJ/So3jSjrbv9e8VoN/0+U2YDXju/u3E=";
+ hash = "sha256-gOlSmcHjBjnLdDpgC5mZ4M3eUBTG3BuET6Kr/Xby14A=";
};
outputs = [ "out" "dev" ];
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
index 6f54515569..3066d7fcd8 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
@@ -5,7 +5,7 @@
, gtk3
, gsettings-desktop-schemas
, extraGSettingsOverrides ? ""
-, extraGSettingsOverridePackages ? []
+, extraGSettingsOverridePackages ? [ ]
, mint-artwork
, muffin
@@ -41,19 +41,19 @@ in
with lib;
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
-runCommand "cinnamon-gsettings-overrides" {}
+runCommand "cinnamon-gsettings-overrides" { }
''
- schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+ schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
- mkdir -p $schema_dir
+ mkdir -p $schema_dir
- ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages}
+ ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages}
- chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
+ chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
- cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
- ${extraGSettingsOverrides}
- EOF
+ cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
+ ${extraGSettingsOverrides}
+ EOF
- ${glib.dev}/bin/glib-compile-schemas $schema_dir
+ ${glib.dev}/bin/glib-compile-schemas $schema_dir
''
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 44566a94c6..99008b4726 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -4,19 +4,20 @@
, meson
, ninja
, pkg-config
-, lib, stdenv
+, lib
+, stdenv
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "cinnamon-menus";
- version = "4.8.2";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-9VSrqCjC8U3js1gqjl5QFctWYECATxN+AdfMdHLxYUY=";
+ hash = "sha256-ioluv/GdWCNGP2jQqsyEbHncCFm8iu69yR8QVKQTJk8=";
};
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index b70673253e..3d84a6a062 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, pkg-config
, meson
@@ -27,13 +28,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-screensaver";
- version = "4.8.1";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-gvSGxSYKnRqJhj2unRYRHp6qGw/O9SxKPzhw5xjCSSQ=";
+ hash = "sha256-weQ5sw5SY89JFIxamCeLiSLy8xCXGg0Yxj/5Ca5r+6o=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 3f1ceb2dc6..91c03796a8 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -15,26 +15,26 @@
, ninja
, pkg-config
, python3
-, lib, stdenv
+, lib
+, stdenv
, systemd
, wrapGAppsHook
, xapps
, xmlto
, xorg
-, cmake
, libexecinfo
, pango
}:
stdenv.mkDerivation rec {
pname = "cinnamon-session";
- version = "4.8.0";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-lrwR8VSdPzHoc9MeBEQPbVfWNhPZDJ2wYizKSVpobmk=";
+ hash = "sha256-E5ascwLnpa5NSBAPo9dXRhoraUntzDPHVV32uDU4U8k=";
};
patches = [
@@ -85,7 +85,6 @@ stdenv.mkDerivation rec {
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
"-Dgconf=false"
- "-DENABLE_IPV6=true"
# use locales from cinnamon-translations
"--localedir=${cinnamon-translations}/share/locale"
];
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 69b08fc64e..bf83c3d9f5 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -13,7 +13,8 @@
, wrapGAppsHook
, pkg-config
, pulseaudio
-, lib, stdenv
+, lib
+, stdenv
, systemd
, upower
, dconf
@@ -35,7 +36,7 @@
stdenv.mkDerivation rec {
pname = "cinnamon-settings-daemon";
- version = "4.8.5";
+ version = "5.2.0";
/* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
#include "csd-power-proxy.h"
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-PAWVTjGFs8yKXgNQ2ucDnEDS+n7bp2n3lhGl9gHXfdQ=";
+ hash = "sha256-6omif4UxMrXWxL+R9lQ8ogxotW+3E9Kp99toH3PJtaU=";
};
patches = [
@@ -121,6 +122,6 @@ stdenv.mkDerivation rec {
description = "The settings daemon for the Cinnamon desktop";
license = licenses.gpl2;
platforms = platforms.linux;
- maintainers = [ maintainers.mkg20001 ];
+ maintainers = teams.cinnamon.members;
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index f790c54052..f9337f7649 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-translations";
- version = "5.0.0";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-qBLg0z0ZoS7clclKsIxMG6378Q1iv1NnhS9cz3f4cEc=";
+ hash = "sha256-t3PydmS2+LU++2NcosgMr9KTXW0Qy1Re9+YcS3KMDi8=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
index 2e1c739c0f..3ac4483c5c 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
@@ -25,23 +25,24 @@
, makeWrapper
, which
, libxml2
+, gtk4
}:
stdenv.mkDerivation rec {
pname = "cjs";
- version = "4.8.2";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "cjs";
rev = version;
- hash = "sha256-6+zlWL0DmyP+RFp1ECA4XGbgYUlsMqqyTd6z46w99Ug=";
+ hash = "sha256-06sTk513qVMdznSHJzzB3XIPTcfjgxTB2o+ALqwPpHM=";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [
- meson # ADDING cmake breaks the build, ignore meson warning
+ meson
ninja
pkg-config
makeWrapper
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
+ gtk4
gobject-introspection
cairo
readline
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/default.nix
index 4d148fdcdb..7f9d332ed1 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/default.nix
@@ -1,19 +1,19 @@
{ pkgs, lib }:
lib.makeScope pkgs.newScope (self: with self; {
- iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs(p: p // {
+ iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs (p: p // {
buildPhase = "make png-country-320x240-fancy";
# installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png-320x420";
installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png";
});
- iso-flags-svg = pkgs.iso-flags.overrideAttrs(p: p // {
+ iso-flags-svg = pkgs.iso-flags.overrideAttrs (p: p // {
buildPhase = "mkdir -p $out/share";
installPhase = "mv svg $out/share/iso-flags-svg";
});
# blueberry -> pkgs/tools/bluetooth/blueberry/default.nix
- bulky = callPackage ./bulky {};
+ bulky = callPackage ./bulky { };
cinnamon-common = callPackage ./cinnamon-common { };
cinnamon-control-center = callPackage ./cinnamon-control-center { };
cinnamon-desktop = callPackage ./cinnamon-desktop { };
@@ -30,7 +30,9 @@ lib.makeScope pkgs.newScope (self: with self; {
mint-x-icons = callPackage ./mint-x-icons { };
mint-y-icons = callPackage ./mint-y-icons { };
muffin = callPackage ./muffin { };
+ pix = callPackage ./pix { };
xapps = callPackage ./xapps { };
warpinator = callPackage ./warpinator { };
+ xreader = callPackage ./xreader { };
xviewer = callPackage ./xviewer { };
})
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix
index b3a542e513..abc7c172cb 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix
@@ -1,4 +1,5 @@
{ stdenv
+, lib
, fetchurl
, glib
, nixos-artwork
@@ -6,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "mint-artwork";
- version = "1.4.3";
+ version = "1.5.4";
src = fetchurl {
url = "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz";
- sha256 = "126asxpg722qfg2wkwcr7bhsplchq3jn6bkdwf1scpc5za8dd62j";
+ hash = "sha256-ZRJK1fzIF36BdUlVhLwdFdfgQvN2ashzjgpCxoOIbK8=";
};
nativeBuildInputs = [
@@ -36,4 +37,12 @@ stdenv.mkDerivation rec {
mv etc $out/etc
mv usr/share $out/share
'';
+
+ meta = with lib; {
+ homepage = "https://github.com/linuxmint/mint-artwork";
+ description = "Artwork for the cinnamon desktop";
+ license = licenses.gpl3; # from debian/copyright
+ platforms = platforms.linux;
+ maintainers = teams.cinnamon.members;
+ };
}
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix
index 67020ce0b3..f25cb9df2f 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix
@@ -1,5 +1,6 @@
{ fetchFromGitHub
-, lib, stdenv
+, lib
+, stdenv
, python3
, sassc
, sass
@@ -7,14 +8,14 @@
stdenv.mkDerivation rec {
pname = "mint-themes";
- version = "1.8.6";
+ version = "1.8.8";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
- # commit is named 1.8.6, tags=404
- rev = "fa0b9530f6e68c390aecd622b229072fcd08f05f";
- sha256 = "0pgv5hglsscip5s7nv0mn301vkn0j6wp4rv34vr941yai1jfk2wb";
+ # they don't exactly do tags, it's just a named commit
+ rev = "a833fba6917043bf410dee4364c9a36af1ce4c83";
+ hash = "sha256-8abjjD0XoApvqB8SNlWsqIEp7ozgiERGS0kWglw2DWA=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
index f4a04cf33a..bfcc95c4ff 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
@@ -1,5 +1,6 @@
{ fetchFromGitHub
-, lib, stdenv
+, lib
+, stdenv
, gnome
, gnome-icon-theme
, hicolor-icon-theme
@@ -10,14 +11,14 @@
stdenv.mkDerivation rec {
pname = "mint-x-icons";
- version = "1.5.5";
+ version = "1.6.3";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
- # commit is named 1.5.5, tags=404
- rev = "ecfbeb62bba41e85a61099df467c4700ac63c1e0";
- sha256 = "1yxm7h7giag5hmymgxsg16vc0rhxb2vn3piaksc463mic4vwfa3i";
+ # they don't exactly do tags, it's just a named commit
+ rev = "286eb4acdfc3e3c77572dfd0cd70ffd4208d3a35";
+ hash = "sha256-mZkCEBC1O2mW8rM1kpOWdC5CwIeafyBS95cMY6x1yco=";
};
propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
index e04a1baa66..c1afd2828d 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
@@ -1,5 +1,6 @@
{ fetchFromGitHub
-, lib, stdenv
+, lib
+, stdenv
, gnome
, gnome-icon-theme
, hicolor-icon-theme
@@ -8,14 +9,14 @@
stdenv.mkDerivation rec {
pname = "mint-y-icons";
- version = "1.4.3";
+ version = "1.5.8";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
- # commit is named 1.4.3, tags=404
- rev = "c997af402d425889f2e4277966eebe473f7451f7";
- sha256 = "0yfas949xm85a28vgjqm9ym3bhhynrq256w9vfs8aiqq9nbm18mf";
+ # they don't exactly do tags, it's just a named commit
+ rev = "9489bd161e9503d071227dd36057386a34cfc0a3";
+ hash = "sha256-53yTCWNSJjCpVvrxLfsiaCPNDEZWxJgGVAmVNMNql2M=";
};
propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
index 5470933d61..6f35d6b590 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
@@ -14,7 +14,8 @@
, libXtst
, libxkbcommon
, pkg-config
-, lib, stdenv
+, lib
+, stdenv
, udev
, xorg
, wrapGAppsHook
@@ -35,13 +36,13 @@
stdenv.mkDerivation rec {
pname = "muffin";
- version = "4.8.1";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- hash = "sha256-zRW+hnoaKKTe4zIJpY1D0Ahc8k5zRbvYBF5Y4vZ6Rbs=";
+ hash = "sha256-WAp0HbfRtwsPjJX1kPBqUStqLaudQPZ8E+h4jmggmw8=";
};
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
index c801342ff2..8baadab496 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
@@ -5,7 +5,8 @@
, meson
, ninja
, pkg-config
-, lib, stdenv
+, lib
+, stdenv
, wrapGAppsHook
, libxml2
, gtk3
@@ -22,7 +23,7 @@
stdenv.mkDerivation rec {
pname = "nemo";
- version = "5.0.3";
+ version = "5.2.0";
# TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
owner = "linuxmint";
repo = pname;
rev = version;
- sha256 = "sha256-Ah1Rp/o4LPdYm+wj2W5ljjMkCI3PgoAHrlM8yEQP77o=";
+ hash = "sha256-ehcqRlI1d/KWNas36dz+hb7KU1H8wtQHTpg2fz1XdXU=";
};
outputs = [ "out" "dev" ];
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
new file mode 100644
index 0000000000..c97824db1a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, cinnamon-desktop
+, file
+, gdk-pixbuf
+, glib
+, gobject-introspection
+, gtk-doc
+, gtk3
+, intltool
+, itstool
+, libtool
+, libxml2
+, pkg-config
+, shared-mime-info
+, wrapGAppsHook
+, xapps
+, yelp-tools
+, libsecret
+, webkitgtk
+, libwebp
+, librsvg
+, json-glib
+, gnome
+, clutter
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pix";
+ version = "2.6.5";
+
+ src = fetchFromGitHub {
+ owner = "linuxmint";
+ repo = pname;
+ rev = version;
+ sha256 = "qBF5lc7ZNwuTr6x4c4pJA6a7oXqOYsYA1lpTmQkylT0=";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ autoreconfHook
+ cinnamon-desktop
+ gdk-pixbuf
+ gnome.gnome-common
+ gobject-introspection
+ gtk-doc
+ intltool
+ itstool
+ libtool
+ pkg-config
+ yelp-tools
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ xapps
+ libsecret
+ webkitgtk
+ libwebp
+ librsvg
+ json-glib
+ clutter
+ ];
+
+ meta = with lib; {
+ description = "A generic image viewer from Linux Mint";
+ homepage = "https://github.com/linuxmint/pix";
+ license = licenses.gpl2Only;
+ platforms = platforms.linux;
+ maintainers = teams.cinnamon.members;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix
index 8b316d37f5..8ed66dc54d 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix
@@ -14,7 +14,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "warpinator";
- version = "1.0.8";
+ version = "1.2.5";
format = "other";
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "linuxmint";
repo = pname;
rev = version;
- sha256 = "0n1b50j2w76qnhfj5yg5q2j7fgxr9gbmzpazmbml4q41h8ybcmxm";
+ hash = "sha256-pTLM4CrkBLEZS9IdM9IBSGH0WPOj1rlAgvWLOUy6MxY=";
};
nativeBuildInputs = [
@@ -54,6 +54,10 @@ python3.pkgs.buildPythonApplication rec {
netifaces
];
+ mesonFlags = [
+ "-Dbundle-zeroconf=false"
+ ];
+
postPatch = ''
chmod +x install-scripts/*
patchShebangs .
@@ -73,6 +77,6 @@ python3.pkgs.buildPythonApplication rec {
description = "Share files across the LAN";
license = licenses.gpl3Plus;
platforms = platforms.linux;
- maintainers = [ maintainers.mkg20001 ];
+ maintainers = teams.cinnamon.members;
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix
index 011c5c2906..dfde8773ec 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix
@@ -10,7 +10,8 @@
, ninja
, pkg-config
, python3
-, lib, stdenv
+, lib
+, stdenv
, vala
, wrapGAppsHook
, inxi
@@ -21,7 +22,7 @@
stdenv.mkDerivation rec {
pname = "xapps";
- version = "2.2.3";
+ version = "2.2.5";
outputs = [ "out" "dev" ];
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
owner = "linuxmint";
repo = pname;
rev = version;
- sha256 = "sha256-hrSyoHA3XQXQb9N3YJ+NNfBjJNOuUhXhKEimh/n73MM=";
+ hash = "sha256-Ev+gTl9jY1HLbXKnCsVVSsY8ZrHyzsIkp+JTaXOTm6I=";
};
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gobject-introspection
- (python3.withPackages(ps: with ps; [
+ (python3.withPackages (ps: with ps; [
pygobject3
setproctitle # mate applet
]))
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/xreader/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/xreader/default.nix
new file mode 100644
index 0000000000..39c7e11cbe
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/xreader/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, glib
+, gobject-introspection
+, intltool
+, shared-mime-info
+, gtk3
+, wrapGAppsHook
+, libxml2
+, xapps
+, meson
+, pkg-config
+, cairo
+, libsecret
+, poppler
+, libspectre
+, libgxps
+, webkitgtk
+, nodePackages
+, ninja
+, gsettings-desktop-schemas
+, djvulibre
+, backends ? [ "pdf" "ps" /* "dvi" "t1lib" */ "djvu" "tiff" "pixbuf" "comics" "xps" "epub" ]
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xreader";
+ version = "3.0.2";
+
+ src = fetchFromGitHub {
+ owner = "linuxmint";
+ repo = pname;
+ rev = version;
+ sha256 = "vyZhKsuASbkc6IBtfbhTIHOQ0XYNFaCVua+jS4B5LWk=";
+ };
+
+ nativeBuildInputs = [
+ shared-mime-info
+ wrapGAppsHook
+ meson
+ ninja
+ pkg-config
+ gobject-introspection
+ intltool
+ ];
+
+ mesonFlags = [
+ "-Dmathjax-directory=${nodePackages.mathjax}"
+ "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+ ] ++ (map (x: "-D${x}=true") backends);
+
+ buildInputs = [
+ glib
+ gtk3
+ xapps
+ cairo
+ libxml2
+ libsecret
+ poppler
+ libspectre
+ libgxps
+ webkitgtk
+ nodePackages.mathjax
+ djvulibre
+ ];
+
+ meta = with lib; {
+ description = "A document viewer capable of displaying multiple and single page
+document formats like PDF and Postscript";
+ homepage = "https://github.com/linuxmint/xreader";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = teams.cinnamon.members;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix b/third_party/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
index 20c36827cb..7b89ab2d5a 100644
--- a/third_party/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -21,17 +21,18 @@
, shared-mime-info
, wrapGAppsHook
, xapps
-, yelp-tools }:
+, yelp-tools
+}:
stdenv.mkDerivation rec {
pname = "xviewer";
- version = "3.0.2";
+ version = "3.2.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
- sha256 = "sha256-hvoTb9afyVdcm5suB1ZxkxUyNFSVRFjYuNVc0jE3RF0=";
+ sha256 = "sha256-9SUpJ76s3gf1852xnJh3Sz6SeuKhcGHtv+woiXztCS4=";
};
nativeBuildInputs = [
@@ -65,6 +66,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/linuxmint/xviewer";
license = licenses.gpl2Only;
platforms = platforms.linux;
- maintainers = with maintainers; [ tu-maurice ];
+ maintainers = with maintainers; [ tu-maurice ] ++ teams.cinnamon.members;
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix b/third_party/nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix
index e74f91d8d4..10b97436b9 100644
--- a/third_party/nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "terminology";
- version = "1.10.0";
+ version = "1.11.0";
src = fetchurl {
url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
- sha256 = "0imk7cjkcjss3zf4hjwmy54pbizm6l6pq553jcx7bpsnhs56bbsz";
+ sha256 = "0bbav27p1xni7kidgf3vn42bwsfrzds301k3f7c8dg7v5yyq9n2g";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index ab76e0c64f..bf5ae4ebbb 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -22,8 +22,16 @@ stdenv.mkDerivation rec {
moveToOutput "bin/orbit2-config" "$dev"
'';
+ # Parallel build fails due to missing internal library dependency:
+ # libtool --tag=CC --mode=link gcc ... -o orbit-name-server-2 ...
+ # ld: cannot find libname-server-2.a: No such file or directory
+ # It happens because orbit-name-server-2 should have libname-server-2.a
+ # in _DEPENDENCIES but does not. Instead of fixing it and regenerating
+ # Makefile.in let's just disable parallel build.
+ enableParallelBuilding = false;
+
meta = with lib; {
- homepage = "https://projects.gnome.org/ORBit2/";
+ homepage = "https://developer-old.gnome.org/ORBit2/";
description = "A CORBA 2.4-compliant Object Request Broker";
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 ];
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
index 38754a5569..a6d70d162c 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
@@ -34,13 +34,13 @@
stdenv.mkDerivation rec {
pname = "cheese";
- version = "41.0";
+ version = "41.1";
outputs = [ "out" "man" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "EG8d9n4c9Bwqp5yZveZ2rskA2wNstSX6EIObBhh9Ivk=";
+ sha256 = "UilgyihzD/ZkOQcLBEGMngpLtVVg11v+CLIY2ixn5Uc=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch
new file mode 100644
index 0000000000..b3689e4206
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch
@@ -0,0 +1,13 @@
+diff --git a/gedit/meson.build b/gedit/meson.build
+index a8683e61a..fc48669f7 100644
+--- a/gedit/meson.build
++++ b/gedit/meson.build
+@@ -191,7 +191,7 @@ libgedit_shared_lib = shared_library(
+ c_args: libgedit_c_args,
+ link_args: libgedit_link_args,
+ install: true,
+- install_dir: get_option('libdir') / 'gedit',
++ install_dir: get_option('prefix') / get_option('libdir') / 'gedit',
+ )
+
+ # GObject Introspection
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix
index a8479e9cdc..a6748dfc41 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix
@@ -30,6 +30,12 @@ stdenv.mkDerivation rec {
sha256 = "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm";
};
+ patches = [
+ # We patch gobject-introspection and meson to store absolute paths to libraries in typelibs
+ # but that requires the install_dir is an absolute path.
+ ./correct-gir-lib-path.patch
+ ];
+
nativeBuildInputs = [
desktop-file-utils
itstool
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
index 6275bcd3fc..d12c8f6101 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "ghex";
- version = "3.41.0";
+ version = "3.41.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/ghex/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "KcdG8ihzteQVvDly29PdYNalH3CA5qPpVsNNZHrjRKI=";
+ sha256 = "i3nPAJ6uXEfK0KtT4hmcOm+y86thh381m+1SR3DuYfc=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index fa0f590b5f..91711ecb28 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -55,11 +55,11 @@
stdenv.mkDerivation rec {
pname = "gnome-boxes";
- version = "41.1";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "1wzhm8n485cqhbai4qshgrwl05ix881g8gjshilrj6vg8p1li79h";
+ sha256 = "u3G2zflFOBjyblV0Tl5ZUN2TJ5PQ6Ot+n/h78Mvvwz0=";
};
doCheck = true;
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index c8c2853203..89b6b1e384 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -24,11 +24,11 @@
stdenv.mkDerivation rec {
pname = "gnome-calendar";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "0gqrxcn7fcvlh5c9691lx5zgdgs71ah15h5psrbhkg8qcqy95b3k";
+ sha256 = "m1EmsjPhuPic9MIyYIlXHYKakwPsieplz2IWTmp0IuE=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index 1f2cb9dc52..83e88059f8 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-connections";
- version = "41.0";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- hash = "sha256-M5/1VaEI0gt6sPO/GCmWMWAYYOeO+peLpqudGO3DtGA=";
+ hash = "sha256-WrmUKPPOn4qDdDK2e3XbxSi5U6QpOotWVE34g0b+VxM=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 7ddf227a8f..8fd9930806 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "gnome-maps";
- version = "41.0";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-G0CC22wHDp3LCFJZ6+PIpCG44eiyezKEq2BXULudjJI=";
+ sha256 = "sha256-gYIbTK/GQc1QDXOzMMY85aBahPBDBxbWPoizyuqs/Qw=";
};
doCheck = true;
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix
index e486279508..f3dde6585a 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix
@@ -36,8 +36,10 @@ stdenv.mkDerivation rec {
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=";
+ url = "https://cgit.freebsd.org/ports/plain/deskutils/gnome-todo/files/patch-src_meson.build?id=a4faaf6cf7835014b5f69a337b544ea4ee7f9655";
+ sha256 = "sha256:0ihixyq72yhx6njij7bldsqb80x3y217yh6livknlf5r1wr3hakn";
+ extraPrefix = "";
+ name = "gnome-todo_meson-build.patch";
})
];
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
index 50fb1c3de5..2afb65d528 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
@@ -1,6 +1,6 @@
{ fetchurl, lib, stdenv, pkg-config, gnome, glib, gtk3, clutter, dbus, python3, libxml2
, libxklavier, libXtst, gtk2, intltool, libxslt, at-spi2-core, autoreconfHook
-, wrapGAppsHook, libgee, vala_0_40 }:
+, wrapGAppsHook, libgee, vala }:
let
pname = "caribou";
@@ -21,6 +21,11 @@ in stdenv.mkDerivation rec {
url = "https://bugzilla.gnome.org/attachment.cgi?id=364774";
sha256 = "15k1455grf6knlrxqbjnk7sals1730b0whj30451scp46wyvykvd";
})
+ # Stop patching the generated GIR, fixes build with latest vala
+ (fetchurl {
+ url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/c52ce71c49dc8d6109a58d16cc8d491d7bd1d781.patch";
+ sha256 = "sha256-jbF1Ygp8Q0ENN/5aEpROuK5zkufIfn6cGW8dncl7ET4=";
+ })
(fetchurl {
name = "fix-build-modern-vala.patch";
url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/76fbd11575f918fc898cb0f5defe07f67c11ec38.patch";
@@ -33,7 +38,7 @@ in stdenv.mkDerivation rec {
})
];
- nativeBuildInputs = [ pkg-config intltool libxslt libxml2 autoreconfHook wrapGAppsHook vala_0_40 ];
+ nativeBuildInputs = [ pkg-config intltool libxslt libxml2 autoreconfHook wrapGAppsHook vala ];
buildInputs = [
glib gtk3 clutter at-spi2-core dbus pythonEnv python3.pkgs.pygobject3
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
index 67ecf9f5c1..620f7e7d9c 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
@@ -28,11 +28,11 @@
stdenv.mkDerivation rec {
pname = "eog";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-kX3ghv2X/T7JMPoHyIut0r4fXQrmueVpyYYATgNZqaw=";
+ sha256 = "sha256-huG5ujnaz3QiavpFermDtBJTuJ9he/VBOcrQiS0C2Kk=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
index 45812dbc90..eb85c97f9f 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
@@ -46,13 +46,13 @@
stdenv.mkDerivation rec {
pname = "evince";
- version = "41.2";
+ version = "41.3";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "lautDW/urJVg2zq4C6fF6rsf3xyg47PJMzmvBUU6JNg=";
+ sha256 = "M0awH5vcjy1f/qkvEQoJDGSjYklCtbVDqtRZKp3jO7A=";
};
patches = lib.optionals withPantheon [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index aabe9af148..9c1fd1658e 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index d7a898c1c4..85cfa8bf31 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -60,7 +60,7 @@
, tzdata
, udisks2
, upower
-, epoxy
+, libepoxy
, gnome-user-share
, gnome-remote-desktop
, wrapGAppsHook
@@ -68,11 +68,11 @@
stdenv.mkDerivation rec {
pname = "gnome-control-center";
- version = "41.0";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-pWliIq01P8+aB8QG4ofsyROOJQZFyypZQaiP8GhWWME=";
+ sha256 = "sha256-gnH8azPsJBileDBN0+V9Zl8NfMcGqZqXvkGYSGGP4kg=";
};
patches = [
@@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
clutter-gtk
colord
colord-gtk
- epoxy
+ libepoxy
fontconfig
gdk-pixbuf
glib
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
index 6ab45283c8..766ed1b7cf 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -26,13 +26,13 @@
stdenv.mkDerivation rec {
pname = "gnome-desktop";
- version = "41.0";
+ version = "41.1";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-acsdPZoQcA62Y0jvHA5mqFX8WpeuYpAt+XpJnaEVYtI=";
+ sha256 = "sha256-voqvpk17ov0xB57tY505/aHqd+9301pnjwGcTZHUc8I=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index ff1d95861e..7ce00ac8f8 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -35,11 +35,11 @@
stdenv.mkDerivation rec {
pname = "gnome-initial-setup";
- version = "41.0";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "R/ZHW2bIQ+fVPZC6Dns5SHYt8VFjSkNvaMK5u6BQVgo=";
+ sha256 = "GTr79qMILaCjKncU8ejVKo20Vycpde0vNlQ2SjM5Gz8=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index fac50cd2b3..2ab3091ede 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
index 5b02fda3e3..ba6d05b3cb 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
@@ -4,13 +4,13 @@
let
pname = "gnome-screenshot";
- version = "40.0";
+ version = "41.0";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${name}.tar.xz";
- sha256 = "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n";
+ sha256 = "Stt97JJkKPdCY9V5ZnPPFC5HILbnaPVGio0JM/mMlZc=";
};
doCheck = true;
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix
index c1ebc43620..3ba6958fad 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix
@@ -1,6 +1,6 @@
{ fetchurl, lib, stdenv, substituteAll, meson, ninja, pkg-config, gnome, glib, gtk3, gsettings-desktop-schemas
, gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3
-, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl }:
+, libxslt, gettext, makeWrapper, systemd, xorg, libepoxy, gnugrep, bash, gnome-session-ctl }:
stdenv.mkDerivation rec {
pname = "gnome-session";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
buildInputs = [
glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome.adwaita-icon-theme
- gnome.gnome-settings-daemon gsettings-desktop-schemas systemd epoxy
+ gnome.gnome-settings-daemon gsettings-desktop-schemas systemd libepoxy
];
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 04a4b0984e..d9eeb9a8d8 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
in
stdenv.mkDerivation rec {
pname = "gnome-shell";
- version = "41.0";
+ version = "41.1";
outputs = [ "out" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "Uvlx6FFA5d50uTae9mVuSc6Vrx8jL8Hg3x8EYSmrT2U=";
+ sha256 = "X3QkVt/gBgXA8JCjcoymJ5e8SeUK+FK71yhdoaBRf/Y=";
};
patches = [
@@ -103,13 +103,6 @@ stdenv.mkDerivation rec {
url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/9a647c460b651aaec0b8a21f046cc289c1999416/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
sha256 = "pFvZli3TilUt6YwdZztpB8Xq7O60XfuWUuPMMVSpqLw=";
})
-
- # Make color picker in GTK work again
- # https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1990
- (fetchpatch {
- url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/a3dcdaae30bdcbadec7ba3fa31c9eb0bb2a4c8c2.patch";
- sha256 = "1UTWGZ5CiVJVCYcepaf+A6/8X/s6jUMsYB4BJ7VTjxk=";
- })
];
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
index 4d9a5c4076..848c6102fb 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -37,16 +37,16 @@
}:
let
- withFwupd = stdenv.isx86_64 || stdenv.isi686;
+ withFwupd = stdenv.hostPlatform.isx86;
in
stdenv.mkDerivation rec {
pname = "gnome-software";
- version = "41.0";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "AkC3bsnfYi2b7A6zjkrFY8rt5oCLrZO4gmPYCXD/OcE=";
+ sha256 = "OErdrMh4QlOoeXGBSweS+9LJQfpEiw+UOLv1dJgszBc=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 48e65009ad..1c905eec41 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
index 78b90a379c..678744f037 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
@@ -46,13 +46,13 @@
let self = stdenv.mkDerivation rec {
pname = "mutter";
- version = "41.0";
+ version = "41.1";
outputs = [ "out" "dev" "man" ];
src = fetchurl {
url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-+oChp0QETYjr/Wd/8DID1ncF7SzWJOoGy7i1iUjN+J4=";
+ sha256 = "WOY/0LxD81E08hMTr/Suv5LIKdbfTcmaBEoeN2aR4/M=";
};
patches = [
@@ -136,7 +136,7 @@ let self = stdenv.mkDerivation rec {
PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
passthru = {
- libdir = "${self}/lib/mutter-8";
+ libdir = "${self}/lib/mutter-9";
tests = {
libdirExists = runCommand "mutter-libdir-exists" {} ''
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
index 2a964964a0..4f7df313ad 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
index 9514caa1e9..f5a28ead33 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -25,11 +25,11 @@
stdenv.mkDerivation rec {
pname = "simple-scan";
- version = "40.5";
+ version = "40.6";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-61N55MtspgUJLJQiEMGEJdA2dz2nZUHkO4nYIj+CuaQ=";
+ sha256 = "sha256-8v8wWZjMRGNsH93iDNirHUQdSGOgWeLXpg+Od6/o8XE=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
index f08f51512c..00ac8e40aa 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
@@ -8,7 +8,8 @@
, gnome
, gtksourceview4
, gjs
-, webkitgtk_4_1
+, libsoup
+, webkitgtk
, icu
, wrapGAppsHook
, gst_all_1
@@ -17,7 +18,7 @@
, gtk3
, harfbuzz
, ninja
-, epoxy
+, libepoxy
}:
stdenv.mkDerivation rec {
@@ -48,11 +49,14 @@ stdenv.mkDerivation rec {
gtksourceview4
gdk-pixbuf
librsvg
- webkitgtk_4_1
- epoxy
+ libsoup
+ webkitgtk
+ libepoxy
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-ugly
];
# See https://github.com/NixOS/nixpkgs/issues/31168
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
index 8b091e000b..6fac906e4b 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "yelp-xsl";
- version = "41.0";
+ version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-yM1kwJO72MXV5H/TiGTpCDG1+c90A1MIcCBvqWY2pKU=";
+ sha256 = "sha256-DW2zesLvgSSD4BBHA/H6nPAy6eCVal8cOvvMI3kfilQ=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
index b1e094292b..4b3ee62dce 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
@@ -17,11 +17,11 @@
stdenv.mkDerivation rec {
pname = "yelp";
- version = "41.1";
+ version = "41.2";
src = fetchurl {
url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-RWpkFWR7zusBWbkLNVP/MocozymmCPzggCQjJQTMuHQ=";
+ sha256 = "sha256-sAvwM/At15ttPyVQMccd+NbtOOVSyHC485GjdHJMQ8U=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/README.md b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/README.md
index 14a1d08ad0..5586aae403 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/README.md
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/README.md
@@ -4,7 +4,7 @@ All extensions are packaged automatically. They can be found in the `pkgs.gnomeX
## Automatically packaged extensions
-The actual packages are created by `buildGnomeExtensions.nix`, provided the correct arguments are fed into it. The important extension data is stored in `extensions.json`, one line/item per extension. That file is generated by running `update-extensions.py`. Furthermore, the automatic generated names are dumped in `collisions.json` for manual inspection. `extensionRenames.nix` contains provides new names for all extensions that collide.
+The actual packages are created by `buildGnomeExtension.nix`, provided the correct arguments are fed into it. The important extension data is stored in `extensions.json`, one line/item per extension. That file is generated by running `update-extensions.py`. Furthermore, the automatic generated names are dumped in `collisions.json` for manual inspection. `extensionRenames.nix` contains new names for all extensions that collide.
### Extensions updates
@@ -20,6 +20,7 @@ For GNOME updates,
3. Update `supported_versions` in `./update-extensions.py` and re-run it
4. Change `gnomeExtensions` to the new version
5. Update `./extensionsRenames.nix` accordingly
+6. Update `all-packages.nix` accordingly (grep for `gnomeExtensions`)
## Manually packaged extensions
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
index 68898fa42b..c245d593d3 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-arcmenu";
- version = "14";
+ version = "19";
src = fetchFromGitLab {
owner = "arcmenu";
repo = "ArcMenu";
rev = "v${version}";
- sha256 = "sha256-Iobu5eNWSvAiTRe6wyx/0PgUtB9QIC9KdH0M1xhsM1I=";
+ sha256 = "sha256-GEeONrrH00Tt9tuxhH7Gv5lSZ2D/hFgeGbUstqJsWZo=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
deleted file mode 100644
index 7ac5f91673..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, glib, gettext, bash }:
-
-stdenv.mkDerivation rec {
- pname = "gnome-shell-extension-caffeine";
- version = "38";
-
- src = fetchFromGitHub {
- owner = "eonpatapon";
- repo = "gnome-shell-extension-caffeine";
- rev = "v${version}";
- sha256 = "0dyagnjmk91h96xr98mc177c473bqpxcv86qf6g3kyh3arwa9shs";
- };
-
- passthru = {
- extensionPortalSlug = "caffeine";
- extensionUuid = "caffeine@patapon.info";
- };
-
- nativeBuildInputs = [
- glib gettext
- ];
-
- buildPhase = ''
- runHook preBuild
- ${bash}/bin/bash ./update-locale.sh
- glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas
- runHook postBuild
- '';
-
- installPhase = ''
- runHook preInstall
- mkdir -p $out/share/gnome-shell/extensions
- cp -r "caffeine@patapon.info" $out/share/gnome-shell/extensions
- runHook postInstall
- '';
-
- meta = with lib; {
- description = "Fill the cup to inhibit auto suspend and screensaver";
- license = licenses.gpl2Only;
- maintainers = with maintainers; [ eperuffo ];
- homepage = "https://github.com/eonpatapon/gnome-shell-extension-caffeine";
- };
-}
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json
index 2f3a60eb3f..4652c2e594 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json
@@ -97,6 +97,14 @@
"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"
+ ],
+ "disable-unredirect-fullscreen-windows": [
+ "unredirect@vaina.lt",
+ "unredirect@aunetx"
+ ],
"floating-dock": [
"floatingDock@sun.wxg@gmail.com",
"floating-dock@nandoferreira_prof@hotmail.com"
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
index 6abff2c7b4..0d1f8df4f2 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-dash-to-panel";
- version = "43";
+ version = "45";
src = fetchFromGitHub {
owner = "home-sweet-gnome";
repo = "dash-to-panel";
rev = "v${version}";
- sha256 = "08n6lwcj943p0vzi2vif7j3nza6xg5z1yka68vwc34ia9ys352m7";
+ sha256 = "05bfd3b1g9zd86pl1rpgfqsmip271lasyfj8phpqf1gdds5yz6f6";
};
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
index f4f6fba89c..e2f9bb2c2d 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
@@ -55,8 +55,6 @@ let
];
in rec {
- inherit buildShellExtension;
-
gnome38Extensions = mapUuidNames (produceExtensionsList "38");
gnome40Extensions = mapUuidNames (produceExtensionsList "40");
gnome41Extensions = mapUuidNames (produceExtensionsList "41");
@@ -73,11 +71,14 @@ in rec {
(extensions: extensions // lib.optionalAttrs (config.allowAliases or true) {
unite-shell = gnomeExtensions.unite; # added 2021-01-19
arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
+ disable-unredirect = gnomeExtensions.disable-unredirect-fullscreen-windows; # added 2021-11-20
nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
remove-dropdown-arrows = throw "gnomeExtensions.remove-dropdown-arrows removed since 2021-05-25: The extensions has not seen an update sine GNOME 3.34. Furthermore, the functionality it provides is obsolete as of GNOME 40.";
})
+ # Export buildShellExtension function
+ (extensions: extensions // { inherit buildShellExtension; })
# Make the set "public"
lib.recurseIntoAttrs
];
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index 058f0c54ad..b431e7da44 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -1,29 +1,58 @@
{ lib
, ddcutil
, gjs
+, gnome
+, gobject-introspection
, xprop
+, touchegg
+, vte
+, wrapGAppsHook
}:
+let
+ # Helper method to reduce redundancy
+ patchExtension = name: override: super: (super // {
+ ${name} = super.${name}.overrideAttrs override;
+ });
+in
# A set of overrides for automatically packaged extensions that require some small fixes.
# The input must be an attribute set with the extensions' UUIDs as keys and the extension
# derivations as values. Output is the same, but with patches applied.
#
# Note that all source patches refer to the built extension as published on extensions.gnome.org, and not
# the upstream repository's sources.
-super: super // {
+super: lib.trivial.pipe super [
+ (patchExtension "caffeine@patapon.info" (old: {
+ meta.maintainers = with lib.maintainers; [ eperuffo ];
+ }))
- "dash-to-dock@micxgx.gmail.com" = super."dash-to-dock@micxgx.gmail.com".overrideAttrs (old: {
+ (patchExtension "dash-to-dock@micxgx.gmail.com" (old: {
meta.maintainers = with lib.maintainers; [ eperuffo jtojnar rhoriguchi ];
- });
+ }))
- "display-brightness-ddcutil@themightydeity.github.com" = super."display-brightness-ddcutil@themightydeity.github.com".overrideAttrs (old: {
+ (patchExtension "ddterm@amezin.github.com" (old: {
+ # Requires gjs, zenity & vte via the typelib
+ nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+ buildInputs = [ vte ];
+ postPatch = ''
+ for file in *.js com.github.amezin.ddterm; do
+ substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
+ substituteInPlace $file --replace "zenity" "${gnome.zenity}/bin/zenity"
+ done
+ '';
+ postFixup = ''
+ wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/com.github.amezin.ddterm"
+ '';
+ }))
+
+ (patchExtension "display-brightness-ddcutil@themightydeity.github.com" (old: {
# Has a hard-coded path to a run-time dependency
# https://github.com/NixOS/nixpkgs/issues/136111
postPatch = ''
substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
'';
- });
+ }))
- "gnome-shell-screenshot@ttll.de" = super."gnome-shell-screenshot@ttll.de".overrideAttrs (old: {
+ (patchExtension "gnome-shell-screenshot@ttll.de" (old: {
# Requires gjs
# https://github.com/NixOS/nixpkgs/issues/136112
postPatch = ''
@@ -31,12 +60,20 @@ super: super // {
substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
done
'';
- });
+ }))
- "unite@hardpixel.eu" = super."unite@hardpixel.eu".overrideAttrs (old: {
+ (patchExtension "unite@hardpixel.eu" (old: {
buildInputs = [ xprop ];
meta.maintainers = with lib.maintainers; [ rhoriguchi ];
- });
+ }))
-}
+ (patchExtension "x11gestures@joseexposito.github.io" (old: {
+ # Extension can't find Touchegg
+ # https://github.com/NixOS/nixpkgs/issues/137621
+ postPatch = ''
+ substituteInPlace "src/touchegg/ToucheggConfig.js" \
+ --replace "GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'usr', 'share', 'touchegg', 'touchegg.conf'])" "'${touchegg}/share/touchegg/touchegg.conf'"
+ '';
+ }))
+]
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
index 265977ffb8..afed1ad2d7 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -12,15 +12,18 @@
"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";
+
+ "unredirect@vaina.lt" = "disable-unredirect-fullscreen-windows";
+ "unredirect@aunetx" = "disable-unredirect-fullscreen-windows-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 #######
- "workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
- "horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
-
"lockkeys@vaina.lt" = "lock-keys";
"lockkeys@fawtytoo" = "lock-keys-2";
@@ -71,7 +74,6 @@
# These extensions are automatically packaged at the moment. We preserve the old attribute name
# for backwards compatibility.
"appindicatorsupport@rgcjonas.gmail.com" = "appindicator"; # extensionPortalSlug is "appindicator-support"
- "unredirect@vaina.lt" = "disable-unredirect"; # extensionPortalSlug is "disable-unredirect-fullscreen-windows"
"drawOnYourScreen@abakkk.framagit.org" = "draw-on-your-screen"; # extensionPortalSlug is "draw-on-you-screen"
"timepp@zagortenay333" = "timepp"; # extensionPortalSlug is "time"
"windowIsReady_Remover@nunofarruca@gmail.com" = "window-is-ready-remover"; # extensionPortalSlug is "window-is-ready-notification-remover"
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
index 7dcaac3c4c..d259109363 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
@@ -13,155 +13,158 @@
, {"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": "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": "7", "sha256": "1zlxvn9c4ydpvkja6vpyvif21rfi1y86rzi0iqms5mk8in4cgx41", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JvbnppbmkvZ25vbWUtc2hlbGwtcGVybWFuZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcm1hbmVudC1ub3RpZmljYXRpb25zQGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1zlxvn9c4ydpvkja6vpyvif21rfi1y86rzi0iqms5mk8in4cgx41", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JvbnppbmkvZ25vbWUtc2hlbGwtcGVybWFuZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcm1hbmVudC1ub3RpZmljYXRpb25zQGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"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"}, "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": "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": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "41": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}}}
, {"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="}, "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": "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": "69", "sha256": "0dyaxcfj2jcmy253b5hmi8kfrz9x3faqm7akyf7aawk2c047y21k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNjkKfQ=="}, "41": {"version": "69", "sha256": "0dyaxcfj2jcmy253b5hmi8kfrz9x3faqm7akyf7aawk2c047y21k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNjkKfQ=="}}}
, {"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": "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": "23", "sha256": "1zbnizandqdsakncs3q7p6ylagdf49v5wz658vx47mh4mzbmisfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgImxvY2FsZSI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiUXVpY2sgQ2xvc2UgaW4gT3ZlcnZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIlBhb2xvIFRyYW5xdWlsbGkiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1pZGRsZWNsaWNrY2xvc2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3A5MXBhdWwvbWlkZGxlY2xpY2tjbG9zZSIsCiAgInV1aWQiOiAibWlkZGxlY2xpY2tjbG9zZUBwYW9sby50cmFucXVpbGxpLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "1zbnizandqdsakncs3q7p6ylagdf49v5wz658vx47mh4mzbmisfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgImxvY2FsZSI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiUXVpY2sgQ2xvc2UgaW4gT3ZlcnZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIlBhb2xvIFRyYW5xdWlsbGkiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1pZGRsZWNsaWNrY2xvc2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3A5MXBhdWwvbWlkZGxlY2xpY2tjbG9zZSIsCiAgInV1aWQiOiAibWlkZGxlY2xpY2tjbG9zZUBwYW9sby50cmFucXVpbGxpLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"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": "20", "sha256": "1hj58i77bm3maczinvwp2lyxyvnxjf49p7afylp5jwfin4wkw7m5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wOTFwYXVsL3N0YXR1cy1hcmVhLWhvcml6b250YWwtc3BhY2luZy1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInN0YXR1cy1hcmVhLWhvcml6b250YWwtc3BhY2luZ0BtYXRoZW1hdGljYWwuY29mZmVlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "1hj58i77bm3maczinvwp2lyxyvnxjf49p7afylp5jwfin4wkw7m5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wOTFwYXVsL3N0YXR1cy1hcmVhLWhvcml6b250YWwtc3BhY2luZy1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInN0YXR1cy1hcmVhLWhvcml6b250YWwtc3BhY2luZ0BtYXRoZW1hdGljYWwuY29mZmVlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
, {"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="}, "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": "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": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
, {"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"}, "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": "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": "100", "sha256": "19mwdahjj5lyjbhzl7cha129zmccfgxy4yjhrsfk18i4k394rbcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMDAKfQ=="}, "40": {"version": "100", "sha256": "19mwdahjj5lyjbhzl7cha129zmccfgxy4yjhrsfk18i4k394rbcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMDAKfQ=="}, "41": {"version": "100", "sha256": "19mwdahjj5lyjbhzl7cha129zmccfgxy4yjhrsfk18i4k394rbcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMDAKfQ=="}}}
+, {"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": "20", "sha256": "1aj5ry3g93wx1crn8rr2jm9vbz07kz0r7qc6sr2vj352bgjzrlbf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "20", "sha256": "1aj5ry3g93wx1crn8rr2jm9vbz07kz0r7qc6sr2vj352bgjzrlbf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"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"}, "41": {"version": "36", "sha256": "1pnw1fm38zxacjyz31vw9wfdmk1h6i4grxzi3n1nlz23gpkn3df3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iYXJ0bC90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
, {"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"}, "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=="}, "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": "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": "64", "sha256": "0m4dcrlmmfcqb1lvlcdasgyjx8v4iahnbvxi1rkini03g3z8skp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjYzLWRpcnR5IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjQKfQ=="}, "41": {"version": "64", "sha256": "0m4dcrlmmfcqb1lvlcdasgyjx8v4iahnbvxi1rkini03g3z8skp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjYzLWRpcnR5IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjQKfQ=="}}}
, {"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"}, "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": "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": "13", "sha256": "19cxrgxpim2dca6llbi8cr34hjx3pab2i4687803r96cp2hsg07l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzIiwKICAibmFtZSI6ICJBbGwgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlvbmVsL2FsbC13aW5kb3dzIiwKICAidXVpZCI6ICJhbGwtd2luZG93c0Bleml4Lm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "19cxrgxpim2dca6llbi8cr34hjx3pab2i4687803r96cp2hsg07l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzIiwKICAibmFtZSI6ICJBbGwgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlvbmVsL2FsbC13aW5kb3dzIiwKICAidXVpZCI6ICJhbGwtd2luZG93c0Bleml4Lm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
, {"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": "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": "25", "sha256": "10bzd0vdqm398xwyj2bn5klxmaazwh39clwp1069qszsxmw0lr86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkuIiwKICAibmFtZSI6ICJQaXhlbCBTYXZlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAuMiIsCiAgICAiNDAuMyIsCiAgICAiNDEuMCIsCiAgICAiNDEuMSIsCiAgICAiNDEuMiIsCiAgICAiNDEuMyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlYWRhbG5peC9waXhlbC1zYXZlciIsCiAgInV1aWQiOiAicGl4ZWwtc2F2ZXJAZGVhZGFsbml4Lm1lIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "25", "sha256": "10bzd0vdqm398xwyj2bn5klxmaazwh39clwp1069qszsxmw0lr86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkuIiwKICAibmFtZSI6ICJQaXhlbCBTYXZlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAuMiIsCiAgICAiNDAuMyIsCiAgICAiNDEuMCIsCiAgICAiNDEuMSIsCiAgICAiNDEuMiIsCiAgICAiNDEuMyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlYWRhbG5peC9waXhlbC1zYXZlciIsCiAgInV1aWQiOiAicGl4ZWwtc2F2ZXJAZGVhZGFsbml4Lm1lIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "41": {"version": "25", "sha256": "10bzd0vdqm398xwyj2bn5klxmaazwh39clwp1069qszsxmw0lr86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkuIiwKICAibmFtZSI6ICJQaXhlbCBTYXZlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAuMiIsCiAgICAiNDAuMyIsCiAgICAiNDEuMCIsCiAgICAiNDEuMSIsCiAgICAiNDEuMiIsCiAgICAiNDEuMyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlYWRhbG5peC9waXhlbC1zYXZlciIsCiAgInV1aWQiOiAicGl4ZWwtc2F2ZXJAZGVhZGFsbml4Lm1lIiwKICAidmVyc2lvbiI6IDI1Cn0="}}}
, {"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"}, "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": "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": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}, "41": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}}}
, {"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": "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": "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": "20", "sha256": "1xw23rr070nvv3335fg4nbj280a5y10xsmv1xg2sfqn5gnxkj3jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "1xw23rr070nvv3335fg4nbj280a5y10xsmv1xg2sfqn5gnxkj3jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"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": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "41": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}}}
+, {"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": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}}}
, {"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=="}}}
, {"uuid": "hide-dash@xenatt.github.com", "name": "Hide Dash X", "pname": "hide-dash", "description": "Hide the dash from the activities overview.", "link": "https://extensions.gnome.org/extension/805/hide-dash/", "shell_version_map": {"38": {"version": "10", "sha256": "059cy18awzv9qyn803zjyxiznacnf6pai8px2mb9mrbyf98153xz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGRhc2ggZnJvbSB0aGUgYWN0aXZpdGllcyBvdmVydmlldy4iLAogICJuYW1lIjogIkhpZGUgRGFzaCBYIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphY2JhcnRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VkZW5ob2Zlci9NaW5pbWFsaXNtLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJoaWRlLWRhc2hAeGVuYXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"uuid": "hide-workspace@xenatt.github.com", "name": "Hide Workspace Thumbnails", "pname": "hide-workspace-thumbnails", "description": "Hide workspace thumbnails from the overview. But don't worry they are still present and one can switch between them like usual with e.g. shortcuts..", "link": "https://extensions.gnome.org/extension/808/hide-workspace-thumbnails/", "shell_version_map": {"40": {"version": "16", "sha256": "0443zyqr2hwq5fj3h8zch8iav83xzj4bqn1k6qd5f2z46kvzj611", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgd29ya3NwYWNlIHRodW1ibmFpbHMgZnJvbSB0aGUgb3ZlcnZpZXcuIEJ1dCBkb24ndCB3b3JyeSB0aGV5IGFyZSBzdGlsbCBwcmVzZW50IGFuZCBvbmUgY2FuIHN3aXRjaCBiZXR3ZWVuIHRoZW0gbGlrZSB1c3VhbCB3aXRoIGUuZy4gc2hvcnRjdXRzLi4iLAogICJuYW1lIjogIkhpZGUgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWRlbmhvZmVyL01pbmltYWxpc20tR25vbWUtU2hlbGwiLAogICJ1dWlkIjogImhpZGUtd29ya3NwYWNlQHhlbmF0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
, {"uuid": "keyman@dpoetzsch.github.com", "name": "KeyMan", "pname": "keyman", "description": "Access passwords from the gnome keyring in a convenient way:\nSimply search for your password and copy it to clipboad by clicking it. After a certain amount of time it will be removed automatically (default is 5 seconds). As this only works if the keyrings are unlocked, this extension also provides easy access to lock/unlock keyrings.", "link": "https://extensions.gnome.org/extension/819/keyman/", "shell_version_map": {"40": {"version": "20", "sha256": "1wd76bdnzs7mxwwyvffw0fm8r8chsblz3dinpwiyc5d5kmlnyv5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBwYXNzd29yZHMgZnJvbSB0aGUgZ25vbWUga2V5cmluZyBpbiBhIGNvbnZlbmllbnQgd2F5OlxuU2ltcGx5IHNlYXJjaCBmb3IgeW91ciBwYXNzd29yZCBhbmQgY29weSBpdCB0byBjbGlwYm9hZCBieSBjbGlja2luZyBpdC4gQWZ0ZXIgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGl0IHdpbGwgYmUgcmVtb3ZlZCBhdXRvbWF0aWNhbGx5IChkZWZhdWx0IGlzIDUgc2Vjb25kcykuIEFzIHRoaXMgb25seSB3b3JrcyBpZiB0aGUga2V5cmluZ3MgYXJlIHVubG9ja2VkLCB0aGlzIGV4dGVuc2lvbiBhbHNvIHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRvIGxvY2svdW5sb2NrIGtleXJpbmdzLiIsCiAgIm5hbWUiOiAiS2V5TWFuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrZXltYW5AcG9laGUuZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtleW1hbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcG9ldHpzY2gva2V5bWFuIiwKICAidXVpZCI6ICJrZXltYW5AZHBvZXR6c2NoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
-, {"uuid": "time_tracker_jsnjack@gmail.com", "name": "Time Tracker", "pname": "time-tracker", "description": "Helps track time", "link": "https://extensions.gnome.org/extension/823/time-tracker/", "shell_version_map": {"40": {"version": "22", "sha256": "07fp4zal4s91j0z6lr07xypr7yzmc7lnnh5pplxjnyvqa5aplagy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanNuamFjay90aW1lLXRyYWNrZXIvIiwKICAidXVpZCI6ICJ0aW1lX3RyYWNrZXJfanNuamFja0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
+, {"uuid": "time_tracker_jsnjack@gmail.com", "name": "Time Tracker", "pname": "time-tracker", "description": "Helps track time", "link": "https://extensions.gnome.org/extension/823/time-tracker/", "shell_version_map": {"40": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
, {"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": "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": "18", "sha256": "07kni0s4g97dawmla5m6yqfrmzgml4gbgjaa67brx1qgfaxamgfk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHNsYmNrL2dub21lLXNoZWxsLWV4dGVuc2lvbi1yYWRpbyIsCiAgInV1aWQiOiAicmFkaW9AaHNsYmNrLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"}, "41": {"version": "18", "sha256": "07kni0s4g97dawmla5m6yqfrmzgml4gbgjaa67brx1qgfaxamgfk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHNsYmNrL2dub21lLXNoZWxsLWV4dGVuc2lvbi1yYWRpbyIsCiAgInV1aWQiOiAicmFkaW9AaHNsYmNrLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"}}}
, {"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"}}}
+, {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {"38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="}, "40": {"version": "40", "sha256": "1s4jzq1iy006k3m0r28qiayb46135y71qqv583k1sn9sppda5b4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0MAp9"}, "41": {"version": "44", "sha256": "0pbw1w3y9clq1pmxkblsp85kw5h8znhjf223bplqhjb74g89v80z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0NAp9"}}}
, {"uuid": "FRC@jcdubacq.dubacq.fr", "name": "French Republican Calendar", "pname": "french-republican-calendar", "description": "Displays the French Republican Calendar in the top panel", "link": "https://extensions.gnome.org/extension/874/french-republican-calendar/", "shell_version_map": {"38": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "0pdf76kf6z7m9wvqsy36v1r02zfk8pgkpf21im2cq9x4qwh9gkf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInNjcmVlbnNob3Qtd2luZG93LXNpemVyQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "41": {"version": "26", "sha256": "1n9i5x49vgafk9bxppr8hrjv86klg5yxklba0xf92xdhyx8j6sfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
, {"uuid": "mailnag@pulb.github.com", "name": "Mailnag", "pname": "mailnag", "description": "Mail indicator (GMail, IMAP, POP) for GNOME.\n\nPlease note that this extension requires the mailnag daemon.\nInstall it from your distros package repositories or get it here:\nhttps://github.com/pulb/mailnag\n\nPlease also note that this version of the extension does not support avatars (as shown in the screenshot).\nIf you like to have avatar support install this extension from your distros package repositories or get a package from here:\nhttps://github.com/pulb/mailnag-gnome-shell\n\nIMPORTANT:\nI do not get notifications for user comments. Please always report bugs here:\nhttps://github.com/pulb/mailnag-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/886/mailnag/", "shell_version_map": {"38": {"version": "20", "sha256": "15n816y34qlc7va72q75ngzw1my3n5j7xhg9a6dc0g8q4dd0g2r9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWFpbG5hZ0BwdWxiLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "21", "sha256": "060lmc6jacjv1p4a6n7c3l0kmfskq012pgrf2gar0kf49lqrp665", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm1haWxuYWdAcHVsYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
-, {"uuid": "mmod-panel@mmogp.com", "name": "MMOD Panel", "pname": "mmod-panel", "description": "Upgrades the Topbar in Gnome3, creating a customizable panel and providing options for fine-tuning your Desktop Experience.\n\nFeatures include:\n▸ Set comfort levels to provide theme support and fine-tune the overall look and feel of the panel.\n▸ Set the location/position of the panel (bottom by default).\n▸ Add a button to the panel in place of the activities link, using an icon of your preference.\n▸ Auto-hide the panel when not active/in-focus (makes use of pressure/gesture for showing the panel).\n▸ Display and manage your favorites/running apps directly on the panel.\n▸ Move the date menu to the aggregate/tray area.\n▸ Access and manage your extension preferences directly from the aggregate menu.\n▸ Customize behavior of the overview and panel(hot-corners/animations/effects) to suit your preferences.\n▸ More to come soon!\n\nThis project is loosely based on the Panel Settings extension:\nhttps://github.com/eddiefullmetal/gnome-shell-extensions/tree/master/panelSettings%40eddiefullmetal.gr\n\nSadly, Panel Settings has not seen any maintenance in years, though this is why I decided to create MMOD Panel.\n\nI also took inspiration from the following Gnome extensions: System-Monitor, Taskbar, and DashToDock.\n\nFor those of you who are wondering, the theme used in the screen shot is the Zukitwo-Dark-Shell Shell Theme; \neverything else is default Gnome on Debian Buster. However, the author of the aforementioned shell theme has \nchanged the name for various reasons to Ciliora-Prima-Shell - which can be found here:\n\n http://gnome-look.org/content/show.php?content=165096\n\nVersion 10 (1.2.1-10) for Gnome-Shell: 3.10, 3.12, 3.12.2, 3.14, 3.14.4, 3.16, 3.16.2, 3.18, 3.20, 3.22, 3.24, 3.26, 3.26.2, 3.28, 3.30, 3.32, 3.34, 3.35, 3.35.91, 3.36, 3.36.3, 3.36.4, 3.36.6, 3.38, 3.38.2\nRik \n\nGerman Translation(s) for MMOD-Panel courtesy of Jonius Zeidler \n\nSource Repository: https://gitlab.com/mmod/mmod-panel/\n", "link": "https://extensions.gnome.org/extension/898/mmod-panel/", "shell_version_map": {"38": {"version": "10", "sha256": "00c52ddg039hd0r6qkq8hmhcl6x6s8lbndn7g53cscjwd0yqxk7j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cblZlcnNpb24gMTAgKDEuMi4xLTEwKSBmb3IgR25vbWUtU2hlbGw6IDMuMTAsIDMuMTIsIDMuMTIuMiwgMy4xNCwgMy4xNC40LCAzLjE2LCAzLjE2LjIsIDMuMTgsIDMuMjAsIDMuMjIsIDMuMjQsIDMuMjYsIDMuMjYuMiwgMy4yOCwgMy4zMCwgMy4zMiwgMy4zNCwgMy4zNSwgMy4zNS45MSwgMy4zNiwgMy4zNi4zLCAzLjM2LjQsIDMuMzYuNiwgMy4zOCwgMy4zOC4yXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xMi4yIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE0LjQiLAogICAgIjMuMTYuMiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4yNi4yIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuMzYuMyIsCiAgICAiMy4zNi40IiwKICAgICIzLjM1LjkxIiwKICAgICIzLjM2LjYiLAogICAgIjMuMzguMiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21tb2QvbW1vZC1wYW5lbC8iLAogICJ1dWlkIjogIm1tb2QtcGFuZWxAbW1vZ3AuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "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\nFor 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, 40.0, 40.5, 41.0 (since version 12.0.0) f\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": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
, {"uuid": "modern-calc@kaer", "name": "Modern Calc", "pname": "modern-calc", "description": "A full featured calculator for gnome-shell.", "link": "https://extensions.gnome.org/extension/900/modern-calc/", "shell_version_map": {"38": {"version": "11", "sha256": "0f0fmldcr8ywghp8w61wvi2qb29yc82xmgkqb7khj14zgv4l6apw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBjYWxjdWxhdG9yIGZvciBnbm9tZS1zaGVsbC4iLAogICJuYW1lIjogIk1vZGVybiBDYWxjIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkthZXIgKHRoZS50aGluLmtpbmcud2F5KzIwMTRAZ21haWwuY29tKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb2Rlcm4tY2FsYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1vZGVybi1jYWxjIiwKICAidXVpZCI6ICJtb2Rlcm4tY2FsY0BrYWVyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "disconnect-wifi@kgshank.net", "name": "Disconnect Wifi", "pname": "disconnect-wifi", "description": "Adds a Disconnect option for Wifi in status menu, when a network is connected. Shows a Reconnect option, after network is disconnected.", "link": "https://extensions.gnome.org/extension/904/disconnect-wifi/", "shell_version_map": {"38": {"version": "28", "sha256": "0j5f3ckx43zqdhr5iby36rhllgd9pvl8sshpzwfwdwff220yablr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtZGlzY29ubmVjdC13aWZpIiwKICAidXVpZCI6ICJkaXNjb25uZWN0LXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "0j5f3ckx43zqdhr5iby36rhllgd9pvl8sshpzwfwdwff220yablr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtZGlzY29ubmVjdC13aWZpIiwKICAidXVpZCI6ICJkaXNjb25uZWN0LXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
-, {"uuid": "refresh-wifi@kgshank.net", "name": "Refresh Wifi Connections", "pname": "refresh-wifi-connections", "description": "This extension adds a refresh button to the Wi-Fi connection selection dialog to manually request for a network scan.\n\nNOTE: In GNOME Shell 3.32 and above, the available network list is automatically updated every 15 seconds, so most people probably don't need this extension anymore.", "link": "https://extensions.gnome.org/extension/905/refresh-wifi-connections/", "shell_version_map": {"38": {"version": "14", "sha256": "18jszbk9sszyjvjdh28s1ynj8s5f8y5xqh4mqy1msnbg68m228bc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtcmVmcmVzaC13aWZpIiwKICAidXVpZCI6ICJyZWZyZXNoLXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"uuid": "sound-output-device-chooser@kgshank.net", "name": "Sound Input & Output Device Chooser", "pname": "sound-output-device-chooser", "description": "Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI , Speakers etc. of the same device are also displayed for selection. V20+ needs python as dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English", "link": "https://extensions.gnome.org/extension/906/sound-output-device-chooser/", "shell_version_map": {"38": {"version": "38", "sha256": "1dxn1cag03y9kak9pipniwazqai3mxizmhjm5gp86ifgaaaps5sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAzOAp9"}, "40": {"version": "38", "sha256": "1dxn1cag03y9kak9pipniwazqai3mxizmhjm5gp86ifgaaaps5sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAzOAp9"}}}
+, {"uuid": "disconnect-wifi@kgshank.net", "name": "Disconnect Wifi", "pname": "disconnect-wifi", "description": "Adds a Disconnect option for Wifi in status menu, when a network is connected. Shows a Reconnect option, after network is disconnected.", "link": "https://extensions.gnome.org/extension/904/disconnect-wifi/", "shell_version_map": {"38": {"version": "30", "sha256": "1i7x0zxswdr9cyhf3y5frq4phg9pr7ygh5y1k5hnd85lhi855kaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLWRpc2Nvbm5lY3Qtd2lmaSIsCiAgInV1aWQiOiAiZGlzY29ubmVjdC13aWZpQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDMwCn0="}, "40": {"version": "30", "sha256": "1i7x0zxswdr9cyhf3y5frq4phg9pr7ygh5y1k5hnd85lhi855kaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLWRpc2Nvbm5lY3Qtd2lmaSIsCiAgInV1aWQiOiAiZGlzY29ubmVjdC13aWZpQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDMwCn0="}, "41": {"version": "30", "sha256": "1i7x0zxswdr9cyhf3y5frq4phg9pr7ygh5y1k5hnd85lhi855kaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLWRpc2Nvbm5lY3Qtd2lmaSIsCiAgInV1aWQiOiAiZGlzY29ubmVjdC13aWZpQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDMwCn0="}}}
+, {"uuid": "refresh-wifi@kgshank.net", "name": "Refresh Wifi Connections", "pname": "refresh-wifi-connections", "description": "This extension adds a refresh button to the Wi-Fi connection selection dialog to manually request for a network scan.\n\nNOTE: In GNOME Shell 3.32 and above, the available network list is automatically updated every 15 seconds, so most people probably don't need this extension anymore.", "link": "https://extensions.gnome.org/extension/905/refresh-wifi-connections/", "shell_version_map": {"38": {"version": "15", "sha256": "1ck4agyvab61nb0sy1qcwpiyv4c3c1z0bmjrimmmfw6bmaw351dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1yZWZyZXNoLXdpZmkiLAogICJ1dWlkIjogInJlZnJlc2gtd2lmaUBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "1ck4agyvab61nb0sy1qcwpiyv4c3c1z0bmjrimmmfw6bmaw351dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1yZWZyZXNoLXdpZmkiLAogICJ1dWlkIjogInJlZnJlc2gtd2lmaUBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "1ck4agyvab61nb0sy1qcwpiyv4c3c1z0bmjrimmmfw6bmaw351dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1yZWZyZXNoLXdpZmkiLAogICJ1dWlkIjogInJlZnJlc2gtd2lmaUBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAxNQp9"}}}
+, {"uuid": "sound-output-device-chooser@kgshank.net", "name": "Sound Input & Output Device Chooser", "pname": "sound-output-device-chooser", "description": "Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI , Speakers etc. of the same device are also displayed for selection. V20+ needs python as dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English", "link": "https://extensions.gnome.org/extension/906/sound-output-device-chooser/", "shell_version_map": {"38": {"version": "40", "sha256": "0yvx43jjdc3rn487fd39w3vszrzy5a70yan26cja0pwy52sv4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLXNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgInV1aWQiOiAic291bmQtb3V0cHV0LWRldmljZS1jaG9vc2VyQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDQwCn0="}, "40": {"version": "40", "sha256": "0yvx43jjdc3rn487fd39w3vszrzy5a70yan26cja0pwy52sv4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLXNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgInV1aWQiOiAic291bmQtb3V0cHV0LWRldmljZS1jaG9vc2VyQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDQwCn0="}, "41": {"version": "40", "sha256": "0yvx43jjdc3rn487fd39w3vszrzy5a70yan26cja0pwy52sv4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLXNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgInV1aWQiOiAic291bmQtb3V0cHV0LWRldmljZS1jaG9vc2VyQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDQwCn0="}}}
, {"uuid": "multi-monitors-add-on@spin83", "name": "Multi Monitors Add-On", "pname": "multi-monitors-add-on", "description": "Add multiple monitors overview and panel for gnome-shell.", "link": "https://extensions.gnome.org/extension/921/multi-monitors-add-on/", "shell_version_map": {"38": {"version": "23", "sha256": "1snj6xhl7qf3lmjvrn7sbgkmb3rpq4b4q88yfdlx5vrzn6sw5bzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBtdWx0aXBsZSBtb25pdG9ycyBvdmVydmlldyBhbmQgcGFuZWwgZm9yIGdub21lLXNoZWxsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm11bHRpLW1vbml0b3JzLWFkZC1vbiIsCiAgIm5hbWUiOiAiTXVsdGkgTW9uaXRvcnMgQWRkLU9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bHRpLW1vbml0b3JzLWFkZC1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NwaW44My9tdWx0aS1tb25pdG9ycy1hZGQtb24uZ2l0IiwKICAidXVpZCI6ICJtdWx0aS1tb25pdG9ycy1hZGQtb25Ac3BpbjgzIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
, {"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": "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": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
, {"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=="}, "41": {"version": "14", "sha256": "0q4fz7n6k70wlbd314xpr5zfkv3l35z3hc5kz4fwg859q3yvrd55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/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": "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": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
, {"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="}, "41": {"version": "34", "sha256": "1bgj8w7qlz4kv70k6rjmm5f5rygn2n5fp0rd29jj1wfm50hfvzg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
-, {"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": "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": "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": "32", "sha256": "1dwjzpmaxl39nzgcnmhpg5bnpx0p1cbqdykd3h1slrwfv91ir4mk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "1dwjzpmaxl39nzgcnmhpg5bnpx0p1cbqdykd3h1slrwfv91ir4mk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
, {"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="}}}
-, {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n Can support AUR or other distros by changing command used to check for and apply updates.", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {"38": {"version": "39", "sha256": "15s0cs41h01kb8dx231ww06rxalmz7cr173z7pm9sfkvs2106dhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "40": {"version": "42", "sha256": "04vz1wdds6172vrg28rmkj47z6id4a3ynr6cfnvkyjmzi8xglgji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFwaGFlbFJvY2hldC9hcmNoLXVwZGF0ZSIsCiAgInV1aWQiOiAiYXJjaC11cGRhdGVAUmFwaGFlbFJvY2hldCIsCiAgInZlcnNpb24iOiA0Mgp9"}}}
+, {"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": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n Can support AUR or other distros by changing command used to check for and apply updates.", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {"38": {"version": "39", "sha256": "15s0cs41h01kb8dx231ww06rxalmz7cr173z7pm9sfkvs2106dhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "40": {"version": "45", "sha256": "09vj5cx0c7ykbglgzzh6dkgzf3rdpzxa9nkx35q41cizv1lv6k1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}, "41": {"version": "45", "sha256": "09vj5cx0c7ykbglgzzh6dkgzf3rdpzxa9nkx35q41cizv1lv6k1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}}}
, {"uuid": "dynamic-panel-transparency@rockon999.github.io", "name": "Dynamic Panel Transparency", "pname": "dynamic-panel-transparency", "description": "Miss dynamic panel transparency in 3.32 and up? Try the original dynamic panel with much more customization! This extension will fade your top panel to nothingness when there are no maximized windows present! Never again will the panel be abruptly darkened.\n\nMay be incompatible with some extensions that make extensive changes to the panel.\n\nIf your theme isn't working correctly with this extension enable 'Remove Excessive Panel Styling' in the Background section of preferences. This particularly impacts the default *Ubuntu* theme!", "link": "https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/", "shell_version_map": {"38": {"version": "34", "sha256": "10w5kvmspy4rp4jnwx0rj2crbdyi1lxv81vhi8zx490fhwgmlkvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V3bHNoL2R5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5LyIsCiAgInV1aWQiOiAiZHluYW1pYy1wYW5lbC10cmFuc3BhcmVuY3lAcm9ja29uOTk5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzNAp9"}, "40": {"version": "35", "sha256": "1znc564xd7n4k2klfc0kkip6hmadqdsa50p0sq0717h407m9p0vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ld2xzaC9keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeS8iLAogICJ1dWlkIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5QHJvY2tvbjk5OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
-, {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "10", "sha256": "09835gdpq5ssx14dar2m0hgi97a2k0hias9ffb3vpwyqw2d5jm30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "09835gdpq5ssx14dar2m0hgi97a2k0hias9ffb3vpwyqw2d5jm30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
, {"uuid": "taskwhisperer-extension@infinicode.de", "name": "TaskWhisperer", "pname": "taskwhisperer", "description": "Taskwhisperer is a extension for TaskWarrior Application https://taskwarrior.org. It is to display upcoming tasks and task details as well as to create and modify them.\n", "link": "https://extensions.gnome.org/extension/1039/taskwhisperer/", "shell_version_map": {"38": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n - Unsplash (https://unsplash.com/)\n - Wallhaven (https://alpha.wallhaven.cc/)\n - Reddit (https://reddit.com)\n - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "0gwcqd5wzjnp3r4mpcbacbqk9j9v4pxh2wlcl5ssinj8z4pxm5qj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "26", "sha256": "0izjsa7h1x3yn67dxw1a1mp6qmn7xpp39ay3iha5i2pisznfgrni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNi4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
-, {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "16", "sha256": "1ag94vhwx67cpdc4ry307lxrj60nkkwwd9kv49k5mfwy9hbxpbf3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "1ag94vhwx67cpdc4ry307lxrj60nkkwwd9kv49k5mfwy9hbxpbf3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
-, {"uuid": "timezone@jwendell", "name": "Timezone", "pname": "timezone", "description": "See people with their timezones from the Shell", "link": "https://extensions.gnome.org/extension/1060/timezone/", "shell_version_map": {"40": {"version": "18", "sha256": "1ksb8pm2y4lxjcwn2l0yj6piz5cqgmzx6k4rygx1mbh5y76mwdji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
+, {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"uuid": "timezone@jwendell", "name": "Timezone", "pname": "timezone", "description": "See people with their timezones from the Shell", "link": "https://extensions.gnome.org/extension/1060/timezone/", "shell_version_map": {"40": {"version": "18", "sha256": "1ksb8pm2y4lxjcwn2l0yj6piz5cqgmzx6k4rygx1mbh5y76mwdji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "19", "sha256": "0mjqwf1i8arrvdhp8m17azh1xahrhxivncscb8shyq87817cfkp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
, {"uuid": "On_Screen_Keyboard_Button@bradan.eu", "name": "On Screen Keyboard Button", "pname": "on-screen-keyboard-button", "description": "Shows or hides the OSK via top bar button. It works with X, not with wayland. Wayland has it's own technique: swipe the keyboard up from the bottom display edge.\n\nSource code: https://github.com/Bradan/Gnome-On-Screen-Keyboard-Button", "link": "https://extensions.gnome.org/extension/1061/on-screen-keyboard-button/", "shell_version_map": {"38": {"version": "5", "sha256": "0z3jcv5gzv1pwfla9ghp5kjljc5n80fcab0d2c2i2pw7y7kvpabr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG9yIGhpZGVzIHRoZSBPU0sgdmlhIHRvcCBiYXIgYnV0dG9uLiBJdCB3b3JrcyB3aXRoIFgsIG5vdCB3aXRoIHdheWxhbmQuIFdheWxhbmQgaGFzIGl0J3Mgb3duIHRlY2huaXF1ZTogc3dpcGUgdGhlIGtleWJvYXJkIHVwIGZyb20gdGhlIGJvdHRvbSBkaXNwbGF5IGVkZ2UuXG5cblNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vQnJhZGFuL0dub21lLU9uLVNjcmVlbi1LZXlib2FyZC1CdXR0b24iLAogICJuYW1lIjogIk9uIFNjcmVlbiBLZXlib2FyZCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiT25fU2NyZWVuX0tleWJvYXJkX0J1dHRvbkBicmFkYW4uZXUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "21", "sha256": "1kp4xqsglmj7likmln1x8nz2vmlz8m8vh13chnsn1rsn5a16s7v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1kp4xqsglmj7likmln1x8nz2vmlz8m8vh13chnsn1rsn5a16s7v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
-, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "20", "sha256": "11ljyy9glhlc2mrvmfz64cxngxamzri09wz8gkgs8dx5zwk31si8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMm52MnUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZy1pbmRpY2F0b3IiLAogICJ1dWlkIjogInN5bmN0aGluZ0Bnbm9tZS4ybnYydS5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "20", "sha256": "11ljyy9glhlc2mrvmfz64cxngxamzri09wz8gkgs8dx5zwk31si8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMm52MnUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZy1pbmRpY2F0b3IiLAogICJ1dWlkIjogInN5bmN0aGluZ0Bnbm9tZS4ybnYydS5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
-, {"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": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "40": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "41": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
+, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"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": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"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": "36", "sha256": "086g5aq3abq2vd0l0fa2a77gj7hi4ga4i316x7zq0bl80qz3zzd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}, "41": {"version": "36", "sha256": "086g5aq3abq2vd0l0fa2a77gj7hi4ga4i316x7zq0bl80qz3zzd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
, {"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"}, "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="}}}
-, {"uuid": "add-username-toppanel@brendaw.com", "name": "Add Username to Top Panel", "pname": "add-username-to-top-panel", "description": "Simply add your username to topbar panel aggregate menu", "link": "https://extensions.gnome.org/extension/1108/add-username-to-top-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "0j5i5rcp2mz9s630wxcrk5pz7j052p5955y1hqnn475ywbw8fzwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0j5i5rcp2mz9s630wxcrk5pz7j052p5955y1hqnn475ywbw8fzwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "add-username-toppanel@brendaw.com", "name": "Add Username to Top Panel", "pname": "add-username-to-top-panel", "description": "Simply add your username to topbar panel aggregate menu", "link": "https://extensions.gnome.org/extension/1108/add-username-to-top-panel/", "shell_version_map": {"38": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"uuid": "Hide_Clock@grantmcwilliams.com", "name": "Hide Clock", "pname": "hide-clock", "description": "Hides the Gnome title bar clock. \nThis is useful for anyone recording their desktop as it allows you to edit the video without the titlebar clock jumping time.\nNow supports Gnome 40.", "link": "https://extensions.gnome.org/extension/1110/hide-clock/", "shell_version_map": {"38": {"version": "3", "sha256": "1niax4lw42nvp99wbxiydassgrzsx0pkkxrnbvim0n2b8bizg8rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBHbm9tZSB0aXRsZSBiYXIgY2xvY2suIFxuVGhpcyBpcyB1c2VmdWwgZm9yIGFueW9uZSByZWNvcmRpbmcgdGhlaXIgZGVza3RvcCBhcyBpdCBhbGxvd3MgeW91IHRvIGVkaXQgdGhlIHZpZGVvIHdpdGhvdXQgdGhlIHRpdGxlYmFyIGNsb2NrIGp1bXBpbmcgdGltZS5cbk5vdyBzdXBwb3J0cyBHbm9tZSA0MC4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQ2xvY2tAZ3JhbnRtY3dpbGxpYW1zLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1niax4lw42nvp99wbxiydassgrzsx0pkkxrnbvim0n2b8bizg8rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBHbm9tZSB0aXRsZSBiYXIgY2xvY2suIFxuVGhpcyBpcyB1c2VmdWwgZm9yIGFueW9uZSByZWNvcmRpbmcgdGhlaXIgZGVza3RvcCBhcyBpdCBhbGxvd3MgeW91IHRvIGVkaXQgdGhlIHZpZGVvIHdpdGhvdXQgdGhlIHRpdGxlYmFyIGNsb2NrIGp1bXBpbmcgdGltZS5cbk5vdyBzdXBwb3J0cyBHbm9tZSA0MC4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQ2xvY2tAZ3JhbnRtY3dpbGxpYW1zLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "07bg3fgg9k7wqyd746w75a12vzm93dn4wr3l1czd6864f4pmalpd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU2IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA1Ngp9"}, "40": {"version": "58", "sha256": "0rh86n98jmma7kkbhyfvw71rk1qa85nb7nx14dsb5r15pbdx6v5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
-, {"uuid": "nothing-to-say@extensions.gnome.wouter.bolsterl.ee", "name": "Nothing to say", "pname": "nothing-to-say", "description": "Unmute the microphone only when you have something to say.", "link": "https://extensions.gnome.org/extension/1113/nothing-to-say/", "shell_version_map": {"38": {"version": "8", "sha256": "12ngc4dv1ijbvihqn2rjn77bal0gdhdq4cxf1zv5lr2ckz0ishm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2JvbHN0ZXIvbm90aGluZy10by1zYXkiLAogICJ1dWlkIjogIm5vdGhpbmctdG8tc2F5QGV4dGVuc2lvbnMuZ25vbWUud291dGVyLmJvbHN0ZXJsLmVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "9", "sha256": "0advxxg1bd9b8c1pi0yf4c08xrfbavwv97sg57lgc98mg3asgzh4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dib2xzdGVyL25vdGhpbmctdG8tc2F5IiwKICAidXVpZCI6ICJub3RoaW5nLXRvLXNheUBleHRlbnNpb25zLmdub21lLndvdXRlci5ib2xzdGVybC5lZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "07bg3fgg9k7wqyd746w75a12vzm93dn4wr3l1czd6864f4pmalpd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU2IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA1Ngp9"}, "40": {"version": "58", "sha256": "0rh86n98jmma7kkbhyfvw71rk1qa85nb7nx14dsb5r15pbdx6v5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "61", "sha256": "0r0lvdpxhw7q2kdpyyn8cw97ai7v30zb46w2qpdivij6wr3sqrbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU5LTUtZzFhZTU0MzAiLAogICJuYW1lIjogIlNjcmVlbnNob3QgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW5zaG90IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA2MQp9"}}}
+, {"uuid": "nothing-to-say@extensions.gnome.wouter.bolsterl.ee", "name": "Nothing to say", "pname": "nothing-to-say", "description": "Unmute the microphone only when you have something to say.", "link": "https://extensions.gnome.org/extension/1113/nothing-to-say/", "shell_version_map": {"38": {"version": "8", "sha256": "12ngc4dv1ijbvihqn2rjn77bal0gdhdq4cxf1zv5lr2ckz0ishm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2JvbHN0ZXIvbm90aGluZy10by1zYXkiLAogICJ1dWlkIjogIm5vdGhpbmctdG8tc2F5QGV4dGVuc2lvbnMuZ25vbWUud291dGVyLmJvbHN0ZXJsLmVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "10", "sha256": "0jn8qd2x25bw2kmz82z4szgx1vm838zkq0wv18jw82bpf7b597k0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0jn8qd2x25bw2kmz82z4szgx1vm838zkq0wv18jw82bpf7b597k0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "When switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {"38": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
-, {"uuid": "ibus-font-setting@ibus.github.com", "name": "ibus font setting", "pname": "ibus-font-setting", "description": "use ibus font setting of ibus setup dialog to enhance the user experience", "link": "https://extensions.gnome.org/extension/1121/ibus-font-setting/", "shell_version_map": {"38": {"version": "9", "sha256": "163byvsc3dj2w9xq498py1xjziyi98icyki1cd6wv7vxaxfmk7y6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3B3dS5mZWRvcmFwZW9wbGUub3JnL2lidXMvaWJ1cy1mb250LXNldHRpbmciLAogICJ1dWlkIjogImlidXMtZm9udC1zZXR0aW5nQGlidXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "10", "sha256": "1bgbnpab1vw5glbv15zrbxngb60dl9bmk1y2iadxq47f0zh1fgly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9wd3UuZmVkb3JhcGVvcGxlLm9yZy9pYnVzL2lidXMtZm9udC1zZXR0aW5nIiwKICAidXVpZCI6ICJpYnVzLWZvbnQtc2V0dGluZ0BpYnVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "ibus-font-setting@ibus.github.com", "name": "ibus font setting", "pname": "ibus-font-setting", "description": "use ibus font setting of ibus setup dialog to enhance the user experience", "link": "https://extensions.gnome.org/extension/1121/ibus-font-setting/", "shell_version_map": {"38": {"version": "9", "sha256": "163byvsc3dj2w9xq498py1xjziyi98icyki1cd6wv7vxaxfmk7y6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3B3dS5mZWRvcmFwZW9wbGUub3JnL2lidXMvaWJ1cy1mb250LXNldHRpbmciLAogICJ1dWlkIjogImlidXMtZm9udC1zZXR0aW5nQGlidXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "github.notifications@alexandre.dufournet.gmail.com", "name": "Github Notifications", "pname": "github-notifications", "description": "Integrate github's notifications within the gnome desktop environment\nSource code is available here: https://github.com/alexduf/gnome-github-notifications", "link": "https://extensions.gnome.org/extension/1125/github-notifications/", "shell_version_map": {"38": {"version": "17", "sha256": "0lj41ngk4kmkz94hn9bi51w8dbhzhxbb3kaza1h68lcvv2cis4sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBnaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}}}
-, {"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": "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": "23", "sha256": "1jwkavj1m6mf690mcyzidyrcv92yr3jk7bpy3ar1y3hm9zbvmpps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "1jwkavj1m6mf690mcyzidyrcv92yr3jk7bpy3ar1y3hm9zbvmpps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1jwkavj1m6mf690mcyzidyrcv92yr3jk7bpy3ar1y3hm9zbvmpps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
, {"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": "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": "17", "sha256": "1565vy6wy0fjjbhxn90d8w4ifjb2adacijf71k18j7n390k00djw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJsZW1TcXVpcnJlbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAidXVpZCI6ICJzZW5zb3J5LXBlcmNlcHRpb25ASGFybGVtU3F1aXJyZWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "1565vy6wy0fjjbhxn90d8w4ifjb2adacijf71k18j7n390k00djw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJsZW1TcXVpcnJlbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAidXVpZCI6ICJzZW5zb3J5LXBlcmNlcHRpb25ASGFybGVtU3F1aXJyZWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
, {"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": "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": "052adrf5dv1qfrpkp1wivp8a8vfi851japvx16gy779shfzq0n2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZGVyb3NlOS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "44", "sha256": "0kjs01h1ncx9r56pfggw0psqpi1hm0p32bpq08inpzc2wr7ilyfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "41": {"version": "45", "sha256": "1md7006ba93p1d6br2bf7qwkf5kbmmwphws0gnmpz18if2q8xd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
, {"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": "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": "4", "sha256": "12r1ydal7yxz8ybz1nbxpg51vsf6paqm6fsiy6bx3ndbqh98iiiw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnbm9tZS1raW5pdEBib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "12r1ydal7yxz8ybz1nbxpg51vsf6paqm6fsiy6bx3ndbqh98iiiw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnbm9tZS1raW5pdEBib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"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"}, "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": "26", "sha256": "18gm70y6qxgcmp0ly1d8rbnn5a21xcgzv0awnp85gsmj3cylyd6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hc2EtYXBvZCIsCiAgInV1aWQiOiAibmFzYV9hcG9kQGVsaW52ZW50aW9uLm92aCIsCiAgInZlcnNpb24iOiAyNgp9"}}}
+, {"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": "20", "sha256": "0izr04779cl9yy8b6spjjxagp3il9pnxk77rsvk5wqdlkr4k0k3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "0izr04779cl9yy8b6spjjxagp3il9pnxk77rsvk5wqdlkr4k0k3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
+, {"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": "31", "sha256": "1w3njadkxjnp6b2jsrfd46xla8hak0m2kipa9vii6wsy80czw59b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "41": {"version": "31", "sha256": "1w3njadkxjnp6b2jsrfd46xla8hak0m2kipa9vii6wsy80czw59b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
, {"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": "undecorate@sun.wxg@gmail.com", "name": "Undecorate Window", "pname": "undecorate", "description": "Add undecorate item in window menu. Use ALT+Space to show window menu.", "link": "https://extensions.gnome.org/extension/1208/undecorate/", "shell_version_map": {"40": {"version": "5", "sha256": "1vmpzk2vwyi5lywfzcpd350h3p09p9l5bkg7bza6b1w904lfd51n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5kZWNvcmF0ZSIsCiAgInV1aWQiOiAidW5kZWNvcmF0ZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1vmpzk2vwyi5lywfzcpd350h3p09p9l5bkg7bza6b1w904lfd51n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5kZWNvcmF0ZSIsCiAgInV1aWQiOiAidW5kZWNvcmF0ZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"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": "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": "14", "sha256": "0bhhmcxyqfzy3fnh66mrvg7i01lmbk907mfnxig9gqkg50drbcrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xpbnV4LW1hbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tcHJpbnRlcnMiLAogICJ1dWlkIjogInByaW50ZXJzQGxpbnV4LW1hbi5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0bhhmcxyqfzy3fnh66mrvg7i01lmbk907mfnxig9gqkg50drbcrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xpbnV4LW1hbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tcHJpbnRlcnMiLAogICJ1dWlkIjogInByaW50ZXJzQGxpbnV4LW1hbi5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
, {"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": "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"}, "41": {"version": "23", "sha256": "1maykrq2wnxrbfxfl8ngi93dlvd61lia7bf47873962d6v3fqa7a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEdtYWlsIGFuZCBPdXRsb29rIG5vdGlmaWNhdGlvbnMgaW4gR25vbWUgTWVzc2FnZSBUcmF5IHVzaW5nIEdub21lIE9ubGluZSBBY2NvdW50c1xuIiwKICAibmFtZSI6ICJHbm9tZSBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NodW1pbmdjaC9nbm9tZS1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJHbWFpbE1lc3NhZ2VUcmF5QHNodW1pbmcwMjA3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
, {"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": "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": "160", "sha256": "0gra4vm7qgg1hd1k0grj146f9q5w1h1k4wcn4v4m2vq77xbwjwq5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYwCn0="}, "40": {"version": "160", "sha256": "0gra4vm7qgg1hd1k0grj146f9q5w1h1k4wcn4v4m2vq77xbwjwq5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYwCn0="}, "41": {"version": "160", "sha256": "0gra4vm7qgg1hd1k0grj146f9q5w1h1k4wcn4v4m2vq77xbwjwq5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYwCn0="}}}
, {"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"}, "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": "gnome-vagrant-indicator@gnome-shell-exstensions.fffilo.github.com", "name": "GNOME Vagrant Indicator", "pname": "gnome-vagrant-indicator", "description": "Easily manage your vagrant machines from status area", "link": "https://extensions.gnome.org/extension/1269/gnome-vagrant-indicator/", "shell_version_map": {"40": {"version": "14", "sha256": "194kfjbv8wc4krxcdazm03c0rnzz11n5xa0m11zq3nczw9pasvwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVhc2lseSBtYW5hZ2UgeW91ciB2YWdyYW50IG1hY2hpbmVzIGZyb20gc3RhdHVzIGFyZWEiLAogICJkZXNjcmlwdGlvbi1odG1sIjogIkluc3BpcmVkIGJ5IDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vY2FuZGlkdGltL3ZhZ3JhbnQtYXBwaW5kaWNhdG9yXCI+dmdhcHBsZXQ8L2E+LFxuPGI+R05PTUUgVmFncmFudCBJbmRpY2F0b3I8L2I+IGxldHMgeW91IGVhc2lseSBtYW5hZ2UgeW91ciB2YWdyYW50IG1hY2hpbmVzIGZyb20gc3RhdHVzIGFyZWEuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtdmFncmFudC1pbmRpY2F0b3IiLAogICJsaWNlbnNlIjogIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjAiLAogICJsaWNlbnNlLWh0bWwiOiAiVGhpcyBwcm9ncmFtIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS5cblNlZSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sXCI+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMDwvYT4gZm9yIGRldGFpbHMuIiwKICAibmFtZSI6ICJHTk9NRSBWYWdyYW50IEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyA8YSBocmVmPVwibWFpbHRvOmZmZmlsbzY2NkBnbWFpbC5jb21cIj4mbHQ7ZmZmaWxvNjY2QGdtYWlsLmNvbSZndDs8L2E+IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXZhZ3JhbnQtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZmZmlsby9nbm9tZS12YWdyYW50LWluZGljYXRvciIsCiAgInV1aWQiOiAiZ25vbWUtdmFncmFudC1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXhzdGVuc2lvbnMuZmZmaWxvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "prime-indicator@gnome-shell-exstensions.fffilo.github.com", "name": "Prime Indicator", "pname": "prime-indicator", "description": "Intel/NVIDIA GPU Switch", "link": "https://extensions.gnome.org/extension/1275/prime-indicator/", "shell_version_map": {"40": {"version": "9", "sha256": "144qshljqc680w296w49fbfdf63zggl1in12y7dfmhra5ph4mk3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL05WSURJQSBHUFUgU3dpdGNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICJHTk9NRSBzaGVsbCBleHRlbnNpb24gdGhhdCBhZGRzIEludGVsL05WSURJQSBHUFUgc3dpdGNoIHRvIGFnZ3JlZ2F0ZSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInByaW1lLWluZGljYXRvciIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIlByaW1lIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyAmbHQ7PGEgaHJlZj1cIm1haWx0bzpmZmZpbG82NjZAZ21haWwuY29tXCI+ZmZmaWxvNjY2QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnByaW1lLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mZmZpbG8vcHJpbWUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJwcmltZS1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXhzdGVuc2lvbnMuZmZmaWxvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
, {"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": "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": "4", "sha256": "1dvpkwkzagw23fhvmz9ncjldmhlv4493gn08r6rqslp4hqlmwqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1dvpkwkzagw23fhvmz9ncjldmhlv4493gn08r6rqslp4hqlmwqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1dvpkwkzagw23fhvmz9ncjldmhlv4493gn08r6rqslp4hqlmwqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"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"}, "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 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": "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 xprop\n- Fedora Silverblue: rpm-ostree install xprop\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": "59", "sha256": "1a0cn11c09wa2rxw18f86z8zm33bp496xi1yjl5amw7zx9ki6sl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1OQp9"}, "40": {"version": "59", "sha256": "1a0cn11c09wa2rxw18f86z8zm33bp496xi1yjl5amw7zx9ki6sl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1OQp9"}, "41": {"version": "59", "sha256": "1a0cn11c09wa2rxw18f86z8zm33bp496xi1yjl5amw7zx9ki6sl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1OQp9"}}}
+, {"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": "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="}}}
+, {"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": "15", "sha256": "04dnc1991a7g7f1lgvymiy9nzz74dfi9bnzgyn9mvzn3m02cqvxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "04dnc1991a7g7f1lgvymiy9nzz74dfi9bnzgyn9mvzn3m02cqvxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "04dnc1991a7g7f1lgvymiy9nzz74dfi9bnzgyn9mvzn3m02cqvxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNQp9"}}}
, {"uuid": "show_applications_instead_of_overview@fawtytoo", "name": "Show Applications Instead Of Workspaces", "pname": "show-applications-instead-of-overview", "description": "The Overview will show Applications instead of Workspaces when invoked.", "link": "https://extensions.gnome.org/extension/1337/show-applications-instead-of-overview/", "shell_version_map": {"38": {"version": "6", "sha256": "1ap6aawz173r04x43h0vb4sycid9jc17amq8bbhs7dbsrk6x3wzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNob3dfYXBwbGljYXRpb25zX2luc3RlYWRfb2Zfb3ZlcnZpZXdAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1ap6aawz173r04x43h0vb4sycid9jc17amq8bbhs7dbsrk6x3wzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNob3dfYXBwbGljYXRpb25zX2luc3RlYWRfb2Zfb3ZlcnZpZXdAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "hplip-menu@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip", "pname": "hplip-menu", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.", "link": "https://extensions.gnome.org/extension/1339/hplip-menu/", "shell_version_map": {"38": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
-, {"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": "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": "22", "sha256": "0svx60711cphswiigd1sswczk17cjxr7gr3davk4krkhya04llp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
, {"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=="}, "41": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
@@ -170,30 +173,31 @@
, {"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="}, "41": {"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": "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": "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": "1fkx12xx1m8pchyfvq0vmyd21m79s9s0jw4ackqg1nqcpwyqd1c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "26", "sha256": "1yg5prjxi4zg98bm0ni44qg037iybvpjr8jg4kr5l82vxxf6bvk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "1yg5prjxi4zg98bm0ni44qg037iybvpjr8jg4kr5l82vxxf6bvk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"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": "8", "sha256": "0f4xwh74icf2hs6cg59d5drq89pwcb1hhr96m4k58gvqswfgxi00", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS9zeXNwZWVrLWdzIiwKICAidXVpZCI6ICJzeXNwZWVrLWdzQGdzLmVyb3MyLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "0f4xwh74icf2hs6cg59d5drq89pwcb1hhr96m4k58gvqswfgxi00", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS9zeXNwZWVrLWdzIiwKICAidXVpZCI6ICJzeXNwZWVrLWdzQGdzLmVyb3MyLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "0f4xwh74icf2hs6cg59d5drq89pwcb1hhr96m4k58gvqswfgxi00", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS9zeXNwZWVrLWdzIiwKICAidXVpZCI6ICJzeXNwZWVrLWdzQGdzLmVyb3MyLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"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", "link": "https://extensions.gnome.org/extension/1410/discrete-brightness/", "shell_version_map": {"38": {"version": "6", "sha256": "0j7nxjkx6qgnggwy8jx5cy9qjn2rxgmbjjvadwkxh0rqk2mcvfq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vZGlzY3JldGUtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZGlzY3JldGUtYnJpZ2h0bmVzc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0j7nxjkx6qgnggwy8jx5cy9qjn2rxgmbjjvadwkxh0rqk2mcvfq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vZGlzY3JldGUtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZGlzY3JldGUtYnJpZ2h0bmVzc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0j7nxjkx6qgnggwy8jx5cy9qjn2rxgmbjjvadwkxh0rqk2mcvfq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vZGlzY3JldGUtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZGlzY3JldGUtYnJpZ2h0bmVzc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"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": "5", "sha256": "07vhkpgck80facrds1zy6c6hk10fb06yhj1x5gay1vykv7msnqi7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JlcHNhYy1ieS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcXVha2UtbW9kZSIsCiAgInV1aWQiOiAicXVha2UtbW9kZUByZXBzYWMtYnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "07vhkpgck80facrds1zy6c6hk10fb06yhj1x5gay1vykv7msnqi7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JlcHNhYy1ieS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcXVha2UtbW9kZSIsCiAgInV1aWQiOiAicXVha2UtbW9kZUByZXBzYWMtYnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"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": "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": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"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": "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": "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": "12", "sha256": "0cdvqihm4skvnyv3mbbyp9cyk14xgrvhzrv2gm90p32hsfa6l95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0cdvqihm4skvnyv3mbbyp9cyk14xgrvhzrv2gm90p32hsfa6l95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"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": "9", "sha256": "1da8vldknv6v5b4wdxd9a7q9i4mla92wxj5l48g3ja8xa1rz8bgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL3RyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmdAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1da8vldknv6v5b4wdxd9a7q9i4mla92wxj5l48g3ja8xa1rz8bgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL3RyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmdAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
, {"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="}, "41": {"version": "45", "sha256": "16rq3dsjkj93lyx7zsim86k6zaa735604di3dcacvbzpaxf5rj96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "miniview@thesecretaryofwar.com", "name": "Miniview", "pname": "miniview", "description": "Show mini window previews (like picture-in-picture on a TV)\n- Left-mouse drag: move preview window\n- Right-mouse drag (or ctrl + left mouse drag): resize preview window\n- Scroll wheel: 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": {"38": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"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": "46", "sha256": "1vmyymqvdwgfkhlkav0yjariis1r708pm08d0d1l1nzl5g20vgyy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "40": {"version": "46", "sha256": "1vmyymqvdwgfkhlkav0yjariis1r708pm08d0d1l1nzl5g20vgyy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "41": {"version": "46", "sha256": "1vmyymqvdwgfkhlkav0yjariis1r708pm08d0d1l1nzl5g20vgyy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}}}
, {"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": "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": "13", "sha256": "10mmyanmwhk3l5q0db1lrd5qwl1yj4i6n66syi3ii8dvlwx1xg55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdC5nZWVrd3Uub3JnL2Jhc3RpZW4vcmRlc2t0b3AtbWVudSIsCiAgInV1aWQiOiAicmRlc2t0b3AtbWVudUBiYXN0aWVuLmdpdC5nZWVrd3Uub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "10mmyanmwhk3l5q0db1lrd5qwl1yj4i6n66syi3ii8dvlwx1xg55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdC5nZWVrd3Uub3JnL2Jhc3RpZW4vcmRlc2t0b3AtbWVudSIsCiAgInV1aWQiOiAicmRlc2t0b3AtbWVudUBiYXN0aWVuLmdpdC5nZWVrd3Uub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "10mmyanmwhk3l5q0db1lrd5qwl1yj4i6n66syi3ii8dvlwx1xg55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdC5nZWVrd3Uub3JnL2Jhc3RpZW4vcmRlc2t0b3AtbWVudSIsCiAgInV1aWQiOiAicmRlc2t0b3AtbWVudUBiYXN0aWVuLmdpdC5nZWVrd3Uub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
, {"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": "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": "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": "16", "sha256": "1bl8la3yg94mmzqh28n47kznaaivfbnxm3dwb71ddsr6gaf3n5p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vYWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1zeW5jIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXN5bmNAZWxoYW4uaW8iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "1bl8la3yg94mmzqh28n47kznaaivfbnxm3dwb71ddsr6gaf3n5p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vYWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1zeW5jIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXN5bmNAZWxoYW4uaW8iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
, {"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": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "When you launch an application in full-screen mode move it to a separate workspace. It only works on full-screen applications and not maximized. \n\nIf you find bugs please report it here: https://github.com/satran/fullscreenworkspace-satran.in/issues\nIf you'd like to propose some change or discuss about the functionality please use GitHub Discussions: https://github.com/satran/fullscreenworkspace-satran.in/discussions\n", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {"38": {"version": "3", "sha256": "11wvdl0fw3gfi3dxvjkzz852v7zxzhyvggpbz2wbdx5h6wbpdaj7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsLXNjcmVlbiBtb2RlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSB3b3Jrc3BhY2UuIEl0IG9ubHkgd29ya3Mgb24gZnVsbC1zY3JlZW4gYXBwbGljYXRpb25zIGFuZCBub3QgbWF4aW1pemVkLiBcblxuSWYgeW91IGZpbmQgYnVncyBwbGVhc2UgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4vaXNzdWVzXG5JZiB5b3UnZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBjaGFuZ2Ugb3IgZGlzY3VzcyBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSBwbGVhc2UgdXNlIEdpdEh1YiBEaXNjdXNzaW9uczogaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbi9kaXNjdXNzaW9uc1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "11wvdl0fw3gfi3dxvjkzz852v7zxzhyvggpbz2wbdx5h6wbpdaj7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsLXNjcmVlbiBtb2RlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSB3b3Jrc3BhY2UuIEl0IG9ubHkgd29ya3Mgb24gZnVsbC1zY3JlZW4gYXBwbGljYXRpb25zIGFuZCBub3QgbWF4aW1pemVkLiBcblxuSWYgeW91IGZpbmQgYnVncyBwbGVhc2UgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4vaXNzdWVzXG5JZiB5b3UnZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBjaGFuZ2Ugb3IgZGlzY3VzcyBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSBwbGVhc2UgdXNlIEdpdEh1YiBEaXNjdXNzaW9uczogaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbi9kaXNjdXNzaW9uc1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "11wvdl0fw3gfi3dxvjkzz852v7zxzhyvggpbz2wbdx5h6wbpdaj7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsLXNjcmVlbiBtb2RlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSB3b3Jrc3BhY2UuIEl0IG9ubHkgd29ya3Mgb24gZnVsbC1zY3JlZW4gYXBwbGljYXRpb25zIGFuZCBub3QgbWF4aW1pemVkLiBcblxuSWYgeW91IGZpbmQgYnVncyBwbGVhc2UgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4vaXNzdWVzXG5JZiB5b3UnZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBjaGFuZ2Ugb3IgZGlzY3VzcyBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSBwbGVhc2UgdXNlIEdpdEh1YiBEaXNjdXNzaW9uczogaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbi9kaXNjdXNzaW9uc1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"uuid": "tray-icons@zhangkaizhao.com", "name": "Tray Icons", "pname": "tray-icons", "description": "Tray icons", "link": "https://extensions.gnome.org/extension/1503/tray-icons/", "shell_version_map": {"38": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}, "40": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
, {"uuid": "drop-down-terminal-x@bigbn.pro", "name": "Drop Down Terminal X", "pname": "drop-down-terminal-x", "description": "THIS EXTENSION IS NO LONGER SUPPORTED.\n\nIf you are looking for an alternative please look at that https://extensions.gnome.org/extension/3780/ddterm \nawesome extension.\n\nA GNOME Shell drop down terminal with extra feautures.\n \nSpecial thanks to:\n- Osman Alperen Elhan (https://github.com/oae)\n- Balder Claassen (https://github.com/balderclaassen)\n- Adrien Pyke (https://github.com/kufii)\n- Alan J Carvajal (https://github.com/ajcarvajal)\n- Massimo Mund (https://github.com/masmu)\n- Jakub Żywiec (https://github.com/jakubzet)\n- Mattias Eriksson (https://github.com/snaggen)\n- Henry78 (https://github.com/Henry78)\n- Maxim Toropov (https://github.com/MaxMaxoff)\nfor active contribution.\n\nBased on original extension \"gs-extensions-drop-down-terminal\" from Stéphane Démurget (https://github.com/zzrough)", "link": "https://extensions.gnome.org/extension/1509/drop-down-terminal-x/", "shell_version_map": {"38": {"version": "17", "sha256": "1k90g6bndw1xr56k7lwlxyw89aqbl47spkfmj1lq224z83w6hzdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRISVMgRVhURU5TSU9OIElTIE5PIExPTkdFUiBTVVBQT1JURUQuXG5cbklmIHlvdSBhcmUgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRpdmUgcGxlYXNlIGxvb2sgYXQgdGhhdCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zNzgwL2RkdGVybSBcbmF3ZXNvbWUgZXh0ZW5zaW9uLlxuXG5BIEdOT01FIFNoZWxsIGRyb3AgZG93biB0ZXJtaW5hbCB3aXRoIGV4dHJhIGZlYXV0dXJlcy5cbiBcblNwZWNpYWwgdGhhbmtzIHRvOlxuLSBPc21hbiBBbHBlcmVuIEVsaGFuIChodHRwczovL2dpdGh1Yi5jb20vb2FlKVxuLSBCYWxkZXIgQ2xhYXNzZW4gKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWxkZXJjbGFhc3Nlbilcbi0gQWRyaWVuIFB5a2UgKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWZpaSlcbi0gQWxhbiBKIENhcnZhamFsIChodHRwczovL2dpdGh1Yi5jb20vYWpjYXJ2YWphbClcbi0gTWFzc2ltbyBNdW5kIChodHRwczovL2dpdGh1Yi5jb20vbWFzbXUpXG4tIEpha3ViIFx1MDE3Ynl3aWVjIChodHRwczovL2dpdGh1Yi5jb20vamFrdWJ6ZXQpXG4tIE1hdHRpYXMgRXJpa3Nzb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmFnZ2VuKVxuLSBIZW5yeTc4IChodHRwczovL2dpdGh1Yi5jb20vSGVucnk3OClcbi0gTWF4aW0gVG9yb3BvdiAoaHR0cHM6Ly9naXRodWIuY29tL01heE1heG9mZilcbmZvciBhY3RpdmUgY29udHJpYnV0aW9uLlxuXG5CYXNlZCBvbiBvcmlnaW5hbCBleHRlbnNpb24gXCJncy1leHRlbnNpb25zLWRyb3AtZG93bi10ZXJtaW5hbFwiIGZyb20gU3RcdTAwZTlwaGFuZSBEXHUwMGU5bXVyZ2V0IChodHRwczovL2dpdGh1Yi5jb20venpyb3VnaCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcm9wLWRvd24tdGVybWluYWwteCIsCiAgImlkIjogImRyb3AtZG93bi10ZXJtaW5hbC14IiwKICAibmFtZSI6ICJEcm9wIERvd24gVGVybWluYWwgWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4wIiwKICAgICIzLjI4LjEiLAogICAgIjMuMjguMiIsCiAgICAiMy4zMC4wIiwKICAgICIzLjMwLjEiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zMi4wIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNC4wIiwKICAgICIzLjM0LjQiLAogICAgIjMuMzYuMCIsCiAgICAiMy4zNi4xIiwKICAgICIzLjM2LjIiLAogICAgIjMuMzguMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpZ2JuL2dzLWV4dGVuc2lvbnMtZHJvcC1kb3duLXRlcm1pbmFsIiwKICAidXVpZCI6ICJkcm9wLWRvd24tdGVybWluYWwteEBiaWdibi5wcm8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
@@ -201,20 +205,21 @@
, {"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": "LetItSnow@mateusz.banaszek.op.pl", "name": "Let it snow", "pname": "let-it-snow", "description": "Bring winter to your desktop: unicode snowflakes falling on your screens.\n\nFeatures:\n- snow doesn't fall over currently active window\n- use slider to choose how much snow you want\n- works with multiple monitors\n\nInspired by gsnow (https://extensions.gnome.org/extension/1156/gsnow/).", "link": "https://extensions.gnome.org/extension/1547/let-it-snow/", "shell_version_map": {"38": {"version": "5", "sha256": "07znrbba154277lxx1bvidn4kz5bgkxpgy7rv3sm472qdbsljl35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIHdpbnRlciB0byB5b3VyIGRlc2t0b3A6IHVuaWNvZGUgc25vd2ZsYWtlcyBmYWxsaW5nIG9uIHlvdXIgc2NyZWVucy5cblxuRmVhdHVyZXM6XG4tIHNub3cgZG9lc24ndCBmYWxsIG92ZXIgY3VycmVudGx5IGFjdGl2ZSB3aW5kb3dcbi0gdXNlIHNsaWRlciB0byBjaG9vc2UgaG93IG11Y2ggc25vdyB5b3Ugd2FudFxuLSB3b3JrcyB3aXRoIG11bHRpcGxlIG1vbml0b3JzXG5cbkluc3BpcmVkIGJ5IGdzbm93IChodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTU2L2dzbm93LykuIiwKICAibmFtZSI6ICJMZXQgaXQgc25vdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL21hdGJhbi9sZXQtaXQtc25vdyIsCiAgInV1aWQiOiAiTGV0SXRTbm93QG1hdGV1c3ouYmFuYXN6ZWsub3AucGwiLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"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": "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": "42", "sha256": "01cq0904ki57ymsil1s5d1m0r3rzm082z02c43arw0am6q9fnbar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYmxpcGsiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc2V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "41": {"version": "42", "sha256": "01cq0904ki57ymsil1s5d1m0r3rzm082z02c43arw0am6q9fnbar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYmxpcGsiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc2V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}}}
+, {"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": "18", "sha256": "0isn56fj58aikld1fy8q3afqg2acsz4wbfskzip25xsbc0hpy9qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleFBvaWxyb3VnZS9Ob3JkVlBOLWNvbm5lY3QiLAogICJ1dWlkIjogIk5vcmRWUE5fQ29ubmVjdEBwb2lscm91Z2UuZnIiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "0isn56fj58aikld1fy8q3afqg2acsz4wbfskzip25xsbc0hpy9qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleFBvaWxyb3VnZS9Ob3JkVlBOLWNvbm5lY3QiLAogICJ1dWlkIjogIk5vcmRWUE5fQ29ubmVjdEBwb2lscm91Z2UuZnIiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
, {"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="}}}
-, {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "11", "sha256": "14czzkqs5my6ypg3ggxlcmxbf8aw1ing6nfgz26zkgbvnrfnvfqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "14czzkqs5my6ypg3ggxlcmxbf8aw1ing6nfgz26zkgbvnrfnvfqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "animation-tweaks@Selenium-H", "name": "Animation Tweaks", "pname": "animation-tweaks", "description": "Add animations to different items and customize them.\n\nPlease 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 Application menu of the extension preferences window.\nA Default shortcut combination of Super Key + t is provided to disable the extension.\n\nSome effects might not work properly on wayland, for which a workaround is provided on preferences -> Tweaks tab.\nHowever, some animations might not work properly.\n\nTo manage effect Delay time enable Show delay time in preferences option from Preferences -> Tweaks Tab\nand reopen preferences.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {"38": {"version": "14", "sha256": "1vdid8mnbf8r7r7pw1a569rfib2jyvv6n630cd117cm130vsiivj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBidXR0b24gaXMgYWxzbyBhbHdheXMgcHJlc2VudCBpbiBQcmVmZXJlbmNlcyBvcHRpb24gaW4gdGhlIEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuXG5BIERlZmF1bHQgc2hvcnRjdXQgY29tYmluYXRpb24gb2YgU3VwZXIgS2V5ICsgdCBpcyBwcm92aWRlZCB0byBkaXNhYmxlIHRoZSBleHRlbnNpb24uXG5cblNvbWUgZWZmZWN0cyBtaWdodCBub3Qgd29yayBwcm9wZXJseSBvbiB3YXlsYW5kLCBmb3Igd2hpY2ggYSB3b3JrYXJvdW5kIGlzIHByb3ZpZGVkIG9uIHByZWZlcmVuY2VzIC0+IFR3ZWFrcyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIG9wdGlvbiBmcm9tIFByZWZlcmVuY2VzIC0+IFR3ZWFrcyBUYWJcbmFuZCByZW9wZW4gcHJlZmVyZW5jZXMuIiwKICAibmFtZSI6ICJBbmltYXRpb24gVHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FuaW1hdGlvbi1Ud2Vha3MiLAogICJ1dWlkIjogImFuaW1hdGlvbi10d2Vha3NAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "1vdid8mnbf8r7r7pw1a569rfib2jyvv6n630cd117cm130vsiivj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBidXR0b24gaXMgYWxzbyBhbHdheXMgcHJlc2VudCBpbiBQcmVmZXJlbmNlcyBvcHRpb24gaW4gdGhlIEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuXG5BIERlZmF1bHQgc2hvcnRjdXQgY29tYmluYXRpb24gb2YgU3VwZXIgS2V5ICsgdCBpcyBwcm92aWRlZCB0byBkaXNhYmxlIHRoZSBleHRlbnNpb24uXG5cblNvbWUgZWZmZWN0cyBtaWdodCBub3Qgd29yayBwcm9wZXJseSBvbiB3YXlsYW5kLCBmb3Igd2hpY2ggYSB3b3JrYXJvdW5kIGlzIHByb3ZpZGVkIG9uIHByZWZlcmVuY2VzIC0+IFR3ZWFrcyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIG9wdGlvbiBmcm9tIFByZWZlcmVuY2VzIC0+IFR3ZWFrcyBUYWJcbmFuZCByZW9wZW4gcHJlZmVyZW5jZXMuIiwKICAibmFtZSI6ICJBbmltYXRpb24gVHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FuaW1hdGlvbi1Ud2Vha3MiLAogICJ1dWlkIjogImFuaW1hdGlvbi10d2Vha3NAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "animation-tweaks@Selenium-H", "name": "Animation Tweaks", "pname": "animation-tweaks", "description": "Add animations to different items and customize them.\n\nPlease 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 menu entry is also always present in in the Top Right Application menu of the extension preferences window.\nA Default shortcut combination of Super Key + t is provided to disable the extension.\n\nSome effects might not work properly on wayland, for which an option to integrate with wayland is provided on Integrations tab.\nHowever, some animations might not work properly.\n\nTo manage effect Delay time enable Show delay time in preferences Window from Top Right Application menu -> Preferences\nand reopen preferences.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {"38": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
, {"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": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Improve user experience in the Gnome 3 overview.\n\n- Always show titles of all window thumbnails\n- Show/hide app icons\n- App icon position: Bottom, Center\n- Show/hide the app icon when a window is in fullscreen mode\n- Tweak the window thumbnail active size increment (from 5 to 60, the default is 15).", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "10ig0qljfdhyli8934bqisb2wpjkh6i004mpxxym5mbf3vrf2h7l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdXNlciBleHBlcmllbmNlIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "16", "sha256": "1q8harhkr3pbkq0lprw0kiwx9vaw4ch8a7wiyspmr29kp80plv1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdXNlciBleHBlcmllbmNlIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "1q8harhkr3pbkq0lprw0kiwx9vaw4ch8a7wiyspmr29kp80plv1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdXNlciBleHBlcmllbmNlIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"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=="}, "41": {"version": "16", "sha256": "1qdqbsrmxnvx01hlaq17nps124xah1rkqvr0rpxms7f3klkgkw0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
, {"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=="}}}
@@ -222,33 +227,34 @@
, {"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=="}, "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": "lan-ip-address@mrhuber.com", "name": "LAN IP Address", "pname": "lan-ip-address", "description": "Show LAN IP address on GNOME panel. Do not show loopback addresses (127.0.0.0/8) or Docker networks.", "link": "https://extensions.gnome.org/extension/1762/lan-ip-address/", "shell_version_map": {"38": {"version": "8", "sha256": "0l81fiznq3q7q2m0ryjcmba9kzqhf0a7hq8j2sahr49acd6ih9wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgTEFOIElQIGFkZHJlc3Mgb24gR05PTUUgcGFuZWwuIERvIG5vdCBzaG93IGxvb3BiYWNrIGFkZHJlc3NlcyAoMTI3LjAuMC4wLzgpIG9yIERvY2tlciBuZXR3b3Jrcy4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3Nob2xpdGgvZ25vbWUtZXh0ZW5zaW9uLWxhbi1pcC1hZGRyZXNzIiwKICAidXVpZCI6ICJsYW4taXAtYWRkcmVzc0Btcmh1YmVyLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0l81fiznq3q7q2m0ryjcmba9kzqhf0a7hq8j2sahr49acd6ih9wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgTEFOIElQIGFkZHJlc3Mgb24gR05PTUUgcGFuZWwuIERvIG5vdCBzaG93IGxvb3BiYWNrIGFkZHJlc3NlcyAoMTI3LjAuMC4wLzgpIG9yIERvY2tlciBuZXR3b3Jrcy4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3Nob2xpdGgvZ25vbWUtZXh0ZW5zaW9uLWxhbi1pcC1hZGRyZXNzIiwKICAidXVpZCI6ICJsYW4taXAtYWRkcmVzc0Btcmh1YmVyLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0l81fiznq3q7q2m0ryjcmba9kzqhf0a7hq8j2sahr49acd6ih9wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgTEFOIElQIGFkZHJlc3Mgb24gR05PTUUgcGFuZWwuIERvIG5vdCBzaG93IGxvb3BiYWNrIGFkZHJlc3NlcyAoMTI3LjAuMC4wLzgpIG9yIERvY2tlciBuZXR3b3Jrcy4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3Nob2xpdGgvZ25vbWUtZXh0ZW5zaW9uLWxhbi1pcC1hZGRyZXNzIiwKICAidXVpZCI6ICJsYW4taXAtYWRkcmVzc0Btcmh1YmVyLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "TransparentTopbar@enrico.sorio.net", "name": "Transparent Topbar", "pname": "transparent-topbar", "description": "Transparent Topbar with Multi monitors support", "link": "https://extensions.gnome.org/extension/1765/transparent-topbar/", "shell_version_map": {"38": {"version": "2", "sha256": "0rv7ddwrsmk7zrwyf2fkjhiv38pm4h0ijx1mppwji7vgvips0602", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IFRvcGJhciB3aXRoIE11bHRpIG1vbml0b3JzIHN1cHBvcnQiLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiVHJhbnNwYXJlbnRUb3BiYXJAZW5yaWNvLnNvcmlvLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0rv7ddwrsmk7zrwyf2fkjhiv38pm4h0ijx1mppwji7vgvips0602", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IFRvcGJhciB3aXRoIE11bHRpIG1vbml0b3JzIHN1cHBvcnQiLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiVHJhbnNwYXJlbnRUb3BiYXJAZW5yaWNvLnNvcmlvLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"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": "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": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
, {"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="}, "41": {"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": "11", "sha256": "1vknx9s3w1y9jjq97nqxh3lxd6y52h5i71yv6zby7kfw2miaf0l2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1vknx9s3w1y9jjq97nqxh3lxd6y52h5i71yv6zby7kfw2miaf0l2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
, {"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": "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": "19", "sha256": "0lsjf3sk0ngacsjqv3ggk2kxk04m8zfm120xd4via79bwii9sh8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOQp9"}, "40": {"version": "19", "sha256": "0lsjf3sk0ngacsjqv3ggk2kxk04m8zfm120xd4via79bwii9sh8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
, {"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=="}, "41": {"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": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {"38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "horizontal-workspaces@gnome-shell-extensions.gcampax.github.com", "name": "Horizontal workspaces", "pname": "horizontal-workspaces", "description": "Use a horizontal workspace layout", "link": "https://extensions.gnome.org/extension/2141/horizontal-workspaces/", "shell_version_map": {"38": {"version": "5", "sha256": "0kbqcrs96v72yk0rf8jghy1a31651fyvgpi97yp46n4wmvc41vk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIGhvcml6b250YWwgd29ya3NwYWNlIGxheW91dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJIb3Jpem9udGFsIHdvcmtzcGFjZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2VzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"uuid": "threefingerwindowmove@do.sch.dev.gmail.com", "name": "Three Finger Window Move", "pname": "three-finger-window-move", "description": "Allows moving windows around with a three finger trackpad gesture (Wayland only)", "link": "https://extensions.gnome.org/extension/2164/three-finger-window-move/", "shell_version_map": {"38": {"version": "7", "sha256": "1m7vwr6s6w297b0x0bmnj8fs2hl73pbys6m93lnb9inh5pmgiv1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBtb3Zpbmcgd2luZG93cyBhcm91bmQgd2l0aCBhIHRocmVlIGZpbmdlciB0cmFja3BhZCBnZXN0dXJlIChXYXlsYW5kIG9ubHkpIiwKICAibmFtZSI6ICJUaHJlZSBGaW5nZXIgV2luZG93IE1vdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kby1zY2gvZ25vbWUtc2hlbGwtdG91Y2hwYWQtd2luZG93LW1vdmUiLAogICJ1dWlkIjogInRocmVlZmluZ2Vyd2luZG93bW92ZUBkby5zY2guZGV2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "9", "sha256": "15nmnf2i3icfk0lc8yb20jxj0irivgw73sh9d94p09v5jv0p9hvm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL3Nwb3RpZnktYWQtYmxvY2tlciIsCiAgInV1aWQiOiAic3BvdGlmeS1hZC1ibG9ja0BkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "15nmnf2i3icfk0lc8yb20jxj0irivgw73sh9d94p09v5jv0p9hvm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL3Nwb3RpZnktYWQtYmxvY2tlciIsCiAgInV1aWQiOiAic3BvdGlmeS1hZC1ibG9ja0BkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "10", "sha256": "1ij5307mcm3shhs23lpl8l968xgzc1qr0wvzkb419ihdk4kjmf9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cam9lcm5EYWFzZS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2VAZGFhc2UubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1ij5307mcm3shhs23lpl8l968xgzc1qr0wvzkb419ihdk4kjmf9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cam9lcm5EYWFzZS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2VAZGFhc2UubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="}}}
-, {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "11", "sha256": "1bffsbzq4114f4l83sknzsmig4sm7p8qsgyfmxvqg0xdl7hmsd6y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "1bffsbzq4114f4l83sknzsmig4sm7p8qsgyfmxvqg0xdl7hmsd6y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.\n", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "1lw7gdcba82hhfcpihbfkcbigggna3r8kk20zd32ladr5djybcjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9uaWdodHRoZW1lc3dpdGNoZXIucm9tYWludmlnaWVyLmZyIiwKICAidXVpZCI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "40": {"version": "51", "sha256": "0j3h8zajsqgy6df5hbdiijs8zwg4lmi7vcas4gfp2jsqhjmrnfb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA1MQp9"}, "41": {"version": "53", "sha256": "0s500hxcqkv34v34zlwp2kmbjgwc8bskxzs6qngirb7jl4480bnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA1Mwp9"}}}
+, {"uuid": "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": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"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": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"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.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "13vq56mhxkh61zza1j4pszbbbz96z2yjzgkzq8qi51jidpdby521", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "1lbfbb6acc70y70v5g3mvqhzn6240jdq0zzlnh43yg1kvry20d2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "55", "sha256": "1sv0wm9fq6f1j384qz91f8vkxk3ffb02ih1x6apa70k2ybmrc06g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTUKfQ=="}}}
, {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"38": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "tp_wattmeter@gistart", "name": "tp_wattmeter", "pname": "tp_wattmeter", "description": "Shows battery power consumption of ThinkPad laptops", "link": "https://extensions.gnome.org/extension/2308/tp_wattmeter/", "shell_version_map": {"40": {"version": "4", "sha256": "1v8rw7msfy2d8nwnppdpci62sl6iw8973z5gsl8024awl27ni38z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGJhdHRlcnkgcG93ZXIgY29uc3VtcHRpb24gb2YgVGhpbmtQYWQgbGFwdG9wcyIsCiAgIm5hbWUiOiAidHBfd2F0dG1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naXN0YXJ0L3RwX3dhdHRtZXRlciIsCiAgInV1aWQiOiAidHBfd2F0dG1ldGVyQGdpc3RhcnQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "Denon_AVR_controler@sylter.fr", "name": "Denon AVR controler", "pname": "denon-avr-controler", "description": "Control a Denon audio video receiver through the network.\n- on/off switch\n- volume adjustment", "link": "https://extensions.gnome.org/extension/2371/denon-avr-controler/", "shell_version_map": {"38": {"version": "4", "sha256": "0c8ky3v70arnblix717jz9fsksr42673as9nmzfyh2p2h1zm03wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYSBEZW5vbiBhdWRpbyB2aWRlbyByZWNlaXZlciB0aHJvdWdoIHRoZSBuZXR3b3JrLlxuLSBvbi9vZmYgc3dpdGNoXG4tIHZvbHVtZSBhZGp1c3RtZW50IiwKICAibmFtZSI6ICJEZW5vbiBBVlIgY29udHJvbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyYW1hZ2l0Lm9yZy9zeWx0ZXIvZGVub24tYXZyLWNvbnRyb2xlciIsCiAgInV1aWQiOiAiRGVub25fQVZSX2NvbnRyb2xlckBzeWx0ZXIuZnIiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"uuid": "hide-universal-access@akiirui.github.io", "name": "Hide Universal Access", "pname": "hide-universal-access", "description": "Hide Universal Access icon from the status bar", "link": "https://extensions.gnome.org/extension/2398/hide-universal-access/", "shell_version_map": {"38": {"version": "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": "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 connexion 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": "15", "sha256": "10s5fb17bhlxz88cdz62h8zanghpx1slpjh9h1n3ih29kxr0wjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "10s5fb17bhlxz88cdz62h8zanghpx1slpjh9h1n3ih29kxr0wjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "10s5fb17bhlxz88cdz62h8zanghpx1slpjh9h1n3ih29kxr0wjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
, {"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"}}}
@@ -258,24 +264,26 @@
, {"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="}, "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": "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": "20", "sha256": "0mfy34n9gqa1k8sw6b1xcsxygvjnjqnd88bs49jd6l7hwisyns15", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "20", "sha256": "0mfy34n9gqa1k8sw6b1xcsxygvjnjqnd88bs49jd6l7hwisyns15", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "nbfcindicator@mgokcaykdev.gmail.com", "name": "Nbfc Indicator", "pname": "nbfc-indicator", "description": "Notebook Fan Control Indicator for Gnome Shell", "link": "https://extensions.gnome.org/extension/2624/nbfc-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "0hp7giwdcsk8p442q0x9214dv59ziyjswli6mccyb8v814k3p8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGVib29rIEZhbiBDb250cm9sIEluZGljYXRvciBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYmZjaW5kaWNhdG9yIiwKICAibmFtZSI6ICJOYmZjIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYmZjaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01Hb2tjYXlLL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtbmJmY2luZGljYXRvciIsCiAgInV1aWQiOiAibmJmY2luZGljYXRvckBtZ29rY2F5a2Rldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
, {"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": "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": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"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": "16", "sha256": "03g1m0n0y3fbx898nn6vmjsq6bmw7fphjsb1y7gqawlqim6yhxx0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGVtaWdodHlkZWl0eS9nbm9tZS1kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInV1aWQiOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWxAdGhlbWlnaHR5ZGVpdHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "03g1m0n0y3fbx898nn6vmjsq6bmw7fphjsb1y7gqawlqim6yhxx0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGVtaWdodHlkZWl0eS9nbm9tZS1kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInV1aWQiOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWxAdGhlbWlnaHR5ZGVpdHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "timezones@masquerade-circus.net", "name": "Timezones extension", "pname": "timezones-extension", "description": "Show multiple clocks in the panel. For those who need more than one additional clock.", "link": "https://extensions.gnome.org/extension/2657/timezones-extension/", "shell_version_map": {"38": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"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": "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": "5", "sha256": "1is1nfpfwriqqraxgfsrg78v7cg5f9xddnkh7yiyfb14ih9qwwzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iYXRpc3Rlby9taW5pbWl6ZS1zaGVsZiIsCiAgInV1aWQiOiAibWluaW1pemUtc2hlbGZAZXRlbmlsIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "1is1nfpfwriqqraxgfsrg78v7cg5f9xddnkh7yiyfb14ih9qwwzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iYXRpc3Rlby9taW5pbWl6ZS1zaGVsZiIsCiAgInV1aWQiOiAibWluaW1pemUtc2hlbGZAZXRlbmlsIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"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"}, "41": {"version": "35", "sha256": "174dw6xqz653i0kh3i0nq9sg3256n28ra6rrsgyk4zfasz92c83z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBhc2NpaSBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9pYnVzLXR3ZWFrZXIiLAogICJ1dWlkIjogImlidXMtdHdlYWtlckB0dWJlcnJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
+, {"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": "4", "sha256": "14c6klkpi0y6lxi0vkpgq86kjwf2ckkjl80530sybqfbfvbcffvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvLXNjaC9nbm9tZS1zaGVsbC1icmlnaHRuZXNzLXBhbmVsLW1lbnUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJicmlnaHRuZXNzcGFuZWxtZW51aW5kaWNhdG9yQGRvLnNjaC5kZXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "14c6klkpi0y6lxi0vkpgq86kjwf2ckkjl80530sybqfbfvbcffvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvLXNjaC9nbm9tZS1zaGVsbC1icmlnaHRuZXNzLXBhbmVsLW1lbnUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJicmlnaHRuZXNzcGFuZWxtZW51aW5kaWNhdG9yQGRvLnNjaC5kZXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "14c6klkpi0y6lxi0vkpgq86kjwf2ckkjl80530sybqfbfvbcffvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvLXNjaC9nbm9tZS1zaGVsbC1icmlnaHRuZXNzLXBhbmVsLW1lbnUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJicmlnaHRuZXNzcGFuZWxtZW51aW5kaWNhdG9yQGRvLnNjaC5kZXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"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, input mode and clipboard history\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": "1ahhcq8hpxkdvq1fp8gd8qp1cfsgqsm9swn4ph9kyrzr7j8jvc3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "34", "sha256": "0fs0hlxdnhssx9vcghbicg1fn3clws9q2f3nzdi4virpm8wksf3f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9pYnVzLXR3ZWFrZXIiLAogICJ1dWlkIjogImlidXMtdHdlYWtlckB0dWJlcnJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "41": {"version": "36", "sha256": "0f819v8n1rvvwrir7qf8fp0bvn5zk899lpc4dr8f9jk9g8w57q7d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM2Cn0="}}}
, {"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": "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": "3", "sha256": "06l7x3nhrabiii93zgpxv4qyd525sxxn687x6lraxqlx1i824qzd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvaGlkZS1rZXlib2FyZC1sYXlvdXQiLAogICJ1dWlkIjogImhpZGUta2V5Ym9hcmQtbGF5b3V0QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "06l7x3nhrabiii93zgpxv4qyd525sxxn687x6lraxqlx1i824qzd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvaGlkZS1rZXlib2FyZC1sYXlvdXQiLAogICJ1dWlkIjogImhpZGUta2V5Ym9hcmQtbGF5b3V0QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "06l7x3nhrabiii93zgpxv4qyd525sxxn687x6lraxqlx1i824qzd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvaGlkZS1rZXlib2FyZC1sYXlvdXQiLAogICJ1dWlkIjogImhpZGUta2V5Ym9hcmQtbGF5b3V0QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"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=="}}}
@@ -286,68 +294,70 @@
, {"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="}, "41": {"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"}, "41": {"version": "64", "sha256": "1zmach687675xlj8l8m9himsxdiyid7dazrc8hw2816916pfhrv4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3IgaW5zdGFudCBhY3Rpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb24sIGVzcGVjaWFsbHkgb3B0aW1pemVkIGZvciBEaWN0aW9uYXJ5IGxvb2t1cFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2NAp9"}}}
-, {"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": "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": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"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": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
+, {"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": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"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=="}, "40": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
, {"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": "ideapad@laurento.frittella", "name": "IdeaPad", "pname": "ideapad", "description": "Lenovo IdeaPad goodies for Gnome Shell\n\nAt the moment the extension only provides an easy and user-friendly way to toggle battery conservation mode available on Levono Ideapad laptops and visually get its current state.\n\nConfiguration needed! Please check the instruction on the homepage.", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {"38": {"version": "9", "sha256": "1b62spk8njkk1b25cafw1z18141hz6cx9mhwh0f3an84mdm7nvjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "1b62spk8njkk1b25cafw1z18141hz6cx9mhwh0f3an84mdm7nvjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1b62spk8njkk1b25cafw1z18141hz6cx9mhwh0f3an84mdm7nvjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"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": "38", "sha256": "0ppfn202x8s97yjd40xkm66pvf4fjddyil720xdpghriggxg5xpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nYWxncy9nbm9tZS1zaGVsbC1zeXN0ZW0tbW9uaXRvci1hcHBsZXQiLAogICJ1dWlkIjogInN5c3RlbS1tb25pdG9yLW5leHRAcGFyYWRveHh4Lnplcm8uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}, "41": {"version": "38", "sha256": "0ppfn202x8s97yjd40xkm66pvf4fjddyil720xdpghriggxg5xpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nYWxncy9nbm9tZS1zaGVsbC1zeXN0ZW0tbW9uaXRvci1hcHBsZXQiLAogICJ1dWlkIjogInN5c3RlbS1tb25pdG9yLW5leHRAcGFyYWRveHh4Lnplcm8uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}}}
, {"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"}, "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": "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": "03gryl577559h2l1s3adi5gxa8ivp454p4lq7jng1db6smlpj95a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zcy1zdWJzY3JpYmVyIiwKICAidXVpZCI6ICJzc3NzQHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "075d00xsbmr4qs554p2anddhkmgcx7xd4nn8prgmf4wpyfk87552", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc3Mtc3Vic2NyaWJlciIsCiAgInV1aWQiOiAic3Nzc0B0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "21", "sha256": "06ybzk62fbi88iqssl4pw0amsbcp09pnw99wxanh2jlvaakqgday", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tc3Mtc3Vic2NyaWJlciIsCiAgIm5hbWUiOiAiU2ltcGxlIFN1YnNjcmliZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3Mtc3Vic2NyaWJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NzLXN1YnNjcmliZXIiLAogICJ1dWlkIjogInNzc3NAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
+, {"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": "0cwabswbb5p0z156488ag095h558hf541650vfnjgw4nas7v2ccx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZXh0ZW5zaW9uLWxpc3QiLAogICJ1dWlkIjogImV4dGVuc2lvbi1saXN0QHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "27", "sha256": "0m13qzzbbx5rnq8a9xn09nvr3dy9zqkp8y9529y12250wyjafl1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2V4dGVuc2lvbi1saXN0IiwKICAidXVpZCI6ICJleHRlbnNpb24tbGlzdEB0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "29", "sha256": "1yl2b9phvrgsdpkwqjfqpaqi2xcj5bcd4zabqkrfwngqsg17s85j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
, {"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"}, "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": "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. Tested on GNOME Shell version 3.36 - 41 on Fedora 32 - 35. For a higher version see https://github.com/lxylxy123456/cariboublocker#installing-on-high-gnome-shell-version .", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"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": "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"}, "41": {"version": "6", "sha256": "04vk49629c9fhvix04h8r3mbnqyncvyzdkbm7bh3wyjhghnczbps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"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": "proxyprofiles@massamany.github.com", "name": "Proxy Profiles", "pname": "proxy-profiles", "description": "Swich easily between several proxy profiles.", "link": "https://extensions.gnome.org/extension/3379/proxy-profiles/", "shell_version_map": {"38": {"version": "4", "sha256": "0zf77wc66k1hmq8praw2635kkfy90cmlp6phfxpy8rzw3002nvyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXNzYW1hbnkvcHJveHlwcm9maWxlcyIsCiAgInV1aWQiOiAicHJveHlwcm9maWxlc0BtYXNzYW1hbnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0zf77wc66k1hmq8praw2635kkfy90cmlp6phfxpy8rzw3002nvyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXNzYW1hbnkvcHJveHlwcm9maWxlcyIsCiAgInV1aWQiOiAicHJveHlwcm9maWxlc0BtYXNzYW1hbnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"uuid": "galaxy-buds-battery@pemmoura", "name": "Galaxy Buds Battery", "pname": "galaxy-buds-battery", "description": "Galaxy Buds battery indicator.", "link": "https://extensions.gnome.org/extension/3383/galaxy-buds-battery/", "shell_version_map": {"38": {"version": "6", "sha256": "1f25mc5idqaw3v9b2xffiij9y0pcrl8msz85p8cz2x5l2r3sc7wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdhbGF4eSBCdWRzIGJhdHRlcnkgaW5kaWNhdG9yLiIsCiAgIm5hbWUiOiAiR2FsYXh5IEJ1ZHMgQmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlbW1vdXJhL2dhbGF4eWJ1ZHMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnYWxheHktYnVkcy1iYXR0ZXJ5QHBlbW1vdXJhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "25", "sha256": "0lx4bs7yfqkphb5cwmakl6xjf14q89m0yn70a882drakfhzgnagw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "26", "sha256": "0i07lcal3cvxn6w6id5sjsipab6bx5xzw2v612zpc8qlc4jll155", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "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": "27", "sha256": "1scc0cgdzrg9rmpr090myrsxhfgp03aqld9jh4grqbfza6lrz4jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
, {"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="}, "41": {"version": "7", "sha256": "1rl6yl2yrq36n3rv2aiwy1pfxyllni66aydfy1xn6fq83bxp1w3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"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": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"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": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"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": "11", "sha256": "18549qj68fvsqpny6cll0x698n3ydffxw14m1jw613pdzwsspfhw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "18549qj68fvsqpny6cll0x698n3ydffxw14m1jw613pdzwsspfhw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "18549qj68fvsqpny6cll0x698n3ydffxw14m1jw613pdzwsspfhw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
, {"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": "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=="}, "41": {"version": "5", "sha256": "01b5d3bza10mcy0dj662dp1lk2if7pl71q3cfr7zwyk1fkkraizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJteUhpZGRlblRvcEJhckBsZW5kb0suZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"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": "8", "sha256": "0l8sz8w8l6cmkn19sg34gmbh79sx49jdx1gk8xzh7yyxgqxhayzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFja2tlbm5leS9nbm9tZS10cnVlLWNvbG9yLWludmVydCIsCiAgInV1aWQiOiAidHJ1ZS1jb2xvci1pbnZlcnRAamFja2tlbm5leSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0l8sz8w8l6cmkn19sg34gmbh79sx49jdx1gk8xzh7yyxgqxhayzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFja2tlbm5leS9nbm9tZS10cnVlLWNvbG9yLWludmVydCIsCiAgInV1aWQiOiAidHJ1ZS1jb2xvci1pbnZlcnRAamFja2tlbm5leSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0l8sz8w8l6cmkn19sg34gmbh79sx49jdx1gk8xzh7yyxgqxhayzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFja2tlbm5leS9nbm9tZS10cnVlLWNvbG9yLWludmVydCIsCiAgInV1aWQiOiAidHJ1ZS1jb2xvci1pbnZlcnRAamFja2tlbm5leSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
, {"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"}, "41": {"version": "12", "sha256": "11bq9ak6qyfaf610qi5fdniwcxryjds4m6r09pgkhydaam9am2lh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"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!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "15", "sha256": "1ggr1i9yl2jgdqqab5d5sdb0bs3rni24rliskj9ziyb3mqw3vzbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1ggr1i9yl2jgdqqab5d5sdb0bs3rni24rliskj9ziyb3mqw3vzbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "1ggr1i9yl2jgdqqab5d5sdb0bs3rni24rliskj9ziyb3mqw3vzbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
, {"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": "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.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {"38": {"version": "10", "sha256": "16nx63qcaih4812hyvhw0kypvik88g8423i5sp1360bwkrdppc36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMCwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="}, "40": {"version": "10", "sha256": "16nx63qcaih4812hyvhw0kypvik88g8423i5sp1360bwkrdppc36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMCwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="}, "41": {"version": "10", "sha256": "16nx63qcaih4812hyvhw0kypvik88g8423i5sp1360bwkrdppc36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMCwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="}}}
, {"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": "oclock@ortega.tech", "name": "OClock", "pname": "oclock", "description": "Shows an analog clock on the panel", "link": "https://extensions.gnome.org/extension/3578/oclock/", "shell_version_map": {"40": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}}}
, {"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": "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": "16", "sha256": "1aqhj1lmwqy6wlbd105bl85grs749q4hilsz253n45s25jjzw5p8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Njci1pci9nbm9tZS1zaGFtc2ktY2FsZW5kYXIiLAogICJ1dWlkIjogInNoYW1zaS1jYWxlbmRhckBnbm9tZS5zY3IuaXIiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "16", "sha256": "1aqhj1lmwqy6wlbd105bl85grs749q4hilsz253n45s25jjzw5p8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Njci1pci9nbm9tZS1zaGFtc2ktY2FsZW5kYXIiLAogICJ1dWlkIjogInNoYW1zaS1jYWxlbmRhckBnbm9tZS5zY3IuaXIiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "1aqhj1lmwqy6wlbd105bl85grs749q4hilsz253n45s25jjzw5p8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Njci1pci9nbm9tZS1zaGFtc2ktY2FsZW5kYXIiLAogICJ1dWlkIjogInNoYW1zaS1jYWxlbmRhckBnbm9tZS5zY3IuaXIiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
, {"uuid": "tunnel-indicator@atareao.es", "name": "Tunnel Indicator", "pname": "tunnel-indicator", "description": "Manage SSH Tunnels from Desktop", "link": "https://extensions.gnome.org/extension/3622/tunnel-indicator/", "shell_version_map": {"40": {"version": "2", "sha256": "0ma4a711mgjxyhy4d21p2m7wvbnmmwlfdsf6xk9i36ranjcqs9as", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBTU0ggVHVubmVscyBmcm9tIERlc2t0b3AiLAogICJleHRlbnNpb24taWQiOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJ0dW5uZWwtaWNvbiIsCiAgIm5hbWUiOiAiVHVubmVsIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnR1bm5lbC1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby90dW5uZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0dW5uZWwtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application Menu for GNOME, with various layouts to choose from!\n\nSupports GNOME shell 3.36, 3.38, 40, and 41.\n\nFor older GNOME shell versions visit https://extensions.gnome.org/extension/1228/arc-menu/\n\nCommon solutions for ERROR message:\n-Restart your GNOME session after updating ArcMenu.\n-Install one of the following packages: 'gir1.2-gmenu-3.0' or 'gnome-menus'\n\nGeneral Help:\n-Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home\n\nPlease report all bugs or issues at https://gitlab.com/arcmenu/ArcMenu", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "17", "sha256": "0llq0zkvgxarr30s304n1ilidbwc0kx4l2impby5y2sdsvr7zafv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "40": {"version": "18", "sha256": "1vapj6lywga48j58764hpc2j3qapiz7k905bmla89im55vcip0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "1vapj6lywga48j58764hpc2j3qapiz7k905bmla89im55vcip0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
+, {"uuid": "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": "19", "sha256": "0m3y218hqr5jn4cnqy2zi075r31q869dkamgbxrhkbydfvswr37a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "0m3y218hqr5jn4cnqy2zi075r31q869dkamgbxrhkbydfvswr37a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgNDAsIGFuZCA0MS5cblxuRm9yIG9sZGVyIEdOT01FIHNoZWxsIHZlcnNpb25zIHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1JbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbGwgYnVncyBvciBpc3N1ZXMgYXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
, {"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="}}}
@@ -358,10 +368,10 @@
, {"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=="}, "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"}, "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="}, "41": {"version": "16", "sha256": "01z0ddq6f1ab6wzw25x6i3150gdfgiqc47srj1kdk8gapi3kzb2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
+, {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom Floating Dock fork, now you can change the margin and border radius of the dock.", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "0giksm5fvrj412v8xnf2hi4s0yi2mqd9prd84npv8jxkfv78y414", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm5hbmRvZmVycmVpcmFfcHJvZkBob3RtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"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": "27", "sha256": "17j3g32ha29i3jqy3183fn8ybkj5a3jjfl44nc6s4pxf8lqnh88j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "41": {"version": "27", "sha256": "17j3g32ha29i3jqy3183fn8ybkj5a3jjfl44nc6s4pxf8lqnh88j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
+, {"uuid": "airpods-battery-status@ju.wtf", "name": "Airpods Battery status", "pname": "airpods-battery-status", "description": "Show Airpods battery level in top bar", "link": "https://extensions.gnome.org/extension/3736/airpods-battery-status/", "shell_version_map": {"38": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"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": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
, {"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"}}}
@@ -369,18 +379,18 @@
, {"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": "23", "sha256": "02pcbww6s2n0j40gna1fm182pj98b1qia9i49jvy88fgwz4nkmpm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "23", "sha256": "02pcbww6s2n0j40gna1fm182pj98b1qia9i49jvy88fgwz4nkmpm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "02pcbww6s2n0j40gna1fm182pj98b1qia9i49jvy88fgwz4nkmpm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"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="}, "41": {"version": "15", "sha256": "0g049gwmnnppiqqjfsc6snyw4ybg50bc0zk827n8w79ncmhigypd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXJcbi0gS2V5Ym9hcmQgTGF5b3V0IFZpc2liaWxpdHlcbi0gTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvblxuLSBPU0QgVmlzaWJpbGl0eVxuLSBQYW5lbCBBcnJvdyBWaXNpYmlsaXR5KDMuMzYsIDMuMzgpXG4tIFBhbmVsIEJ1dHRvbiBQYWRkaW5nIFNpemVcbi0gUGFuZWwgSGVpZ2h0XG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Close the overview by clicking empty space.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "17xd3k1xpsn8ma6f11f4sr26y5xbcs3hiw7lv1qqrn80lyjj2vz1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"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- Double Super Key to App Grid\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- Panel Visibility in Overview\n- Power Icon Visibility\n- Ripple Box\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": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
, {"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": "simple-monitor@fcaballerop.github.io", "name": "Simple monitor", "pname": "simple-monitor", "description": "It cases stuttering in videos for some users, this extension is not being updated.\nA 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": "1gff73ddb7yinxzdqq1cliqf1xlav16j31wlc7nsnl899zj0cd5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGNhc2VzIHN0dXR0ZXJpbmcgaW4gdmlkZW9zIGZvciBzb21lIHVzZXJzLCB0aGlzIGV4dGVuc2lvbiBpcyBub3QgYmVpbmcgdXBkYXRlZC5cbkEgc2ltcGxlIHBhbmVsIGJ1dHRvbiB0aGF0IHNob3dzIENQVSBhbmQgUkFNIG1lbW9yeSB1c2FnZS4gQ2xpY2tpbmcgc2hvd3MgdGhlIHRvcCAxMCBwcm9jZXNzZXMgdXNpbmcgQ1BVIGFuZCBtZW1vcnkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXhhbXBsZSIsCiAgIm5hbWUiOiAiU2ltcGxlIG1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2ltcGxlLW1vbml0b3JAZmNhYmFsbGVyb3AuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"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="}, "41": {"version": "8", "sha256": "0sjiiyr56b4vj75kn4mi8zj3vx0i1gsxk50n9h0bbxxmhjagz6cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3JlbW92ZS1hcHAtbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlJlbW92ZUFwcE1lbnVARHJhZ29uOG95LmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
@@ -388,41 +398,41 @@
, {"uuid": "sticky-terminal@fthx", "name": "Sticky Terminal", "pname": "sticky-terminal", "description": "Toggle a sticky GNOME terminal window. Your terminal window will always be in foreground while you use another app.\n\nA button in panel allows to toggle the visibility of the terminal. Window is resizeable.\n\nYou can easily change it to default another terminal app or another app. Some other settings. See comments in extension.js file.", "link": "https://extensions.gnome.org/extension/3915/sticky-terminal/", "shell_version_map": {"38": {"version": "2", "sha256": "0j65ihfhama6scp2b8qbqr1h4gamy4v0w1ygxrfglhvl3jhjm5zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhIHN0aWNreSBHTk9NRSB0ZXJtaW5hbCB3aW5kb3cuIFlvdXIgdGVybWluYWwgd2luZG93IHdpbGwgYWx3YXlzIGJlIGluIGZvcmVncm91bmQgd2hpbGUgeW91IHVzZSBhbm90aGVyIGFwcC5cblxuQSBidXR0b24gaW4gcGFuZWwgYWxsb3dzIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgdGVybWluYWwuIFdpbmRvdyBpcyByZXNpemVhYmxlLlxuXG5Zb3UgY2FuIGVhc2lseSBjaGFuZ2UgaXQgdG8gZGVmYXVsdCBhbm90aGVyIHRlcm1pbmFsIGFwcCBvciBhbm90aGVyIGFwcC4gU29tZSBvdGhlciBzZXR0aW5ncy4gU2VlIGNvbW1lbnRzIGluIGV4dGVuc2lvbi5qcyBmaWxlLiIsCiAgIm5hbWUiOiAiU3RpY2t5IFRlcm1pbmFsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9zdGlja3ktdGVybWluYWwiLAogICJ1dWlkIjogInN0aWNreS10ZXJtaW5hbEBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
, {"uuid": "sticky-r-terminal@fthx", "name": "Sticky R Terminal", "pname": "sticky-r-terminal", "description": "Toggle a sticky R terminal window. Your R window will always be in foreground while you use another app.\n\nYou can easily change it to default another terminal app or another app. Some other settings. See comments in extension.js file. Same extension only running a terminal: https://extensions.gnome.org/extension/3915/sticky-terminal . You can use it with R if this extension does not work for your R installation setup.\n\nKeywords: stat, stats, statistics, statistical, r-cran.", "link": "https://extensions.gnome.org/extension/3916/sticky-r-terminal/", "shell_version_map": {"38": {"version": "1", "sha256": "17x84g6fb785jmcl5jz41nw4rgzaad48mc5zllh5b3a485731f0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhIHN0aWNreSBSIHRlcm1pbmFsIHdpbmRvdy4gWW91ciBSIHdpbmRvdyB3aWxsIGFsd2F5cyBiZSBpbiBmb3JlZ3JvdW5kIHdoaWxlIHlvdSB1c2UgYW5vdGhlciBhcHAuXG5cbllvdSBjYW4gZWFzaWx5IGNoYW5nZSBpdCB0byBkZWZhdWx0IGFub3RoZXIgdGVybWluYWwgYXBwIG9yIGFub3RoZXIgYXBwLiBTb21lIG90aGVyIHNldHRpbmdzLiBTZWUgY29tbWVudHMgaW4gZXh0ZW5zaW9uLmpzIGZpbGUuIFNhbWUgZXh0ZW5zaW9uIG9ubHkgcnVubmluZyBhIHRlcm1pbmFsOiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zOTE1L3N0aWNreS10ZXJtaW5hbCAuIFlvdSBjYW4gdXNlIGl0IHdpdGggUiBpZiB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCB3b3JrIGZvciB5b3VyIFIgaW5zdGFsbGF0aW9uIHNldHVwLlxuXG5LZXl3b3Jkczogc3RhdCwgc3RhdHMsIHN0YXRpc3RpY3MsIHN0YXRpc3RpY2FsLCByLWNyYW4uIiwKICAibmFtZSI6ICJTdGlja3kgUiBUZXJtaW5hbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3RpY2t5LXItdGVybWluYWwiLAogICJ1dWlkIjogInN0aWNreS1yLXRlcm1pbmFsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
, {"uuid": "onedrive@diegobazzanella.com", "name": "One Drive", "pname": "one-drive", "description": "One Drive extension", "link": "https://extensions.gnome.org/extension/3919/one-drive/", "shell_version_map": {"38": {"version": "4", "sha256": "0h37rr9hw6azrlf465ngl7w7miii9bm4sh33wkr0x8q51rz62ydd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZSBEcml2ZSBleHRlbnNpb24iLAogICJuYW1lIjogIk9uZSBEcml2ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RiYXp6YS9vbmVEcml2ZSIsCiAgInV1aWQiOiAib25lZHJpdmVAZGllZ29iYXp6YW5lbGxhLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "snowy@exposedcat", "name": "Snowy", "pname": "snowy", "description": "Make you festive mood with falling snow on your GNOME DE system", "link": "https://extensions.gnome.org/extension/3921/snowy/", "shell_version_map": {"38": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "snowy@exposedcat", "name": "Snowy", "pname": "snowy", "description": "Make you festive mood with falling snow on your GNOME DE system", "link": "https://extensions.gnome.org/extension/3921/snowy/", "shell_version_map": {"38": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "6", "sha256": "0ylw8iwzc9mnhbss8imrwzpc6rplsf0a1haircmhi1apn06a7wl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0V4cG9zZWRDYXQvc25vd3kiLAogICJ1dWlkIjogInNub3d5QGV4cG9zZWRjYXQiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0ylw8iwzc9mnhbss8imrwzpc6rplsf0a1haircmhi1apn06a7wl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0V4cG9zZWRDYXQvc25vd3kiLAogICJ1dWlkIjogInNub3d5QGV4cG9zZWRjYXQiLAogICJ2ZXJzaW9uIjogNgp9"}}}
, {"uuid": "focus@scaryrawr.github.io", "name": "Focus", "pname": "focus", "description": "Transparent inactive windows", "link": "https://extensions.gnome.org/extension/3924/focus/", "shell_version_map": {"38": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {"38": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {"38": {"version": "3", "sha256": "1shlfdmwnz6cxivhcd8gijhrnlcdyk1l9ypj8xx14lpzwzx50c5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NhbnNvemJpci9nbm9tZS1zaGVsbC10b2dnbGUtbmlnaHQtbGlnaHQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2dnbGUtbmlnaHQtbGlnaHRAY2Fuc296YmlyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1shlfdmwnz6cxivhcd8gijhrnlcdyk1l9ypj8xx14lpzwzx50c5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NhbnNvemJpci9nbm9tZS1zaGVsbC10b2dnbGUtbmlnaHQtbGlnaHQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2dnbGUtbmlnaHQtbGlnaHRAY2Fuc296YmlyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "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": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"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=="}, "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="}, "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": "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": "10", "sha256": "0i37h2jcj2j64cc3y67irmmj1g7iqz5pzcdz9y8ws702jpg0pz2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhbWFyaW9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQGZ0cGl4LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0i37h2jcj2j64cc3y67irmmj1g7iqz5pzcdz9y8ws702jpg0pz2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhbWFyaW9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQGZ0cGl4LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
, {"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="}, "41": {"version": "19", "sha256": "0vyxvb68mip302mnwm64wbjyi2q9q2184rzzl7iw05pgvr7wsyqg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zaHV6aGkiLAogICJ1dWlkIjogInNodXpoaUB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
+, {"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": "9", "sha256": "06mxhyxzfwgx2daqnkxw9mrxmi1p606miq5almnfaw2hk17sc45a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYvZ3VpbGxvdGluZS8iLAogICJ1dWlkIjogImd1aWxsb3RpbmVAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "06mxhyxzfwgx2daqnkxw9mrxmi1p606miq5almnfaw2hk17sc45a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYvZ3VpbGxvdGluZS8iLAogICJ1dWlkIjogImd1aWxsb3RpbmVAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "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": "1yk39q1ydv7kmb8shi4cp7pf5zvpmj99gjl9svack4773dj9rrwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogInNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NodXpoaSIsCiAgInV1aWQiOiAic2h1emhpQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "17", "sha256": "1n0ajmm6d7y6kify6k9g3j2kc3ass9s7zyif5jhr1djzsi6knpq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "19", "sha256": "1ib82yf7gh97hygbrxccpsh75jpg65rp834vygi25kyf0b8fykff", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
, {"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": "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": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "40": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
+, {"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": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"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", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"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"}, "41": {"version": "10", "sha256": "1d17y5ryzy88nsdb61f8xbbk7gc4x8n7lragxgg0frzmyi0zzaca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbHlyaWMgb2YgdGhlIHBsYXlpbmcgc29uZyBvbiB0aGUgZGVza3RvcFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZGVza3RvcC1seXJpYyIsCiAgInV1aWQiOiAiZGVza3RvcC1seXJpY0B0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDEwCn0="}}}
-, {"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": "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": "12", "sha256": "056cdiw7rlqpxkmca3f1aic7wr9dppvhp1z7wfxl905xn21p9pqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"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": "7", "sha256": "1qnbga30wvsj6xny7ajvy8y6c4vm3cpwz3zkm5njr2d0qg4svsq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0VGFiLW1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1qnbga30wvsj6xny7ajvy8y6c4vm3cpwz3zkm5njr2d0qg4svsq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0VGFiLW1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
, {"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="}, "41": {"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=="}, "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": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"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": "13", "sha256": "1fp2wx763cdvlbr4aa69c3ljdzzkngmzp9qf9gf11nrrxbkraaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "1fp2wx763cdvlbr4aa69c3ljdzzkngmzp9qf9gf11nrrxbkraaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "1fp2wx763cdvlbr4aa69c3ljdzzkngmzp9qf9gf11nrrxbkraaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
, {"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"}}}
@@ -430,52 +440,52 @@
, {"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": "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": "11", "sha256": "1j7q32g8zgcvrf3xvvzql9714965kidik5d7rkg41h3jmfqmaxzw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd290bXNodWFpc2kvaXFhaXJHbm9tZUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaXFhaXJAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDExCn0="}}}
, {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0syp7ka1rakzw4rlhhl1klszg56pbhyz787hvkg738j9ycl1spyq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhL3RyZWUvNDEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0yb0r44h7qv9agncwr2aw6dj1qm82xxvr3811b77nyapcha9cagh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLnJjIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "27", "sha256": "17dxs5hgk1iq2d21rvjjswnlgjvlcb8jn30xi752gz94l0y66kcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
, {"uuid": "disable-touch-osk@pardus.org.tr", "name": "disable-touch-osk", "pname": "disable-touch-osk", "description": "Disable on screen keyboard for touchscreens", "link": "https://extensions.gnome.org/extension/4087/disable-touch-osk/", "shell_version_map": {"38": {"version": "3", "sha256": "10ljbjbswzn9y30n2h39iiz673hhmazr2h14lhhws05m71xvbbfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgb24gc2NyZWVuIGtleWJvYXJkIGZvciB0b3VjaHNjcmVlbnMiLAogICJuYW1lIjogImRpc2FibGUtdG91Y2gtb3NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5wYXJkdXMub3JnLnRyLyIsCiAgInV1aWQiOiAiZGlzYWJsZS10b3VjaC1vc2tAcGFyZHVzLm9yZy50ciIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"uuid": "right_click_for_apps@briansayre", "name": "Right Click for Apps", "pname": "right-click-for-apps", "description": "Allows you to right-click the Activities button to reveal the application menu.", "link": "https://extensions.gnome.org/extension/4090/right-click-for-apps/", "shell_version_map": {"38": {"version": "1", "sha256": "1rzx8ksl48badrwyqxwbgvfgf48z642mdwl57aq280ng61nrndaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcmlnaHQtY2xpY2sgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIHRvIHJldmVhbCB0aGUgYXBwbGljYXRpb24gbWVudS4iLAogICJuYW1lIjogIlJpZ2h0IENsaWNrIGZvciBBcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJpYW5zYXlyZS9SaWdodC1DbGljay1Gb3ItQXBwcyIsCiAgInV1aWQiOiAicmlnaHRfY2xpY2tfZm9yX2FwcHNAYnJpYW5zYXlyZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
, {"uuid": "devbar@ludvigbostrom", "name": "DevBar", "pname": "devbar", "description": "This extension helps you keep track of your development workflow.", "link": "https://extensions.gnome.org/extension/4091/devbar/", "shell_version_map": {"38": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
, {"uuid": "notifications_to_file@fawtytoo", "name": "Notifications To File", "pname": "notifications-to-file", "description": "Notifications are appended to a file in $HOME/.notifications/ with one file created per day.\nEntries show the following information:\nTimestamp\nWhether the banner was shown\nThe urgency\nThe title\nBanner text", "link": "https://extensions.gnome.org/extension/4093/notifications-to-file/", "shell_version_map": {"38": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Background When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "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": "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.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "8", "sha256": "0s4s377rjvaqsagkksx7qkx28jml6sri6bw0n01a4p47xwkc4cwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0s4s377rjvaqsagkksx7qkx28jml6sri6bw0n01a4p47xwkc4cwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"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": "10", "sha256": "02y1hhi1l1bn3wv8b1czxk1il4kpaqssdfsnc5y023hlj42rm1v4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "02y1hhi1l1bn3wv8b1czxk1il4kpaqssdfsnc5y023hlj42rm1v4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
, {"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": "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": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
, {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "75", "sha256": "1hagdzn3k27aal1kcsjsfzbas1xbnzv8z3hdmriypxvy531adz2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3NQp9"}, "40": {"version": "75", "sha256": "1hagdzn3k27aal1kcsjsfzbas1xbnzv8z3hdmriypxvy531adz2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3NQp9"}, "41": {"version": "75", "sha256": "1hagdzn3k27aal1kcsjsfzbas1xbnzv8z3hdmriypxvy531adz2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3NQp9"}}}
+, {"uuid": "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* * Not Indicate when Using Single Mode IME\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 Indicator Show Delay and Configure Showing Timeout\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* * 启用延时显示以及配置显示时延\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": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}, "40": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}, "41": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}}}
, {"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": "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="}, "41": {"version": "4", "sha256": "0fnzlmr12l8y689p6kclm3yd3b653jl9f1bhhy7652c1b4g515m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
, {"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": "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": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
, {"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": "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": "3", "sha256": "08z8ij9cj198g7cw3mr9spy1pirqhxkhmqwhg2vysql9bwhc3w1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHdvcmtzcGFjZSB0aHVtYm5haWxzIGV2ZW4gdGhlcmUgaXMgb25seSBvbmUgd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWx3YXlzLXNob3ctd29ya3NwYWNlLXRodW1ibmFpbHMvIiwKICAidXVpZCI6ICJhbHdheXNzaG93d29ya3NwYWNldGh1bWJuYWlsc0BhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "08z8ij9cj198g7cw3mr9spy1pirqhxkhmqwhg2vysql9bwhc3w1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHdvcmtzcGFjZSB0aHVtYm5haWxzIGV2ZW4gdGhlcmUgaXMgb25seSBvbmUgd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWx3YXlzLXNob3ctd29ya3NwYWNlLXRodW1ibmFpbHMvIiwKICAidXVpZCI6ICJhbHdheXNzaG93d29ya3NwYWNldGh1bWJuYWlsc0BhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"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"}, "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": "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": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"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 and expand your keyboard's capabilities. Mouse pointer pressure, clicks and scrolls over the corners/edges or keyboard shortcuts 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 windows and launch applications and scripts not only through the corners and edges of your monitors, but also using the custom keyboard shortcuts.\nSignificant part of available actions are visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturate, lightness and color inversions) , including correction filters for colorblind users and cb simulation filters for developers.\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 filter, 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": "11", "sha256": "101rw54gg991bmr7ggkl5km4r5h0bbjdh9861kji84dl4s9s9bf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQncyBjYXBhYmlsaXRpZXMuIE1vdXNlIHBvaW50ZXIgcHJlc3N1cmUsIGNsaWNrcyBhbmQgc2Nyb2xscyBvdmVyIHRoZSBjb3JuZXJzL2VkZ2VzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyBjYW4gdHJpZ2dlciBhbnkgb2YgZG96ZW5zIG9mIGJ1aWx0LWluIGFjdGlvbnMgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGJpZyBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgdGhhdCBsZXRzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB0aGUgR25vbWUgU2hlbGwgZW52aXJvbm1lbnQgYW5kIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gdXNpbmcgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgZmlsdGVyLCBzaW11bGF0aW9uLCBkZXNhdHVyYXRlLCBuaWdodCBsaWdodHMsIGRhcmsgdGhlbWUsIHZvbHVtZSwgbXV0ZSwgbWFnbmlmaWVyLCB6b29tLCBzY3JlZW4ga2V5Ym9hcmQsIHJlYWRlciwgbGFyZ2UgdGV4dCwgZm9yY2UgY2xvc2UsIGtpbGwgLTksIHNob3cgZGVza3RvcCwgcmVvcmRlciB3b3Jrc3BhY2UsIHdpbmRvdyB0aHVtYm5haWwgLyBwcmV2aWV3LCBsb29raW5nIGdsYXNzLCBjdXN0b20gbWVudSwgd2luZG93LCB3b3Jrc3BhY2UsIHN3aXRjaGVyLCBoaWRlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "101rw54gg991bmr7ggkl5km4r5h0bbjdh9861kji84dl4s9s9bf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQncyBjYXBhYmlsaXRpZXMuIE1vdXNlIHBvaW50ZXIgcHJlc3N1cmUsIGNsaWNrcyBhbmQgc2Nyb2xscyBvdmVyIHRoZSBjb3JuZXJzL2VkZ2VzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyBjYW4gdHJpZ2dlciBhbnkgb2YgZG96ZW5zIG9mIGJ1aWx0LWluIGFjdGlvbnMgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGJpZyBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgdGhhdCBsZXRzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB0aGUgR25vbWUgU2hlbGwgZW52aXJvbm1lbnQgYW5kIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gdXNpbmcgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgZmlsdGVyLCBzaW11bGF0aW9uLCBkZXNhdHVyYXRlLCBuaWdodCBsaWdodHMsIGRhcmsgdGhlbWUsIHZvbHVtZSwgbXV0ZSwgbWFnbmlmaWVyLCB6b29tLCBzY3JlZW4ga2V5Ym9hcmQsIHJlYWRlciwgbGFyZ2UgdGV4dCwgZm9yY2UgY2xvc2UsIGtpbGwgLTksIHNob3cgZGVza3RvcCwgcmVvcmRlciB3b3Jrc3BhY2UsIHdpbmRvdyB0aHVtYm5haWwgLyBwcmV2aWV3LCBsb29raW5nIGdsYXNzLCBjdXN0b20gbWVudSwgd2luZG93LCB3b3Jrc3BhY2UsIHN3aXRjaGVyLCBoaWRlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "101rw54gg991bmr7ggkl5km4r5h0bbjdh9861kji84dl4s9s9bf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQncyBjYXBhYmlsaXRpZXMuIE1vdXNlIHBvaW50ZXIgcHJlc3N1cmUsIGNsaWNrcyBhbmQgc2Nyb2xscyBvdmVyIHRoZSBjb3JuZXJzL2VkZ2VzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyBjYW4gdHJpZ2dlciBhbnkgb2YgZG96ZW5zIG9mIGJ1aWx0LWluIGFjdGlvbnMgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGJpZyBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgdGhhdCBsZXRzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB0aGUgR25vbWUgU2hlbGwgZW52aXJvbm1lbnQgYW5kIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gdXNpbmcgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgZmlsdGVyLCBzaW11bGF0aW9uLCBkZXNhdHVyYXRlLCBuaWdodCBsaWdodHMsIGRhcmsgdGhlbWUsIHZvbHVtZSwgbXV0ZSwgbWFnbmlmaWVyLCB6b29tLCBzY3JlZW4ga2V5Ym9hcmQsIHJlYWRlciwgbGFyZ2UgdGV4dCwgZm9yY2UgY2xvc2UsIGtpbGwgLTksIHNob3cgZGVza3RvcCwgcmVvcmRlciB3b3Jrc3BhY2UsIHdpbmRvdyB0aHVtYm5haWwgLyBwcmV2aWV3LCBsb29raW5nIGdsYXNzLCBjdXN0b20gbWVudSwgd2luZG93LCB3b3Jrc3BhY2UsIHN3aXRjaGVyLCBoaWRlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"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": "6", "sha256": "1wajx49ci9146wi10z2nvhgc1iw7mfqp8a8z5gr708f90vfy93lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "1wajx49ci9146wi10z2nvhgc1iw7mfqp8a8z5gr708f90vfy93lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"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": "11", "sha256": "1kfwnmqax6dd1mglxw6cdcz7vbzgskhp2js8pyqziaxd4yyxqa38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjZWRyb24vYXV0by1hY3Rpdml0aWVzIiwKICAidXVpZCI6ICJhdXRvLWFjdGl2aXRpZXNAYWNlZHJvbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"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=="}, "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": "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": "3", "sha256": "0vr5nci7i6qwnn64lwljfs409gjn0i267dgylz5d50kgjf8jql04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vZ2FyY2lhL3JlbW92ZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogInJyY0BvZ2FyY2lhLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "0vr5nci7i6qwnn64lwljfs409gjn0i267dgylz5d50kgjf8jql04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vZ2FyY2lhL3JlbW92ZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogInJyY0BvZ2FyY2lhLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
, {"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=="}, "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="}, "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"}, "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": "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": "5", "sha256": "0z24civcgjsif2gyxkjamzx2nlxxzfnkg4fwip4jbxy5v3d090nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0z24civcgjsif2gyxkjamzx2nlxxzfnkg4fwip4jbxy5v3d090nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
, {"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="}, "41": {"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• Pinch to show desktop\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": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
, {"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=="}}}
@@ -484,7 +494,7 @@
, {"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=="}, "41": {"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": "16", "sha256": "0sz207y0198q7g1f99wq2laf558bfhfdz13vmaxhj9j2lagm17j8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "16", "sha256": "0sz207y0198q7g1f99wq2laf558bfhfdz13vmaxhj9j2lagm17j8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "0sz207y0198q7g1f99wq2laf558bfhfdz13vmaxhj9j2lagm17j8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
, {"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"}}}
@@ -497,44 +507,44 @@
, {"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\n ERROR while updating extension ? restart your system or reload gnome shell. Alt + F2 then r + Enter", "link": "https://extensions.gnome.org/extension/4308/network-stats/", "shell_version_map": {"38": {"version": "10", "sha256": "1kmbaja0nhqjayjcy6rnm2wqzv1gw3divd7d15nanbh0igmwm32a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ub3JvYWRzbGVmdDAwMC9nbm9tZS1uZXR3b3JrLXN0YXRzIiwKICAidXVpZCI6ICJuZXR3b3JrLXN0YXRzQGdub21lLm5vcm9hZHNsZWZ0Lnh5eiIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "1kmbaja0nhqjayjcy6rnm2wqzv1gw3divd7d15nanbh0igmwm32a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ub3JvYWRzbGVmdDAwMC9nbm9tZS1uZXR3b3JrLXN0YXRzIiwKICAidXVpZCI6ICJuZXR3b3JrLXN0YXRzQGdub21lLm5vcm9hZHNsZWZ0Lnh5eiIsCiAgInZlcnNpb24iOiAxMAp9"}}}
, {"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=="}, "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=="}, "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="}}}
-, {"uuid": "mumble-ping@maweil.github.com", "name": "MumblePing", "pname": "mumbleping", "description": "Displays how many users are currently online on a mumble server", "link": "https://extensions.gnome.org/extension/4341/mumbleping/", "shell_version_map": {"38": {"version": "1", "sha256": "1xvz9dshkhgil1ivsj47lil3d5g2k6l7l3phdqb11kpd14873xa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "1xvz9dshkhgil1ivsj47lil3d5g2k6l7l3phdqb11kpd14873xa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "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": "6", "sha256": "1ppbhr9qshc9wmk9y8y4nsi1rm65xy5q72v1sg1nq6sz3r45imml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ERU0wTkFzc2lzc2FuNy9kZXNrdG9wLWljb25zLW5lbyIsCiAgInV1aWQiOiAiZGVza3RvcGljb25zLW5lb0BkYXJrZGVtb24iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1ppbhr9qshc9wmk9y8y4nsi1rm65xy5q72v1sg1nq6sz3r45imml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ERU0wTkFzc2lzc2FuNy9kZXNrdG9wLWljb25zLW5lbyIsCiAgInV1aWQiOiAiZGVza3RvcGljb25zLW5lb0BkYXJrZGVtb24iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1ppbhr9qshc9wmk9y8y4nsi1rm65xy5q72v1sg1nq6sz3r45imml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ERU0wTkFzc2lzc2FuNy9kZXNrdG9wLWljb25zLW5lbyIsCiAgInV1aWQiOiAiZGVza3RvcGljb25zLW5lb0BkYXJrZGVtb24iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"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": "3", "sha256": "1q98dnw4gbn7ajbnkic5az55np95gn1pd3f7bigyl9nxc6wyimvi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFsbG93bG9ja2VkcmVtb3RlZGVza3RvcEBrYW1lbnMudXMiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1q98dnw4gbn7ajbnkic5az55np95gn1pd3f7bigyl9nxc6wyimvi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFsbG93bG9ja2VkcmVtb3RlZGVza3RvcEBrYW1lbnMudXMiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1q98dnw4gbn7ajbnkic5az55np95gn1pd3f7bigyl9nxc6wyimvi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFsbG93bG9ja2VkcmVtb3RlZGVza3RvcEBrYW1lbnMudXMiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "mumble-ping@maweil.github.com", "name": "MumblePing", "pname": "mumbleping", "description": "Displays how many users are currently online on a mumble server", "link": "https://extensions.gnome.org/extension/4341/mumbleping/", "shell_version_map": {"38": {"version": "2", "sha256": "0xra5qr54w8f4wsrsc1id22vnd25vvcsj0q3mm3aq5h40px9dc4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0xra5qr54w8f4wsrsc1id22vnd25vvcsj0q3mm3aq5h40px9dc4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0xra5qr54w8f4wsrsc1id22vnd25vvcsj0q3mm3aq5h40px9dc4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
, {"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. 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": "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": "5", "sha256": "0j757f5zlam7713hnkg8xx5k24z9a0kjqalxnkipvy0kqak0416s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS9mdWxsc2NyZWVuLWF2b2lkZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4tYXZvaWRlckBub29ic2FpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0j757f5zlam7713hnkg8xx5k24z9a0kjqalxnkipvy0kqak0416s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS9mdWxsc2NyZWVuLWF2b2lkZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4tYXZvaWRlckBub29ic2FpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
, {"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": "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": "6", "sha256": "1gaaxw4j3p0g3jbnn8y93j7hpqvn67l36ws02h3nky1nfnyji4nz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG9wZW5lZCB3aW5kb3dzIGluIHZlcnRpY2FsIHBhbmVsIHdpdGggcHJvZHVjdGl2aXR5IHBlcmtzXG5cbi0gbGVmdCBjbGljayB0byBvcGVuIGZhdm9yaXRlcy9hY3RpdmF0ZSB3aW5kb3dcbi0gcmlnaHQgY2xpY2sgdG8gY2xvc2Vcbi0gbWlkZGxlIGNsaWNrIHRvIHJlbmFtZVxuLSBkcmFnLWFuZC1kcm9wIHRvIHJlLWFycmFuZ2Vcbi0gQWx0LVRhYiB0byBjeWNsZVxuLSBhZGp1c3QgcGFuZWwgd2lkdGgsIHRyYW5zcGFyZW5jeSBhbmQgaWNvbiBzaXplIGluIGV4dGVuc2lvbiBzZXR0aW5ncyIsCiAgIm5hbWUiOiAiVmVydGljYWwgV2luZG93IExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3N0dWRlbnQvdmVydGljYWwtd2luZG93LWxpc3QiLAogICJ1dWlkIjogInZlcnRpY2FsLXdpbmRvdy1saXN0QHN0dWRlbnQuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "1gaaxw4j3p0g3jbnn8y93j7hpqvn67l36ws02h3nky1nfnyji4nz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG9wZW5lZCB3aW5kb3dzIGluIHZlcnRpY2FsIHBhbmVsIHdpdGggcHJvZHVjdGl2aXR5IHBlcmtzXG5cbi0gbGVmdCBjbGljayB0byBvcGVuIGZhdm9yaXRlcy9hY3RpdmF0ZSB3aW5kb3dcbi0gcmlnaHQgY2xpY2sgdG8gY2xvc2Vcbi0gbWlkZGxlIGNsaWNrIHRvIHJlbmFtZVxuLSBkcmFnLWFuZC1kcm9wIHRvIHJlLWFycmFuZ2Vcbi0gQWx0LVRhYiB0byBjeWNsZVxuLSBhZGp1c3QgcGFuZWwgd2lkdGgsIHRyYW5zcGFyZW5jeSBhbmQgaWNvbiBzaXplIGluIGV4dGVuc2lvbiBzZXR0aW5ncyIsCiAgIm5hbWUiOiAiVmVydGljYWwgV2luZG93IExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3N0dWRlbnQvdmVydGljYWwtd2luZG93LWxpc3QiLAogICJ1dWlkIjogInZlcnRpY2FsLXdpbmRvdy1saXN0QHN0dWRlbnQuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
, {"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": "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": "3", "sha256": "1v7fc3d3kna9ma0533b8d19ifnqdh07cyiz140fxdwb0k1yvxm7p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgbGlzdCBvZiB0aGUgVHVuZUQgcHJvZmlsZXMgYW5kIGFsbG93cyB0byBzd2l0Y2ggYmV0d2VlbiB0aGVtLlxuT2YgY291cnNlLCB0aGlzIGlzIHdvcmtzIG9ubHkgd2hlbiBUdW5lRCBpbnN0YWxsZWQgYW5kIHJ1bm5pbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVuZWQtcHJvZmlsZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiVHVuZUQgUHJvZmlsZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmludDIxaC9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHVuZWQtcHJvZmlsZS1zd2l0Y2hlci8iLAogICJ1dWlkIjogInR1bmVkLXByb2ZpbGUtc3dpdGNoZXJAdmludDIxaC5wcC51YSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1v7fc3d3kna9ma0533b8d19ifnqdh07cyiz140fxdwb0k1yvxm7p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgbGlzdCBvZiB0aGUgVHVuZUQgcHJvZmlsZXMgYW5kIGFsbG93cyB0byBzd2l0Y2ggYmV0d2VlbiB0aGVtLlxuT2YgY291cnNlLCB0aGlzIGlzIHdvcmtzIG9ubHkgd2hlbiBUdW5lRCBpbnN0YWxsZWQgYW5kIHJ1bm5pbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVuZWQtcHJvZmlsZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiVHVuZUQgUHJvZmlsZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmludDIxaC9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHVuZWQtcHJvZmlsZS1zd2l0Y2hlci8iLAogICJ1dWlkIjogInR1bmVkLXByb2ZpbGUtc3dpdGNoZXJAdmludDIxaC5wcC51YSIsCiAgInZlcnNpb24iOiAzCn0="}}}
, {"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"}}}
, {"uuid": "icon-area-horizontal-spacing-fixed@trblwlf.tk", "name": "Icon Area Horizontal Spacing Fixed", "pname": "icon-area-horizontal-spacing-fixed", "description": "Reduce the horizontal spacing between icons in the top-left icon area.\nFork of the \"Status Area Horizontal Spacing\" extension, but for the LEFT side. \nThank you to the original author: mathematical.coffee", "link": "https://extensions.gnome.org/extension/4387/icon-area-horizontal-spacing-fixed/", "shell_version_map": {"38": {"version": "1", "sha256": "07pnz6w2hmjhc9x5nbj1cvir169hfva16igik1f8fm08qg4rrv03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1sZWZ0IGljb24gYXJlYS5cbkZvcmsgb2YgdGhlIFwiU3RhdHVzIEFyZWEgSG9yaXpvbnRhbCBTcGFjaW5nXCIgZXh0ZW5zaW9uLCBidXQgZm9yIHRoZSBMRUZUIHNpZGUuIFxuVGhhbmsgeW91IHRvIHRoZSBvcmlnaW5hbCBhdXRob3I6IG1hdGhlbWF0aWNhbC5jb2ZmZWUiLAogICJkZXYtdmVyc2lvbiI6ICIyLjEiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJJY29uIEFyZWEgSG9yaXpvbnRhbCBTcGFjaW5nIEZpeGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmljb24tYXJlYS1ob3Jpem9udGFsLXNwYWNpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiaWNvbi1hcmVhLWhvcml6b250YWwtc3BhY2luZy1maXhlZEB0cmJsd2xmLnRrIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
, {"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": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement of the Alt-Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, VIM navigation hotkeys, window control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used instead of a dock.\n\nYou can set keyboard shortcuts for both, window and application switchers, in the Gnome Settings.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, windows, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch windows", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "9", "sha256": "1pnr1kpygsv0z2hkzrgvhwb1pnjdsxg36j1n7y9ilhvfcb2bq7zr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBib3RoLCB3aW5kb3cgYW5kIGFwcGxpY2F0aW9uIHN3aXRjaGVycywgaW4gIHRoZSBHbm9tZSBTZXR0aW5ncy5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1pnr1kpygsv0z2hkzrgvhwb1pnjdsxg36j1n7y9ilhvfcb2bq7zr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBib3RoLCB3aW5kb3cgYW5kIGFwcGxpY2F0aW9uIHN3aXRjaGVycywgaW4gIHRoZSBHbm9tZSBTZXR0aW5ncy5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1pnr1kpygsv0z2hkzrgvhwb1pnjdsxg36j1n7y9ilhvfcb2bq7zr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBib3RoLCB3aW5kb3cgYW5kIGFwcGxpY2F0aW9uIHN3aXRjaGVycywgaW4gIHRoZSBHbm9tZSBTZXR0aW5ncy5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
, {"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": "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": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \n\nGreat source of motivation according to terror management theory!", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "7", "sha256": "0rk4yf62pv2mqfzmy56p5c57zjdml1953kycs78305c005ckcycc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW9uc3ZlcnJ5ZnVsL3RoYW5hdG9waG9iaWEiLAogICJ1dWlkIjogInRoYW5hdG9waG9iaWFAeWF0eC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "0rk4yf62pv2mqfzmy56p5c57zjdml1953kycs78305c005ckcycc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW9uc3ZlcnJ5ZnVsL3RoYW5hdG9waG9iaWEiLAogICJ1dWlkIjogInRoYW5hdG9waG9iaWFAeWF0eC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"}}}
, {"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"}}}
@@ -543,28 +553,54 @@
, {"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": "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": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. Using gsettings, you can choose between three modes: AUTO, ARROW and CRITICAL.\n\nAUTO will expand the notifications in the notification list automatically. \nARROW adds an arrow that lets you choose what to expand or unexpand. \nCRITICAL is similar to arrow, but expands notifications with the urgency critical automatically. \n\nFor more information and an example command to change the mode, I recommend to look at the repository.\"", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "07g1q5y18zzf0jys16f781bck2s3my5jiyjb72mb47h4iqvyy83q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "07g1q5y18zzf0jys16f781bck2s3my5jiyjb72mb47h4iqvyy83q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"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": "Show controls and information of the currently playing media in the panel.\n\n - Highly customizable\n - Support GNOME 3.36(beta) , 3.38, 40, 41\n - Caches album art\n - Control every element in the extension", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {"38": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a simple label to the panel that shows currently playing song on Spotify, nothing more", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {"38": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
, {"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": "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": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME\n\nMAJOR CHANGES\n\n - Drag-drop tiling regions.\n - Removed toggling monitor stacked/tabbed layout. Creates a split first then updating the layout.\n\n Please report bugs/issues on https://github.com/jmmaranan/forge/issues", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "35", "sha256": "14pxp52j63x93lm80k27k7xafjnadifz2ral9a8sipqrdhdgji5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "36", "sha256": "1lhwncp1jiviw5azarc4ard975a9bxpxrzmllzkhwsqj3mqixyml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "41": {"version": "36", "sha256": "1lhwncp1jiviw5azarc4ard975a9bxpxrzmllzkhwsqj3mqixyml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
+, {"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": "4", "sha256": "1ha064bx8n8369swwh96yd257h2han94v5xpyfilxa756yihcf4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1plZnR5L0F1dG9OaWdodExpZ2h0IiwKICAidXVpZCI6ICJhdXRvbmlnaHRsaWdodEB6ZWZ0eS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ha064bx8n8369swwh96yd257h2han94v5xpyfilxa756yihcf4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1plZnR5L0F1dG9OaWdodExpZ2h0IiwKICAidXVpZCI6ICJhdXRvbmlnaHRsaWdodEB6ZWZ0eS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
, {"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": "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": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
, {"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": "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": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"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": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}}}
, {"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": "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": "2", "sha256": "1zjix04gprs1v3hvj5mgcipff14wahq192kacbqjw04p0ia90974", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY3B1ZG90c0BrZGV2bWVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "1zjix04gprs1v3hvj5mgcipff14wahq192kacbqjw04p0ia90974", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY3B1ZG90c0BrZGV2bWVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"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": "4", "sha256": "1w2nydglm2n0kyzwd4rh5q0x8h2d1ycy4ygxj00qfpxxnw477xda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnIyMzMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhaWxkcm9wc2VuZCIsCiAgInV1aWQiOiAidGFpbGRyb3BzZW5keHV3dW1pbmcyMDE0QG91dGxvb2suY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1w2nydglm2n0kyzwd4rh5q0x8h2d1ycy4ygxj00qfpxxnw477xda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnIyMzMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhaWxkcm9wc2VuZCIsCiAgInV1aWQiOiAidGFpbGRyb3BzZW5keHV3dW1pbmcyMDE0QG91dGxvb2suY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
, {"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": "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": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {"38": {"version": "7", "sha256": "0wizvqfcsyh43786zhci4j5b8z28y95cjajvqrb51x4r489l67lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvQ2xvdWRmbGFyZV9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImNsb3VkZmxhcmVAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0wizvqfcsyh43786zhci4j5b8z28y95cjajvqrb51x4r489l67lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvQ2xvdWRmbGFyZV9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImNsb3VkZmxhcmVAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"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": "4", "sha256": "1dcb05c8aii2cnryjwn392991jk010gx6ihb4ld30ylkvd45v0lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1dcb05c8aii2cnryjwn392991jk010gx6ihb4ld30ylkvd45v0lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"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": "8", "sha256": "0zqzsywg616s8i2mla2bswnm8mskyis79sazwhrpy77yrhviy6zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0zqzsywg616s8i2mla2bswnm8mskyis79sazwhrpy77yrhviy6zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0zqzsywg616s8i2mla2bswnm8mskyis79sazwhrpy77yrhviy6zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"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": "3", "sha256": "0gc6bk4piblqmm6qhb0jicdg571b23b0mns6mqhws4glznn4ckry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R1b25nZ2lha2hhbmhiL0tpbGxhcHBfR05PTUVfRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJraWxsYXBwQGFkYW0uZ2FkbXoiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0gc6bk4piblqmm6qhb0jicdg571b23b0mns6mqhws4glznn4ckry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R1b25nZ2lha2hhbmhiL0tpbGxhcHBfR05PTUVfRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJraWxsYXBwQGFkYW0uZ2FkbXoiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"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": {"38": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"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": "6", "sha256": "0rr98m2l20165mf8dcc2gwizqmksczkpbk8sqwhsppkvx6racz1m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0rr98m2l20165mf8dcc2gwizqmksczkpbk8sqwhsppkvx6racz1m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"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 (USD Dólar Americano) convertido para (BRL Real Brasileiro).\n\nAs atualizações são recebidas a cada 30 segundos e utiliza como base informações disponiblizadas pela API AwesomeAPI, que pode ser consultada diretamente acessando o endereço eletronico https://docs.awesomeapi.com.br.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "activate_gnome@isjerryxiao", "name": "Activate Gnome", "pname": "activate_gnome", "description": "Shows Activate Gnome watermark on your screen.", "link": "https://extensions.gnome.org/extension/4574/activate_gnome/", "shell_version_map": {"40": {"version": "3", "sha256": "1hmadwwzm6m9vg4wxz6lvalh9bvi2fnhzjyg9f4whzb5zp8klc4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdub21lIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdub21lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1hmadwwzm6m9vg4wxz6lvalh9bvi2fnhzjyg9f4whzb5zp8klc4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdub21lIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdub21lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei & Honor laptops WMI functions, such as battery protection, Fn-lock and keyboard backlight (just not yet).", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "1", "sha256": "0m1dfw61svxkrbcn5jjnsx48a6b0wrn788n2zrjbjr6dd98zwbn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgJiBIb25vciBsYXB0b3BzIFdNSSBmdW5jdGlvbnMsIHN1Y2ggYXMgYmF0dGVyeSBwcm90ZWN0aW9uLCBGbi1sb2NrIGFuZCBrZXlib2FyZCBiYWNrbGlnaHQgKGp1c3Qgbm90IHlldCkuIiwKICAibmFtZSI6ICJIdWF3ZWkgV01JIGNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "username-hotname@it-und-entwicklung-fg.de", "name": "Add Username and Hostname to panel", "pname": "username-and-hostname-to-panel", "description": "Adds your avatar icon, user displayname und username to the menu panel. Also it adds the hostname to the left of the panel.", "link": "https://extensions.gnome.org/extension/4583/username-and-hostname-to-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "1vsm7r2i30pmkasb47ia29isrzn40hhhl52z7jq1wpwz0ip3k3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgYW5kIEhvc3RuYW1lIHRvIHBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXQtZW50d2lja2x1bmctZmcvVXNlcm5hbWUtYW5kLUhvc3RuYW1lIiwKICAidXVpZCI6ICJ1c2VybmFtZS1ob3RuYW1lQGl0LXVuZC1lbnR3aWNrbHVuZy1mZy5kZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n\nNew update for shell version 3.34+ : Added option to choose what to display in settings menu", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Separate workspaces on multiple monitors", "pname": "switch-workspaces-on-active-monitor", "description": "To work properly, it require the options \"Static workspaces\" and \"Workspaces on primary display only\" of tweaks to be active .\n\nAfter you switch to a different workspace(by using the preview, or by selecting an app on the dock), the windows on the monitors that don't have the focus are moved to the visible workspace. So it looks like you are switching workspaces only on the active monitor, leaving the others unchanged.\n\nAlternatively, you can switch workspace only on the active monitor by using Ctrl+Alt+q and Ctrl+Alt+a", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "newworkspaceshortcut@barnix.io", "name": "New Workspace Shortcut", "pname": "new-workspace-shortcut", "description": "Use a shortcut to move a window to a new and empty workspace on the right of your current workspace: \nSuper + Alt + Shift + n\n\nUse a shortcut to move an entire workspace left or right of the current workspace: ALT+Left ALT+Right. As there is not any UI feedback for this event, you will want to be in the Overview so you can see your Workspace-Thumbnail moving left and right.\n\nFind more info by following the github repository link.", "link": "https://extensions.gnome.org/extension/4597/new-workspace-shortcut/", "shell_version_map": {"41": {"version": "2", "sha256": "04fkngb1vqgbvixc3ahsp4l5hz9cwh733qbd4f9f7dq4xsd393yc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIHNob3J0Y3V0IHRvIG1vdmUgYSB3aW5kb3cgdG8gYSBuZXcgYW5kIGVtcHR5IHdvcmtzcGFjZSBvbiB0aGUgcmlnaHQgb2YgeW91ciBjdXJyZW50IHdvcmtzcGFjZTogXG5TdXBlciArIEFsdCArIFNoaWZ0ICsgblxuXG5Vc2UgYSBzaG9ydGN1dCB0byBtb3ZlIGFuIGVudGlyZSB3b3Jrc3BhY2UgbGVmdCBvciByaWdodCBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2U6IEFMVCtMZWZ0IEFMVCtSaWdodC4gQXMgdGhlcmUgaXMgbm90IGFueSBVSSBmZWVkYmFjayBmb3IgdGhpcyBldmVudCwgeW91IHdpbGwgd2FudCB0byBiZSBpbiB0aGUgT3ZlcnZpZXcgc28geW91IGNhbiBzZWUgeW91ciBXb3Jrc3BhY2UtVGh1bWJuYWlsIG1vdmluZyBsZWZ0IGFuZCByaWdodC5cblxuRmluZCBtb3JlICBpbmZvIGJ5IGZvbGxvd2luZyB0aGUgZ2l0aHViIHJlcG9zaXRvcnkgbGluay4iLAogICJuYW1lIjogIk5ldyBXb3Jrc3BhY2UgU2hvcnRjdXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV3d29ya3NwYWNlc2hvcnRjdXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmFybnNjb3R0L25ld3dvcmtzcGFjZXNob3J0Y3V0LWJhcm5peC5pbyIsCiAgInV1aWQiOiAibmV3d29ya3NwYWNlc2hvcnRjdXRAYmFybml4LmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "p.stonham@switcheroo.org", "name": "Switcheroo", "pname": "switcheroo", "description": "Switch to the first window with the title x\n\nA very small extension to allow you to switch windows via gdbus. This is particularly useful if you are using wayland as utilities such as wmctrl won't work.\n\nSince Gnome 41 removed org.gnome.Shell.Eval for security reasons, if you ever used a command such as:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval\"var mw = global.get_window_actors().map(w=>w.meta_window).find(mw=>mw.get_title().includes('Firefox'));mw && mw.activate(0)\"\n\nthis can now be replaced with:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/switcheroo/Switcheroo --method org.switcheroo.Switcheroo.Set Firefox\n\nThis can then be assigned to a shortcut key in Gnome settings or called programmatically.", "link": "https://extensions.gnome.org/extension/4600/switcheroo/", "shell_version_map": {"41": {"version": "3", "sha256": "0pfjhx8pm26zpizazd2pbpfqsr8vwc6znrm1cbf4ydcyvfxsnwwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdpdGggdGhlIHRpdGxlIHhcblxuQSB2ZXJ5IHNtYWxsIGV4dGVuc2lvbiB0byBhbGxvdyB5b3UgdG8gc3dpdGNoIHdpbmRvd3MgdmlhIGdkYnVzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91IGFyZSB1c2luZyB3YXlsYW5kIGFzIHV0aWxpdGllcyBzdWNoIGFzIHdtY3RybCB3b24ndCB3b3JrLlxuXG5TaW5jZSBHbm9tZSA0MSByZW1vdmVkIG9yZy5nbm9tZS5TaGVsbC5FdmFsIGZvciBzZWN1cml0eSByZWFzb25zLCBpZiB5b3UgZXZlciB1c2VkIGEgY29tbWFuZCBzdWNoIGFzOlxuXG5nZGJ1cyBjYWxsIC0tc2Vzc2lvbiAtLWRlc3Qgb3JnLmdub21lLlNoZWxsIC0tb2JqZWN0LXBhdGggL29yZy9nbm9tZS9TaGVsbCAtLW1ldGhvZCBvcmcuZ25vbWUuU2hlbGwuRXZhbFwidmFyIG13ID0gZ2xvYmFsLmdldF93aW5kb3dfYWN0b3JzKCkubWFwKHc9Jmd0O3cubWV0YV93aW5kb3cpLmZpbmQobXc9Jmd0O213LmdldF90aXRsZSgpLmluY2x1ZGVzKCdGaXJlZm94JykpO213ICZhbXA7JmFtcDsgbXcuYWN0aXZhdGUoMClcIlxuXG50aGlzIGNhbiBub3cgYmUgcmVwbGFjZWQgd2l0aDpcblxuZ2RidXMgY2FsbCAtLXNlc3Npb24gLS1kZXN0IG9yZy5nbm9tZS5TaGVsbCAtLW9iamVjdC1wYXRoIC9vcmcvc3dpdGNoZXJvby9Td2l0Y2hlcm9vIC0tbWV0aG9kIG9yZy5zd2l0Y2hlcm9vLlN3aXRjaGVyb28uU2V0IEZpcmVmb3hcblxuVGhpcyBjYW4gdGhlbiBiZSBhc3NpZ25lZCB0byBhIHNob3J0Y3V0IGtleSBpbiBHbm9tZSBzZXR0aW5ncyBvciBjYWxsZWQgcHJvZ3JhbW1hdGljYWxseS4iLAogICJuYW1lIjogIlN3aXRjaGVyb28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInAuc3RvbmhhbUBzd2l0Y2hlcm9vLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "sane-airplane-mode@kippi", "name": "Sane Airplane Mode", "pname": "sane-airplane-mode", "description": "Make airplane mode sane again! This extension gives you better control over the airplane mode. \nHint: With this extension you can also turn off the annoying \"Bluetooth gets turned on when I disable airplane mode\" behaviour.", "link": "https://extensions.gnome.org/extension/4604/sane-airplane-mode/", "shell_version_map": {"40": {"version": "6", "sha256": "0jpis6rncjxjs90dlnl1677bxzk92x2zxzmnz2fmm0myl01pwnpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0jpis6rncjxjs90dlnl1677bxzk92x2zxzmnz2fmm0myl01pwnpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "undecorate@tabdeveloper.com", "name": "Undecorate Window (Fork)", "pname": "undecorate-window-for-wayland", "description": "Adds undecorate option to window menu to toggle window decoration.", "link": "https://extensions.gnome.org/extension/4606/undecorate-window-for-wayland/", "shell_version_map": {"40": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "zenbook-duo@laurinneff.ch", "name": "Asus ZenBook Duo Integration", "pname": "asus-zenbook-duo-integration", "description": "Integrate the features of the Asus ZenBook Duo into GNOME", "link": "https://extensions.gnome.org/extension/4607/asus-zenbook-duo-integration/", "shell_version_map": {"40": {"version": "4", "sha256": "1kskb1iiz2v82yb07n9nh32hyamdqnwv0qbicvk481l22hgsx91b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSB0aGUgZmVhdHVyZXMgb2YgdGhlIEFzdXMgWmVuQm9vayBEdW8gaW50byBHTk9NRSIsCiAgIm5hbWUiOiAiQXN1cyBaZW5Cb29rIER1byBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmlubmVmZi9nbm9tZS1zaGVsbC1leHRlbnNpb24temVuYm9vay1kdW8iLAogICJ1dWlkIjogInplbmJvb2stZHVvQGxhdXJpbm5lZmYuY2giLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1kskb1iiz2v82yb07n9nh32hyamdqnwv0qbicvk481l22hgsx91b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSB0aGUgZmVhdHVyZXMgb2YgdGhlIEFzdXMgWmVuQm9vayBEdW8gaW50byBHTk9NRSIsCiAgIm5hbWUiOiAiQXN1cyBaZW5Cb29rIER1byBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmlubmVmZi9nbm9tZS1zaGVsbC1leHRlbnNpb24temVuYm9vay1kdW8iLAogICJ1dWlkIjogInplbmJvb2stZHVvQGxhdXJpbm5lZmYuY2giLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "batterythreshold@francku.gitlab.com", "name": "Battery threshold", "pname": "battery-threshold", "description": "A simple extension for gnome-shell that let easily set a threshold to limit battery charge level.\n\nThis extension uses \"pkexec\" since sudo permissions are needed to change the threshold level.\n\nTested on Fedora Silverblue 35 (gnome-shell 3.41) on an Asus Vivobook.\n\nGithub page: https://github.com/francku/gnome-shell-extension-battery-threshold", "link": "https://extensions.gnome.org/extension/4612/battery-threshold/", "shell_version_map": {"41": {"version": "1", "sha256": "1dfnql5fmxxvaksl2c6v7sjq0339d2y5p8lznfdp2gb038l8bxjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZ25vbWUtc2hlbGwgdGhhdCBsZXQgZWFzaWx5IHNldCBhIHRocmVzaG9sZCB0byBsaW1pdCBiYXR0ZXJ5IGNoYXJnZSBsZXZlbC5cblxuVGhpcyBleHRlbnNpb24gdXNlcyBcInBrZXhlY1wiIHNpbmNlIHN1ZG8gcGVybWlzc2lvbnMgYXJlIG5lZWRlZCB0byBjaGFuZ2UgdGhlIHRocmVzaG9sZCBsZXZlbC5cblxuVGVzdGVkIG9uIEZlZG9yYSBTaWx2ZXJibHVlIDM1IChnbm9tZS1zaGVsbCAzLjQxKSBvbiBhbiBBc3VzIFZpdm9ib29rLlxuXG5HaXRodWIgcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL2ZyYW5ja3UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJhdHRlcnktdGhyZXNob2xkIiwKICAibmFtZSI6ICJCYXR0ZXJ5IHRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYmF0dGVyeXRocmVzaG9sZEBmcmFuY2t1LmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "one-third-window@chmouel.com", "name": "Center or rotate windows by one third of the screen", "pname": "one-third-window", "description": "Center or rotate the current window by one third of the screen.\n\nPosition and resize your windows in three with key shortcuts, center it to one third of the screen or rotate it around.", "link": "https://extensions.gnome.org/extension/4615/one-third-window/", "shell_version_map": {"38": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "hideTopBarWindow@kinzoku.one", "name": "Hide Top Bar Window", "pname": "hide-top-bar-window", "description": "Hides the selected window entry in the top bar.", "link": "https://extensions.gnome.org/extension/4621/hide-top-bar-window/", "shell_version_map": {"41": {"version": "1", "sha256": "0r7f8qb23ilz42pbbcd4rh22nnczqa9bags6msri1hl68lbv1qwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBzZWxlY3RlZCB3aW5kb3cgZW50cnkgaW4gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIgV2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9raW56b2t1Lm9uZSIsCiAgInV1aWQiOiAiaGlkZVRvcEJhcldpbmRvd0BraW56b2t1Lm9uZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "alphatint@saifulbkhan.github.com", "name": "AlphaTint", "pname": "alphatint", "description": "Artificially reduce brightness of your displays (including external monitors).\n\nIt is a fork of ColorTint modified to reduce brightness without an alpha channel.", "link": "https://extensions.gnome.org/extension/4624/alphatint/", "shell_version_map": {"40": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n+h = Focus left\n+j = Focus down\n+k = Focus up\n+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {"38": {"version": "5", "sha256": "1hlkj30ai0l3fgmzpnp0403hqgkrhpxhbcwn7i1vr6fvj5c9hgjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "4", "sha256": "1h46aq3qilrzv2z5x8sw0d8hn42rj1dj8xgdz3mmg2aj3gyahlbm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1h46aq3qilrzv2z5x8sw0d8hn42rj1dj8xgdz3mmg2aj3gyahlbm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "no-titlebar-when-maximized@alec.ninja", "name": "No Titlebar When Maximized", "pname": "no-titlebar-when-maximized", "description": "This extension hides the classic title bar of maximized X.Org windows.\n\nNote: The xprop utility must be installed in order for this extension to function.", "link": "https://extensions.gnome.org/extension/4630/no-titlebar-when-maximized/", "shell_version_map": {"41": {"version": "3", "sha256": "1dc9b5haw4ijd3vrml1zhrcfh97w86pyqf312k1mi91za6j8bfjr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cy5cblxuTm90ZTogVGhlIHhwcm9wIHV0aWxpdHkgbXVzdCBiZSBpbnN0YWxsZWQgaW4gb3JkZXIgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {"40": {"version": "4", "sha256": "07qzx3j2rbzriixml2jj3ac7ryzfminl3z0gk1dq7dkrvdaxlr8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "07qzx3j2rbzriixml2jj3ac7ryzfminl3z0gk1dq7dkrvdaxlr8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "mousefollowsfocus@matthes.biz", "name": "Mouse Follows Focus", "pname": "mouse-follows-focus", "description": "Are you a power-user?\nDo you like using Super+1,2,3 to access your favorite apps?\nAre you annoyed that you have to manually move your mouse between screens because it can't keep up with your keyboard shortcuts?\nThen this extension is for you!\n\nThis simple GNOME shell extension does the opposite of the 'focus follows mouse' setting. It makes the mouse follow your keyboard focus. Whenever you focus a window, if the cursor isn't already in it, it will jump to the windows center, making it easy to interact with it.", "link": "https://extensions.gnome.org/extension/4642/mouse-follows-focus/", "shell_version_map": {"41": {"version": "3", "sha256": "1bz3k5dpzax2ip8han8szw0cxcyanbk1yni67mbldw4rfl3qlfh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFyZSB5b3UgYSBwb3dlci11c2VyP1xuRG8geW91IGxpa2UgdXNpbmcgU3VwZXIrMSwyLDMgdG8gYWNjZXNzIHlvdXIgZmF2b3JpdGUgYXBwcz9cbkFyZSB5b3UgYW5ub3llZCB0aGF0IHlvdSBoYXZlIHRvIG1hbnVhbGx5IG1vdmUgeW91ciBtb3VzZSBiZXR3ZWVuIHNjcmVlbnMgYmVjYXVzZSBpdCBjYW4ndCBrZWVwIHVwIHdpdGggeW91ciBrZXlib2FyZCBzaG9ydGN1dHM/XG5UaGVuIHRoaXMgZXh0ZW5zaW9uIGlzIGZvciB5b3UhXG5cblRoaXMgc2ltcGxlIEdOT01FIHNoZWxsIGV4dGVuc2lvbiBkb2VzIHRoZSBvcHBvc2l0ZSBvZiB0aGUgJ2ZvY3VzIGZvbGxvd3MgbW91c2UnIHNldHRpbmcuIEl0IG1ha2VzIHRoZSBtb3VzZSBmb2xsb3cgeW91ciBrZXlib2FyZCBmb2N1cy4gV2hlbmV2ZXIgeW91IGZvY3VzIGEgd2luZG93LCBpZiB0aGUgY3Vyc29yIGlzbid0IGFscmVhZHkgaW4gaXQsIGl0IHdpbGwganVtcCB0byB0aGUgd2luZG93cyBjZW50ZXIsIG1ha2luZyBpdCBlYXN5IHRvIGludGVyYWN0IHdpdGggaXQuIiwKICAibmFtZSI6ICJNb3VzZSBGb2xsb3dzIEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlb25NYXR0aGVzL21vdXNlZm9sbG93c2ZvY3VzIiwKICAidXVpZCI6ICJtb3VzZWZvbGxvd3Nmb2N1c0BtYXR0aGVzLmJpeiIsCiAgInZlcnNpb24iOiAzCn0="}}}
]
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index 1c648e4a04..a08af5734e 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -1,7 +1,6 @@
{ callPackage }:
{
"arcmenu@arcmenu.com" = callPackage ./arcmenu { };
- "caffeine@patapon.info" = callPackage ./caffeine { };
"clock-override@gnomeshell.kryogenix.org" = callPackage ./clock-override { };
"dash-to-panel@jderose9.github.com" = callPackage ./dash-to-panel { };
"drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
@@ -15,6 +14,7 @@
"no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
"paperwm@hedning:matrix.org" = callPackage ./paperwm { };
"pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
+ "pop-shell@system76.com" = callPackage ./pop-shell { };
"sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { };
"system-monitor@paradoxxx.zero.gmail.com" = callPackage ./system-monitor { };
"taskwhisperer-extension@infinicode.de" = callPackage ./taskwhisperer { };
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/pop-shell/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/pop-shell/default.nix
new file mode 100644
index 0000000000..759deb98b1
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/pop-shell/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, glib, nodePackages, gjs }:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-shell-extension-pop-shell";
+ version = "unstable-2021-11-30";
+
+ src = fetchFromGitHub {
+ owner = "pop-os";
+ repo = "shell";
+ rev = "4b65ee865d01436ec75a239a0586a2fa6051b8c3";
+ sha256 = "DHmp3kzBgbyxRe0TjER/CAqyUmD9LeRqAFQ9apQDzfk=";
+ };
+
+ nativeBuildInputs = [ glib nodePackages.typescript gjs ];
+
+ buildInputs = [ gjs ];
+
+ patches = [
+ ./fix-gjs.patch
+ ];
+
+ makeFlags = [ "XDG_DATA_HOME=$(out)/share" ];
+
+ passthru = {
+ extensionUuid = "pop-shell@system76.com";
+ extensionPortalSlug = "pop-shell";
+ };
+
+ meta = with lib; {
+ description = "Keyboard-driven layer for GNOME Shell";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.genofire ];
+ homepage = "https://github.com/pop-os/shell";
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch
new file mode 100644
index 0000000000..e1e6fb7a83
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch
@@ -0,0 +1,67 @@
+diff --git a/src/color_dialog/src/main.ts b/src/color_dialog/src/main.ts
+index 9522499..9911530 100644
+--- a/src/color_dialog/src/main.ts
++++ b/src/color_dialog/src/main.ts
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!/usr/bin/env gjs
+
+ imports.gi.versions.Gtk = '3.0';
+
+@@ -84,4 +84,4 @@ function launch_color_dialog() {
+
+ Gtk.init(null);
+
+-launch_color_dialog()
+\ No newline at end of file
++launch_color_dialog()
+diff --git a/src/extension.ts b/src/extension.ts
+index 7417c46..00d5829 100644
+--- a/src/extension.ts
++++ b/src/extension.ts
+@@ -534,7 +534,7 @@ export class Ext extends Ecs.System {
+ return true
+ }
+
+- const ipc = utils.async_process_ipc(["gjs", path])
++ const ipc = utils.async_process_ipc([path])
+
+ if (ipc) {
+ const generator = (stdout: any, res: any) => {
+diff --git a/src/floating_exceptions/src/main.ts b/src/floating_exceptions/src/main.ts
+index f298ec7..87a6bc4 100644
+--- a/src/floating_exceptions/src/main.ts
++++ b/src/floating_exceptions/src/main.ts
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!/usr/bin/env gjs
+
+ imports.gi.versions.Gtk = '3.0'
+
+@@ -329,4 +329,4 @@ function main() {
+ Gtk.main()
+ }
+
+-main()
+\ No newline at end of file
++main()
+diff --git a/src/panel_settings.ts b/src/panel_settings.ts
+index 83ff56c..1bc1e98 100644
+--- a/src/panel_settings.ts
++++ b/src/panel_settings.ts
+@@ -338,7 +338,7 @@ function color_selector(ext: Ext, menu: any) {
+ color_selector_item.add_child(color_button);
+ color_button.connect('button-press-event', () => {
+ let path = Me.dir.get_path() + "/color_dialog/main.js";
+- let resp = GLib.spawn_command_line_async(`gjs ${path}`);
++ let resp = GLib.spawn_command_line_async(path);
+ if (!resp) {
+
+ return null;
+@@ -353,4 +353,4 @@ function color_selector(ext: Ext, menu: any) {
+ });
+
+ return color_selector_item;
+-}
+\ No newline at end of file
++}
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
index e439e5b5a5..cf4b916b20 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
@@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-sound-output-device-chooser";
- version = "38";
+ version = "39";
src = fetchFromGitHub {
owner = "kgshank";
repo = "gse-sound-output-device-chooser";
rev = version;
- sha256 = "sha256-LZ+C9iK+j7+DEscYCIObxXc0Bn0Z0xSsEFMZxc8REWA=";
+ sha256 = "sha256-RFdBdpKsz2MjdzxWX4UFwah+e68dqrkvm7ql0RAZZwg=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
index 18bfea263f..21e38c548e 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -19,14 +19,14 @@
stdenv.mkDerivation rec {
pname = "aisleriot";
- version = "3.22.17";
+ version = "3.22.20";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = pname;
rev = version;
- sha256 = "sha256-14z/EdEz1XFDrQZlpoeHW73G187XuZX/uQXp+bAUsmI=";
+ sha256 = "sha256-5xFwlhT9qjtvNDQ8kfGd2BeK2KcJDzpfsEC8z4Ei3ns=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
index a2dbd9257a..e47e77d9c0 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
index a818d8c115..a940a6f2cd 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-autoar/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
index e8bfaffb45..526e6776f7 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
index 3df9d7450c..9e796670aa 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
@@ -30,7 +30,7 @@
}:
let
pname = "gnome-flashback";
- version = "3.40.0";
+ version = "3.42.1";
# From data/sessions/Makefile.am
requiredComponentsCommon = enableGnomePanel:
@@ -61,7 +61,7 @@ let
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "0fxv13m2q9z1q3i9jbggl35cb7jlckbdrfsr5sf030hr1w836gz0";
+ sha256 = "sha256:0kl4m05whm03m2v0y3jd69lghkggn8s0hxdhvchcas7jmhh940n8";
};
# make .desktop Execs absolute
diff --git a/third_party/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
index 12abe49b91..98670c9931 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
index dd65f858b6..46de584d5b 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/default.nix b/third_party/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/default.nix
index 40c1d4c767..ed1fd365eb 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch b/third_party/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
new file mode 100644
index 0000000000..ba82937d6c
--- /dev/null
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/gnustep/make/builder.sh b/third_party/nixpkgs/pkgs/desktops/gnustep/make/builder.sh
index 66afe1271c..39bd770382 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnustep/make/builder.sh
+++ b/third_party/nixpkgs/pkgs/desktops/gnustep/make/builder.sh
@@ -30,92 +30,92 @@ postInstall() {
# add the current package to the paths
local tmp="$out/lib/GNUstep/Applications"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
fi
tmp="$out/lib/GNUstep/Applications"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
fi
tmp="$out/lib/GNUstep/WebApplications"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
fi
tmp="$out/bin"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
fi
tmp="$out/sbin"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
fi
tmp="$out/lib/GNUstep"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
fi
tmp="$out/include"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
- if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
- export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
- else
- export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
- fi
+ if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
+ export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
+ else
+ export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
+ fi
fi
tmp="$out/lib"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
fi
tmp="$out/share/GNUstep/Documentation"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
fi
tmp="$out/share/man"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
fi
tmp="$out/share/info"
if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
fi
-
+
# write the config file
echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf
if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then
- echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
+ echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then
- echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then
- echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then
- echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then
- echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then
- echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
- echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then
- echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then
- echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then
- echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
fi
if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then
- echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
+ echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
fi
-
+
for i in $out/bin/*; do
- echo "wrapping $(basename $i)"
- wrapGSMake "$i" "$out/share/.GNUstep.conf"
+ echo "wrapping $(basename $i)"
+ wrapGSMake "$i" "$out/share/.GNUstep.conf"
done
}
diff --git a/third_party/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh b/third_party/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh
index b2b90f1e52..177a381100 100644
--- a/third_party/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh
+++ b/third_party/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh
@@ -20,58 +20,58 @@ addEnvVars() {
local filename
for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
- if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
- export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
- fi
+ if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
+ export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
+ fi
done
local tmp="$1/lib/GNUstep/Applications"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
fi
tmp="$1/lib/GNUstep/Applications"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
fi
tmp="$1/lib/GNUstep/WebApplications"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
fi
tmp="$1/bin"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
fi
tmp="$1/sbin"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
fi
tmp="$1/lib/GNUstep"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
fi
tmp="$1/include"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then
- if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
- export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
- else
- export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
- fi
+ if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
+ export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
+ else
+ export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
+ fi
fi
tmp="$1/lib"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
fi
tmp="$1/share/GNUstep/Documentation"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
fi
tmp="$1/share/man"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
fi
tmp="$1/share/info"
if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then
- addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
+ addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
fi
}
addEnvHooks "$targetOffset" addEnvVars
diff --git a/third_party/nixpkgs/pkgs/desktops/lxqt/libfm-qt/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/libfm-qt/default.nix
index c28d069d5f..fd7c7758f2 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix
index b7aa5d95ea..8e17437b47 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/libqtxdg/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/libqtxdg/default.nix
index 7abaed7c09..b6294e20dc 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/libqtxdg/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/libsysstat/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/libsysstat/default.nix
index 8da7675d48..bd5b667925 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/libsysstat/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix
index 10e40f4ed9..510339b46f 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix
index 08e2173612..abab373430 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-admin/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-admin/default.nix
index a3fd034e33..120014b25f 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-admin/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 348ee3423d..a6560198f6 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index fb2ed9e37d..15bc1941af 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-config/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-config/default.nix
index 745c4e71b5..d46e8e05e0 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-config/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
index 6dab1cbf73..13983bb088 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
index 093706fd6e..baa9784e4e 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
index a6fbfc2f56..7f5f1e74f3 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
index 34578e6bc5..b9b9936893 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index 0a84799d37..51e46b00ce 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
index 3713bcf0bb..90f03f6b3a 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
index 3095b23992..05119e9da4 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 32d9194be6..b1d8ad3527 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-session/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-session/default.nix
index b62ca157ee..cbda2a7185 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-session/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-sudo/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-sudo/default.nix
index 4daf40197e..bef00af4fe 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-sudo/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-themes/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-themes/default.nix
index 985e84d03c..7f7278528c 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/lxqt-themes/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index 662930e4e3..314a755431 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index ba913cd147..9f06d9f76d 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/qps/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/qps/default.nix
index 0a4918190b..f8f1340377 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/qps/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix
index d383703199..e93e404762 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/qtermwidget/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/qtermwidget/default.nix
index 94a9c651cc..20602573d2 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix b/third_party/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix
index 0ed305403b..2e1c568a48 100644
--- a/third_party/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix b/third_party/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
index 8da5f89392..7c1be60b20 100644
--- a/third_party/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix b/third_party/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
index f33c47cbf0..d80a19e29b 100644
--- a/third_party/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "mate-screensaver";
- 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 = "0xmgzrb5nk7x6ganf7jd4gmdafanx7f0znga0lhsd8kd40r40la1";
+ sha256 = "T72yHqSlnqjeM+qb93bYaXU+SSlWBGZMMOIg4JZZuLw=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix b/third_party/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
index 1c51e2f6ae..dba5c374f9 100644
--- a/third_party/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, gettext, xtrans, dbus-glib, systemd,
- libSM, libXtst, gtk3, epoxy, polkit, hicolor-icon-theme, mate,
+ libSM, libXtst, gtk3, libepoxy, polkit, hicolor-icon-theme, mate,
wrapGAppsHook, fetchpatch, mateUpdateScript
}:
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
gtk3
mate.mate-desktop
hicolor-icon-theme
- epoxy
+ libepoxy
polkit
];
diff --git a/third_party/nixpkgs/pkgs/desktops/mate/mate-themes/default.nix b/third_party/nixpkgs/pkgs/desktops/mate/mate-themes/default.nix
index 21c7b23537..2745019762 100644
--- a/third_party/nixpkgs/pkgs/desktops/mate/mate-themes/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/mate/mate-tweak/default.nix b/third_party/nixpkgs/pkgs/desktops/mate/mate-tweak/default.nix
index 5aebd6aef4..e379f5369f 100644
--- a/third_party/nixpkgs/pkgs/desktops/mate/mate-tweak/default.nix
+++ b/third_party/nixpkgs/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/third_party/nixpkgs/pkgs/desktops/mate/mozo/default.nix b/third_party/nixpkgs/pkgs/desktops/mate/mozo/default.nix
index 3a02b03ceb..6388b2319e 100644
--- a/third_party/nixpkgs/pkgs/desktops/mate/mozo/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/mate/mozo/default.nix
@@ -2,14 +2,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "mozo";
- version = "1.26.0";
+ version = "1.26.1";
format = "other";
doCheck = false;
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1hnxqdk69g7j809k6picgq8y626hnyznlzxd0pi743gshpwwnhj6";
+ sha256 = "DyRCmjsDe9BojsTDkdnYeB5Csj7zRfXlCvHnLF7y+jk=";
};
nativeBuildInputs = [ pkg-config gettext gobject-introspection wrapGAppsHook ];
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
index c8526c4898..6492c93329 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, nix-update-script
, appstream
, appstream-glib
@@ -20,7 +21,6 @@
, meson
, ninja
, packagekit
-, pantheon
, pkg-config
, python3
, vala
@@ -30,24 +30,15 @@
stdenv.mkDerivation rec {
pname = "appcenter";
- version = "3.8.1";
+ version = "3.9.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "sha256-d7DGyAC8itBxTfuabDPN16W4S4d42s5UPp8AusZfy5k=";
+ sha256 = "sha256-+r19n42FPoBArZNDF4ZAdUBZqsSxpLwpeBoyaRJBCrg=";
};
- 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 +91,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.appcenter";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
deleted file mode 100644
index 4841a7b3ee..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
+++ /dev/null
@@ -1,234 +0,0 @@
-From c1916699cd388cc8d9968127e43ba955471623bf Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Wed, 27 Oct 2021 09:33:15 +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 52cb36cc..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)) {
-- 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/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
deleted file mode 100644
index aa8cde8961..0000000000
--- a/third_party/nixpkgs/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 (
-- "
%s\n\t%s\n\t%s
\n",
-- pkg_name,
-- pkg_summary,
-- _("Version: %s").printf (pkg_version)
-- );
-- }
-- });
--
- os_updates.component.set_pkgnames ({});
- os_updates.change_information.clear_update_info ();
-
-@@ -160,29 +127,6 @@ public class AppCenterCore.UpdateManager : Object {
- count += 1;
- }
-
-- pk_updates.get_details_array ().foreach ((pk_detail) => {
-- var pk_package = new Pk.Package ();
-- try {
-- pk_package.set_id (pk_detail.get_package_id ());
-- var pkg_name = pk_package.get_name ();
-- var appcenter_package = client.lookup_package_by_id (pkg_name);
-- if (appcenter_package != null) {
-- appcenter_package.change_information.updatable_packages.@set (client, pk_package.get_id ());
-- appcenter_package.change_information.size += pk_detail.size;
-- appcenter_package.update_state ();
-- } else {
-- var pkgnames = os_updates.component.pkgnames;
-- pkgnames += pkg_name;
-- os_updates.component.pkgnames = pkgnames;
--
-- os_updates.change_information.updatable_packages.@set (client, pk_package.get_id ());
-- os_updates.change_information.size += pk_detail.size;
-- }
-- } catch (Error e) {
-- critical (e.message);
-- }
-- });
--
- os_updates.update_state ();
- return count;
- }
-diff --git a/src/MainWindow.vala b/src/MainWindow.vala
-index a32ce47b..b9f8594a 100644
---- a/src/MainWindow.vala
-+++ b/src/MainWindow.vala
-@@ -292,23 +292,6 @@ public class AppCenter.MainWindow : Hdy.ApplicationWindow {
- }
-
- public override bool delete_event (Gdk.EventAny event) {
-- unowned AppCenterCore.PackageKitBackend client = AppCenterCore.PackageKitBackend.get_default ();
-- if (client.working) {
-- if (task_finished_connection != 0U) {
-- client.disconnect (task_finished_connection);
-- }
--
-- hide ();
-- task_finished_connection = client.notify["working"].connect (() => {
-- if (!visible && !client.working) {
-- destroy ();
-- }
-- });
--
-- AppCenterCore.Client.get_default ().cancel_updates (false); //Timeouts keep running
-- return true;
-- }
--
- return false;
- }
-
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index de01821edd..2878d750db 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -69,5 +69,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.calculator";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index 744184cc3d..019e2cf5a2 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -84,5 +84,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.calendar";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index c8e6e4da37..0d434084c2 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -25,7 +25,7 @@
stdenv.mkDerivation rec {
pname = "elementary-camera";
- version = "6.0.1";
+ version = "6.0.2";
repoName = "camera";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "sha256-OdBinryF6XTcvtY4A1wdDVazjf/VritEGF97ts6d4RY=";
+ sha256 = "sha256-uVeV+LKA/W7WVUAvVWaSNRzeh1MUrhRjvS0HuhZZJ04=";
};
nativeBuildInputs = [
@@ -81,5 +81,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.camera";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index df448079c5..078dc5d5f0 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -21,7 +21,6 @@
, libsoup
, vte
, webkitgtk
-, zeitgeist
, ctags
, libgit2-glib
, wrapGAppsHook
@@ -30,7 +29,7 @@
stdenv.mkDerivation rec {
pname = "elementary-code";
- version = "6.0.1";
+ version = "6.1.0";
repoName = "code";
@@ -38,7 +37,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "120328pprzqj4587yj54yya9v2mv1rfwylpmxyr5l2qf80cjxi9d";
+ sha256 = "sha256-AXmMcPj2hf33G5v3TUg+eZwaKOdVlRvoVXglMJFHRjw=";
};
passthru = {
@@ -74,7 +73,6 @@ stdenv.mkDerivation rec {
libsoup
vte
webkitgtk
- zeitgeist
];
# install script fails with UnicodeDecodeError because of printing a fancy elipsis character
@@ -98,5 +96,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.code";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index 4de65108c5..f23120c0b6 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, vala
, atk
@@ -20,7 +21,6 @@
, gnome-menus
, libgee
, wrapGAppsHook
-, pantheon
, meson
, ninja
, granite
@@ -28,7 +28,7 @@
stdenv.mkDerivation rec {
pname = "elementary-dock";
- version = "unstable-2021-07-16";
+ version = "unstable-2021-11-08";
outputs = [ "out" "dev" ];
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "elementary";
repo = repoName;
- rev = "05fd6fccdf1a769f6737a0d7e57e092825348660";
- sha256 = "0lqqq5cx0kk8y7qyjx7z2k3v1kw2xxzns968ianarcji19wzcns4";
+ rev = "51e8d3ddfbed0dfce3158d80f997ab183e92567b";
+ sha256 = "sha256-w6HGxEAXNod/uMEEfSz9nRNTRrCbcEqJCP9EFkVbX1U=";
};
nativeBuildInputs = [
@@ -76,5 +76,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members;
+ mainProgram = "plank";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index e65e45809c..8a9256f2a6 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.feedback";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 9ac1774174..747f966268 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -32,7 +32,7 @@
stdenv.mkDerivation rec {
pname = "elementary-files";
- version = "6.0.3";
+ version = "6.1.0";
repoName = "files";
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "10hgj5rrqxzk4q8jlhkwwrs4hgyavlhz3z1pqf36y663bq3h0izv";
+ sha256 = "sha256-aGiFEeSvDV5rPD2Ll/BuDoWclEPhR1UuoCxUSS9CGmw=";
};
passthru = {
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
bamf
elementary-dock
elementary-icon-theme
+ glib
granite
gtk3
libcanberra
@@ -82,16 +83,9 @@ stdenv.mkDerivation rec {
zeitgeist
];
- patches = [
- ./filechooser-portal-hardcode-gsettings-for-nixos.patch
- ];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
-
- substituteInPlace filechooser-portal/LegacyFileChooserDialog.vala \
- --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
'';
meta = with lib; {
@@ -100,5 +94,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.files";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch
deleted file mode 100644
index b04208cc8b..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 726ab4c0ab01273cb2197e4c151a5b69ff0954b6 Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Fri, 16 Jul 2021 18:24:58 +0800
-Subject: [PATCH] filechooser-portal: hardcode gsettings for nixos
-
----
- filechooser-portal/LegacyFileChooserDialog.vala | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/filechooser-portal/LegacyFileChooserDialog.vala b/filechooser-portal/LegacyFileChooserDialog.vala
-index 330718f..f383bb1 100644
---- a/filechooser-portal/LegacyFileChooserDialog.vala
-+++ b/filechooser-portal/LegacyFileChooserDialog.vala
-@@ -60,7 +60,9 @@ public class Files.LegacyFileChooserDialog : Object {
- /* If not local only during creation, strange bug occurs on fresh installs */
- chooser_dialog.local_only = true;
-
-- var chooser_settings = new Settings ("io.elementary.files.file-chooser");
-+ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
-+ SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
-+ var chooser_settings = new Settings.full (chooser_schema, null, null);
-
- action_area = (Gtk.ButtonBox) chooser_dialog.get_action_area ();
-
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
index 743ed40d6d..402612108b 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -26,7 +25,7 @@
stdenv.mkDerivation rec {
pname = "elementary-mail";
- version = "6.2.0";
+ version = "6.3.0";
repoName = "mail";
@@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1ab620zhwqqjq1bs1alvpcw9jmdxjij0ywczvwbg8gqvcsc80lkn";
+ sha256 = "sha256-lIVAMTtRrzJI5Qcd6y24ZmtzFWeTSbcKiEhG8hLC+PM=";
};
passthru = {
@@ -43,12 +42,6 @@ stdenv.mkDerivation rec {
};
};
- patches = [
- # The app stuck when loading gravatar, temporarily reverts part
- # of https://github.com/elementary/mail/pull/600 to fix this
- ./revert-fix-warning.patch
- ];
-
nativeBuildInputs = [
appstream
desktop-file-utils
@@ -85,5 +78,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ethancedwards8 ] ++ teams.pantheon.members;
+ mainProgram = "io.elementary.mail";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch
deleted file mode 100644
index 85534aaf4c..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 9e61e9493e78b83b9599886561ee596c096030ed Mon Sep 17 00:00:00 2001
-From: Bobby Rong
-Date: Thu, 29 Jul 2021 13:57:21 +0800
-Subject: [PATCH] Partly revert "Fix Warnings in Vala Code (#600)"
-
-This partly reverts commit 9477c24201d3c9c3c7bcc650e0290daa0ee1ab21.
----
- src/MessageList/MessageListItem.vala | 27 ++++++++++++++++++++++++++-
- 1 file changed, 26 insertions(+), 1 deletion(-)
-
-diff --git a/src/MessageList/MessageListItem.vala b/src/MessageList/MessageListItem.vala
-index 96b61027..a7ef8f9e 100644
---- a/src/MessageList/MessageListItem.vala
-+++ b/src/MessageList/MessageListItem.vala
-@@ -290,7 +290,7 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
- expanded = false;
- show_all ();
-
-- avatar.set_loadable_icon (new GravatarIcon (parsed_address, get_style_context ().get_scale ()));
-+ download_gravatar.begin (parsed_address, avatar.size);
-
- /* Override default handler to stop event propagation. Otherwise clicking the menu will
- expand or collapse the MessageListItem. */
-@@ -348,6 +348,31 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
- });
- }
-
-+ private async void download_gravatar (string address, int size) {
-+ if (avatars[address] == null) {
-+ var uri = "https://secure.gravatar.com/avatar/%s?d=404&s=%d".printf (
-+ Checksum.compute_for_string (ChecksumType.MD5, address.strip ().down ()),
-+ size * get_style_context ().get_scale ()
-+ );
-+
-+ var server_file = File.new_for_uri (uri);
-+ var path = Path.build_filename (Environment.get_tmp_dir (), server_file.get_basename ());
-+ var local_file = File.new_for_path (path);
-+
-+ try {
-+ yield server_file.copy_async (local_file, FileCopyFlags.OVERWRITE, Priority.DEFAULT, null);
-+ avatars[address] = new Gdk.Pixbuf.from_file_at_scale (path, size, size, true);
-+ } catch (Error e) {
-+ debug ("Unable to fetch gravatar: %s", e.message);
-+ return;
-+ }
-+ }
-+
-+ avatar.set_image_load_func (() => {
-+ return avatars[address];
-+ });
-+ }
-+
- private void add_inline_composer (ComposerWidget.Type composer_type) {
- var message_list_box = (MessageListBox) get_parent ();
- message_list_box.add_inline_composer.begin (composer_type, this);
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 300e7919dc..bee11ed055 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -108,5 +108,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.music";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 0b51f6209d..ca7b6fd3a7 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
@@ -98,11 +98,12 @@ stdenv.mkDerivation rec {
};
};
- meta = with lib; {
+ meta = with lib; {
description = "Photo viewer and organizer designed for elementary OS";
homepage = "https://github.com/elementary/photos";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.photos";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
index 4eb574d69f..f2f4360aa5 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -19,7 +19,7 @@
stdenv.mkDerivation rec {
pname = "elementary-screenshot";
- version = "6.0.0";
+ version = "6.0.1";
repoName = "screenshot";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1fvsl9zdkv7bgx3jpy7pr9lflm4ckr3swdby379mdxn2x6kxji0x";
+ sha256 = "sha256-MDmk+0IUCe6PSV5QOjjDRedv7X3lcBJ04jn9cE9DP3M=";
};
passthru = {
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.screenshot";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
index 545a21ba20..52bda92ceb 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, appstream
, desktop-file-utils
, meson
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.tasks";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index cd0e396280..f7799810ed 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, pantheon
, pkg-config
, meson
, ninja
@@ -91,5 +91,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.terminal";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 0c06e7b244..faeaab7ece 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -12,6 +11,7 @@
, gtk3
, granite
, libgee
+, libhandy
, clutter-gst
, clutter-gtk
, gst_all_1
@@ -21,7 +21,7 @@
stdenv.mkDerivation rec {
pname = "elementary-videos";
- version = "2.7.3";
+ version = "2.8.0";
repoName = "videos";
@@ -29,22 +29,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/videos/pull/233
- (fetchpatch {
- url = "https://github.com/elementary/videos/commit/19ba2a9148be09ea521d2e9ac29dede6b9c6fa07.patch";
- sha256 = "0ffp7ana98846xi7vxrzfg6dbs4yy28x2i4ky85mqs1gj6fjqin5";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-FFCtQ42LygfjowehwZcISWTfv8PBZTH0X8mPrpiG8Ug=";
};
nativeBuildInputs = [
@@ -70,6 +55,7 @@ stdenv.mkDerivation rec {
gstreamer
gtk3
libgee
+ libhandy
];
postPatch = ''
@@ -77,11 +63,18 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Video player and library app designed for elementary OS";
homepage = "https://github.com/elementary/videos";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.videos";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
index df152afc1a..a065966ba1 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, desktop-file-utils
, nix-update-script
, elementary-gtk-theme
@@ -13,7 +14,6 @@
, libhandy
, meson
, ninja
-, pantheon
, pkg-config
, python3
, vala
@@ -72,5 +72,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.sideload";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 949f1ecc3d..bcb7c39d17 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
, substituteAll
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index c1144dd4ec..d48704736b 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, substituteAll
, meson
, ninja
@@ -15,6 +15,7 @@
, switchboard
, fwupd
, appstream
+, nixos-artwork
}:
stdenv.mkDerivation rec {
@@ -53,9 +54,11 @@ stdenv.mkDerivation rec {
];
patches = [
- # The NixOS logo is not centered in the circular background and path
- # to the background is hardcoded, we will drop the background.
- ./remove-logo-background.patch
+ # Use NixOS's default wallpaper
+ (substituteAll {
+ src = ./fix-background-path.patch;
+ default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}";
+ })
];
meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-background-path.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-background-path.patch
new file mode 100644
index 0000000000..6fea886913
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-background-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
+index fdb92e7e..4161538e 100644
+--- a/src/Views/OperatingSystemView.vala
++++ b/src/Views/OperatingSystemView.vala
+@@ -47,7 +47,7 @@ public class About.OperatingSystemView : Gtk.Grid {
+ };
+ logo.set_image_load_func ((size) => {
+ try {
+- return new Gdk.Pixbuf.from_file_at_scale ("/usr/share/backgrounds/elementaryos-default", -1, size, true);
++ return new Gdk.Pixbuf.from_file_at_scale ("@default_wallpaper@", -1, size, true);
+ } catch (Error e) {
+ critical (e.message);
+ }
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch
deleted file mode 100644
index bc7805a22c..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
-index fdb92e7..87bb3a4 100644
---- a/src/Views/OperatingSystemView.vala
-+++ b/src/Views/OperatingSystemView.vala
-@@ -39,21 +39,6 @@ public class About.OperatingSystemView : Gtk.Grid {
- logo_icon_name = "distributor-logo";
- }
-
-- var logo = new Hdy.Avatar (128, "", false) {
-- // In case the wallpaper can't be loaded, we don't want an icon or text
-- icon_name = "invalid-icon-name",
-- // We need this for the shadow to not get clipped by Gtk.Overlay
-- margin = 6
-- };
-- logo.set_image_load_func ((size) => {
-- try {
-- return new Gdk.Pixbuf.from_file_at_scale ("/usr/share/backgrounds/elementaryos-default", -1, size, true);
-- } catch (Error e) {
-- critical (e.message);
-- }
-- });
-- logo.get_style_context ().add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
- var icon = new Gtk.Image () {
- icon_name = logo_icon_name + "-symbolic",
- // 128 minus 3px padding on each side
-@@ -65,8 +50,7 @@ public class About.OperatingSystemView : Gtk.Grid {
- icon_style_context.add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-
- var logo_overlay = new Gtk.Overlay ();
-- logo_overlay.add (logo);
-- logo_overlay.add_overlay (icon);
-+ logo_overlay.add (icon);
-
- // Intentionally not using GLib.OsInfoKey.PRETTY_NAME here because we
- // want more granular control over text formatting
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 22c2f4f64a..d24b755026 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 2238125fe2..8f4b9fe32b 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index b4518ea1e4..09717a584c 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, substituteAll
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 0fbb1eb81e..c25188add4 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -1,12 +1,13 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
, vala
, libgee
+, libhandy
, granite
, gtk3
, switchboard
@@ -14,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-display";
- version = "2.3.1";
+ version = "2.3.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1dqd34v124y71nnk0l617a53x652m0sb7b58465imr6ppyhx4vsv";
+ sha256 = "sha256-3sYZCazGnTjIi3Iry5673TMI13sD0GuY+46AK+NJH70=";
};
passthru = {
@@ -40,6 +41,7 @@ stdenv.mkDerivation rec {
granite
gtk3
libgee
+ libhandy
switchboard
];
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index c3860ba227..01a3da26b1 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,39 +1,42 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, substituteAll
, meson
, ninja
, pkg-config
, vala
, libgee
+, gnome-settings-daemon
, granite
+, gsettings-desktop-schemas
, gtk3
, libhandy
, libxml2
, libgnomekbd
, libxklavier
, ibus
+, onboard
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-keyboard";
- version = "2.5.1";
+ version = "2.6.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1p1l7dx5v1zzz89hhhkm6n3ls7ig4cf2prh1099f1c054qiy9b0y";
+ sha256 = "sha256-Bl0T+8upTdBnLs03UIimcAg0LO40KwuMZRNSM+y/3Hc=";
};
patches = [
./0001-Remove-Install-Unlisted-Engines-function.patch
(substituteAll {
src = ./fix-paths.patch;
- ibus = ibus;
+ inherit ibus onboard;
})
];
@@ -52,7 +55,9 @@ stdenv.mkDerivation rec {
];
buildInputs = [
+ gnome-settings-daemon # media-keys
granite
+ gsettings-desktop-schemas
gtk3
ibus
libgee
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
index bb21712a5b..0b5c8b8fd2 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
@@ -1,8 +1,8 @@
diff --git a/src/Views/InputMethod.vala b/src/Views/InputMethod.vala
-index 6d79fdc..de4276e 100644
+index 7f73c1e1..1f0d6400 100644
--- a/src/Views/InputMethod.vala
+++ b/src/Views/InputMethod.vala
-@@ -325,7 +325,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
+@@ -328,7 +328,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
private void spawn_ibus_daemon () {
bool is_spawn_succeeded = false;
try {
@@ -11,3 +11,16 @@ index 6d79fdc..de4276e 100644
} catch (GLib.SpawnError e) {
warning (e.message);
set_visible_view (e.message);
+diff --git a/src/Views/Layout.vala b/src/Views/Layout.vala
+index 75d2d805..b86252a4 100644
+--- a/src/Views/Layout.vala
++++ b/src/Views/Layout.vala
+@@ -219,7 +219,7 @@ namespace Pantheon.Keyboard {
+
+ onscreen_keyboard_settings.clicked.connect (() => {
+ try {
+- var appinfo = AppInfo.create_from_commandline ("onboard-settings", null, AppInfoCreateFlags.NONE);
++ var appinfo = AppInfo.create_from_commandline ("@onboard@/bin/onboard-settings", null, AppInfoCreateFlags.NONE);
+ appinfo.launch (null, null);
+ } catch (Error e) {
+ warning ("Unable to launch onboard-settings: %s", e.message);
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 0368314e7b..a765eca6de 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, substituteAll
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 7ccfb265e9..b88f3f72d0 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
@@ -56,7 +56,6 @@ stdenv.mkDerivation rec {
})
];
-
meta = with lib; {
description = "Switchboard Networking Plug";
homepage = "https://github.com/elementary/switchboard-plug-network";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 42cddfd2d6..fd5dfa3281 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 5e8447f629..409679407d 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,42 +1,30 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
, vala
-, libgee
+, evolution-data-server
+, glib
, granite
, gtk3
-, libaccounts-glib
, libgdata
, libhandy
-, libsignon-glib
-, json-glib
-, librest
-, webkitgtk
-, libsoup
, sqlite
, switchboard
-, evolution-data-server
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-onlineaccounts";
- version = "6.2.1";
+ version = "6.2.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1q3f7zr04p2100mb255zy38il2i47l6vqdc9a9acjbk3n7q5sf92";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-L1SL8YbsYKdE+mvRW/fxjNoiyXRXTyV2ru7/tZzgTfM=";
};
nativeBuildInputs = [
@@ -48,23 +36,20 @@ stdenv.mkDerivation rec {
buildInputs = [
evolution-data-server
+ glib
granite
gtk3
- json-glib
- libaccounts-glib
libgdata
- libgee
libhandy
- libsignon-glib
- libsoup
- librest
sqlite # needed for camel-1.2
switchboard
- webkitgtk
];
- PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
- PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
meta = with lib; {
description = "Switchboard Online Accounts Plug";
@@ -73,5 +58,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
-
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index 69242e8132..6fc961e4b5 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
@@ -25,28 +24,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-pantheon-shell";
- version = "6.0.0";
+ version = "6.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0349150kxdv14ald79pzn7lasiqipyc37fgchygbc8hsy62d9a32";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/switchboard-plug-pantheon-shell/pull/286
- (fetchpatch {
- url = "https://github.com/elementary/switchboard-plug-pantheon-shell/commit/0c3207ffaeaa82ca3c743bc9ec772185fbd7e8cf.patch";
- sha256 = "11ymzqx6has4zf8y0xy7pfhymcl128hzzjcgp46inshjf99v5kiv";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-rwneQ1bqpWDyTHULMtGqhPdpSDa4ObnVortmL0E+gHA=";
};
nativeBuildInputs = [
@@ -73,6 +57,12 @@ stdenv.mkDerivation rec {
wingpanel
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Switchboard Desktop Plug";
homepage = "https://github.com/elementary/switchboard-plug-pantheon-shell";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 6a9848b34a..0e8168d299 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index cae5b57054..dbca28038a 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index 986aa171e9..550562f19b 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, meson
, python3
, ninja
, pkg-config
, vala
+, elementary-settings-daemon
, libgee
, granite
+, gsettings-desktop-schemas
, gala
, gtk3
, glib
@@ -20,28 +21,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-security-privacy";
- version = "2.2.5";
+ version = "2.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1ydr1xpbyxjcnd36c9j7a64srbz6gpbshwhcqj6591kmiqhmvknk";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/switchboard-plug-security-privacy/pull/130
- (fetchpatch {
- url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/18fe438baba651670d7f0534856c3b2433e3d75d.patch";
- sha256 = "19qwm725k6h41kgg4a98i4rxx45s4bb1wxx0fzkh75gz9syfi58w";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-pkpS7BR/eXA0rWV1C5AR+FdF5OkDnV8YDBAt1ZkaVPo=";
};
nativeBuildInputs = [
@@ -53,9 +39,11 @@ stdenv.mkDerivation rec {
];
buildInputs = [
+ elementary-settings-daemon # settings schema
gala
glib
granite
+ gsettings-desktop-schemas
gtk3
libgee
polkit
@@ -68,6 +56,12 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Switchboard Security & Privacy Plug";
homepage = "https://github.com/elementary/switchboard-plug-security-privacy";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 2eacf55851..f41cfa2f74 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 7719477ce7..8a23f09838 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
@@ -17,28 +16,13 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-sound";
- version = "2.2.7";
+ version = "2.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0yjqws7ryfid9lcafgzzbfnjjwccsankscwdwqfw486qid85whzc";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/switchboard-plug-sound/pull/203
- (fetchpatch {
- url = "https://github.com/elementary/switchboard-plug-sound/commit/1f3b9f001ace4c457ab194158dff04ba5e25d278.patch";
- sha256 = "1lmf2bbif2wkfv500nxbqxp8jdmnjg8yk8xhx3g2g55d15rc5hk4";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-yHuboDpIcioZPNgpmnrM6J2eUCJpoNDdvgu27YuN65I=";
};
nativeBuildInputs = [
@@ -57,6 +41,12 @@ stdenv.mkDerivation rec {
switchboard
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Switchboard Sound Plug";
homepage = "https://github.com/elementary/switchboard-plug-sound";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
index 9268fa76ae..e31768c764 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
index bdab9b0d76..c8e6f11f11 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, python3
@@ -13,7 +13,6 @@
, libhandy
, granite
, gettext
-, clutter-gtk
, elementary-icon-theme
, wrapGAppsHook
}:
@@ -46,7 +45,6 @@ stdenv.mkDerivation rec {
];
buildInputs = [
- clutter-gtk
elementary-icon-theme
granite
gtk3
@@ -75,5 +73,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.switchboard";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 439a8986ea..b76a874490 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, gettext
@@ -10,7 +10,7 @@
stdenv.mkDerivation rec {
pname = "elementary-gtk-theme";
- version = "6.1.0";
+ version = "6.1.1";
repoName = "stylesheet";
@@ -18,13 +18,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "sha256-YvBjMbC3aQtYc/jPZmGdL4VfBH/VuxQ70PD0BWg9DTg=";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-gciBn5MQ5Cu+dROL5kCt2GCbNA7W4HOWXyjMBd4OP+8=";
};
nativeBuildInputs = [
@@ -34,6 +28,12 @@ stdenv.mkDerivation rec {
sassc
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "GTK theme designed to be smooth, attractive, fast, and usable";
homepage = "https://github.com/elementary/stylesheet";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index abaf8d6c31..450275d105 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, python3
, ninja
@@ -13,7 +13,7 @@
stdenv.mkDerivation rec {
pname = "elementary-icon-theme";
- version = "6.0.0";
+ version = "6.1.0";
repoName = "icons";
@@ -21,13 +21,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0k94zi8fzi0nf5q471fmrlz8jjkv8m6vav1spzv7ynkg2hik8d9b";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-WR4HV0nJKj0WeSFHXLK64O0LhX8myAJE4w0aztyhPn4=";
};
nativeBuildInputs = [
@@ -57,6 +51,12 @@ stdenv.mkDerivation rec {
postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Named, vector icons for elementary OS";
longDescription = ''
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
index b9c51f5688..97df0f9c78 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, pantheon
}:
stdenv.mkDerivation {
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index 6fe18119b4..6bad05693f 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 9fd0a4d1a4..1ae25be5dc 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, gettext
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/default.nix
index 61436ba57a..3300dd2ec8 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/default.nix
@@ -93,14 +93,18 @@ lib.makeScope pkgs.newScope (self: with self; {
elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
- extra-elementary-contracts = callPackage ./desktop/extra-elementary-contracts {
- inherit (gnome) file-roller gnome-bluetooth;
+ file-roller-contract = callPackage ./desktop/file-roller-contract {
+ inherit (gnome) file-roller;
};
gala = callPackage ./desktop/gala {
inherit (gnome) gnome-desktop;
};
+ gnome-bluetooth-contract = callPackage ./desktop/gnome-bluetooth-contract {
+ inherit (gnome) gnome-bluetooth;
+ };
+
wingpanel = callPackage ./desktop/wingpanel { };
wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix {
@@ -217,4 +221,6 @@ lib.makeScope pkgs.newScope (self: with self; {
elementary-screenshot-tool = elementary-screenshot; # added 2021-07-21
+ extra-elementary-contracts = throw "extra-elementary-contracts has been removed as all contracts have been upstreamed."; # added 2021-12-01
+
})
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 1751636da0..a96bba4ab1 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, nixos-artwork
@@ -15,7 +15,7 @@
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
- version = "6.0.1";
+ version = "6.0.2";
repoName = "default-settings";
@@ -23,13 +23,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "0gqnrm968j4v699yhhiyw5fqjy4zbvvrjci2v1jrlycn09c2yrwf";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-qaPj/Qp7RYzHgElFdM8bHV42oiPUbCMTC9Q+MUj4Q6Y=";
};
nativeBuildInputs = [
@@ -55,31 +49,28 @@ stdenv.mkDerivation rec {
'';
preInstall = ''
- # Install our override for plank dockitems as Appcenter and Tasks is not ready to be preinstalled.
- # For Appcenter, see: https://github.com/NixOS/nixpkgs/issues/70214.
- # For Tasks, see: https://github.com/elementary/tasks/issues/243#issuecomment-846259496
+ # Install our override for plank dockitems as Appcenter is not ready to be preinstalled.
+ # See: https://github.com/NixOS/nixpkgs/issues/70214.
schema_dir=$out/share/glib-2.0/schemas
install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
# Our launchers that use paths at /run/current-system/sw/bin
mkdir -p $out/etc/skel/.config/plank/dock1
cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
-
- # Whitelist wingpanel indicators to be used in the greeter
- # https://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
- # wingpanel 2.3.2 renamed this to .allowed to .forbidden
- # https://github.com/elementary/wingpanel/pull/326
- install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
'';
postFixup = ''
# https://github.com/elementary/default-settings/issues/55
- rm -rf $out/share/plymouth
- rm -rf $out/share/cups
-
- rm -rf $out/share/applications
+ rm -r $out/share/cups
+ rm -r $out/share/applications
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Default settings and configuration files for elementary";
homepage = "https://github.com/elementary/default-settings";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
deleted file mode 100644
index 0cff31f4f7..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
+++ /dev/null
@@ -1,6 +0,0 @@
-liba11y.so
-libbluetooth.so
-libkeyboard.so
-libnetwork.so
-libpower.so
-libsession.so
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem
new file mode 100644
index 0000000000..a98825afcb
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.tasks.dockitem
@@ -0,0 +1,2 @@
+[PlankDockItemPreferences]
+Launcher=file:///run/current-system/sw/share/applications/io.elementary.tasks.desktop
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
index b3ca51853b..426368e847 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
@@ -1,2 +1,2 @@
[net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index e85acf39e7..18e00e63bc 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, linkFarm
, substituteAll
, elementary-greeter
-, pantheon
, pkg-config
, meson
, ninja
@@ -128,5 +128,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.greeter";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index e7b0248ad4..e7a3d10b4f 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
+, fetchpatch
, nix-update-script
, substituteAll
-, pantheon
, pkg-config
, meson
, ninja
@@ -14,6 +15,7 @@
, libgee
, elementary-icon-theme
, elementary-gtk-theme
+, elementary-settings-daemon
, gettext
, libhandy
, wrapGAppsHook
@@ -22,7 +24,7 @@
stdenv.mkDerivation rec {
pname = "elementary-onboarding";
- version = "6.0.0";
+ version = "6.1.0";
repoName = "onboarding";
@@ -30,13 +32,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1mpw0j8ymb41py9v9qlk4nwy1lnwj7k388c7gqdv34ynck0ymfi4";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-9voy9eje3VlV4IMM664EyjKWTfSVogX5JoRCqhsUXTE=";
};
nativeBuildInputs = [
@@ -52,6 +48,7 @@ stdenv.mkDerivation rec {
buildInputs = [
elementary-gtk-theme
elementary-icon-theme
+ elementary-settings-daemon # settings schema
glib
granite
gtk3
@@ -64,6 +61,12 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
appcenter = appcenter;
})
+ # Provides the directory where the locales are actually installed
+ # https://github.com/elementary/onboarding/pull/147
+ (fetchpatch {
+ url = "https://github.com/elementary/onboarding/commit/af19c3dbefd1c0e0ec18eddacc1f21cb991f5513.patch";
+ sha256 = "sha256-fSFfjSd33W7rXXEUHY8b3rv9B9c31XfCjxjRxBBrqjs=";
+ })
];
postPatch = ''
@@ -71,11 +74,18 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Onboarding app for new users designed for elementary OS";
homepage = "https://github.com/elementary/onboarding";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.onboarding";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index c64cfced0c..119d5be213 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.print";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index e3d0cb8c72..2c0d2ae100 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, desktop-file-utils
, pkg-config
, writeScript
-, pantheon
, gnome-keyring
, gnome-session
, wingpanel
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 3a6fbc1947..fbde187ce6 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -20,7 +19,7 @@
stdenv.mkDerivation rec {
pname = "elementary-shortcut-overlay";
- version = "1.2.0";
+ version = "1.2.1";
repoName = "shortcut-overlay";
@@ -28,22 +27,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1zs2fpx4agr00rsfmpi00nhiw92mlypzm4p9x3g851p24m62fn79";
- };
-
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/shortcut-overlay/pull/100
- (fetchpatch {
- url = "https://github.com/elementary/shortcut-overlay/commit/f26e3684568e30cb6e151438e2d86c4d392626bf.patch";
- sha256 = "0zxyqpk9xbxdm8lmgdwbb4yzzwbjlhypsca3xs34a2pl0b9pcdwd";
- })
- ];
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-qmqzGCM3cVM6y80pzjm5CCyG6BO6XlKZiODAAEnwVrM=";
};
nativeBuildInputs = [
@@ -65,11 +49,18 @@ stdenv.mkDerivation rec {
libhandy
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "A native OS-wide shortcut overlay to be launched by Gala";
homepage = "https://github.com/elementary/shortcut-overlay";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.shortcut-overlay";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
deleted file mode 100644
index 2db483cb5c..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv
-, substituteAll
-, fetchFromGitHub
-, file-roller
-, gnome-bluetooth
-}:
-
-stdenv.mkDerivation rec {
- pname = "extra-elementary-contracts";
- version = "2018-08-21";
-
- src = fetchFromGitHub {
- owner = "worldofpeace";
- repo = pname;
- rev = "a05dfb00695854163805b666185e3e9f31b6eb83";
- sha256 = "0fkaf2w4xg0n9faj74rgzy7gvd3yz112l058b157a3pr39vpci7g";
- };
-
- patches = [
- (substituteAll {
- src = ./exec-path.patch;
- file_roller = file-roller;
- gnome_bluetooth = gnome-bluetooth;
- })
- ];
-
- dontBuild = true;
- dontConfigure = true;
-
- installPhase = ''
- mkdir -p $out/share/contractor
-
- cp *.contract $out/share/contractor/
- '';
-
- meta = with lib; {
- description = "Extra contractor files for elementary";
- homepage = "https://github.com/worldofpeace/extra-elementary-contracts";
- license = licenses.gpl2;
- maintainers = with maintainers; [ worldofpeace ];
- platforms = platforms.linux;
- };
-}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix
new file mode 100644
index 0000000000..9f4d275f24
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, file-roller
+}:
+
+stdenv.mkDerivation rec {
+ pname = "file-roller-contract";
+ version = "unstable-2021-02-23";
+
+ src = fetchFromGitHub {
+ owner = "elementary";
+ repo = pname;
+ rev = "cf001d84a7e2ddcfbee2cfdb19885798a869833e";
+ sha256 = "sha256-jnXq44NiQiSYsvaBF828TklLg9d6z6n+gCZKgbFiERI=";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./exec-path.patch;
+ file_roller = file-roller;
+ })
+ ];
+
+ dontConfigure = true;
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/contractor
+ cp *.contract $out/share/contractor/
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Contractor extension for File Roller";
+ homepage = "https://github.com/elementary/file-roller-contract";
+ license = licenses.gpl3Plus;
+ maintainers = teams.pantheon.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/file-roller-contract/exec-path.patch
similarity index 69%
rename from third_party/nixpkgs/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch
rename to third_party/nixpkgs/pkgs/desktops/pantheon/desktop/file-roller-contract/exec-path.patch
index 3b97e30611..8349ae8088 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/file-roller-contract/exec-path.patch
@@ -1,19 +1,18 @@
-diff --git a/file-roller-compress.contract b/file-roller-compress.contract
-index 8de5396..de7e939 100644
---- a/file-roller-compress.contract
-+++ b/file-roller-compress.contract
-@@ -3,6 +3,6 @@ Name=Compress
+diff --git a/io.elementary.contractor.file-roller-compress.contract b/io.elementary.contractor.file-roller-compress.contract
+index 11e4da3..d58549f 100644
+--- a/io.elementary.contractor.file-roller-compress.contract
++++ b/io.elementary.contractor.file-roller-compress.contract
+@@ -3,5 +3,5 @@ Name=Compress
Icon=add-files-to-archive
Description=Create a compressed archive with the selected objects
MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket;
-Exec=file-roller --add %U
+Exec=@file_roller@/bin/file-roller --add %U
Gettext-Domain=file-roller
-
-diff --git a/file-roller-extract-here.contract b/file-roller-extract-here.contract
+diff --git a/io.elementary.contractor.file-roller-extract-here.contract b/io.elementary.contractor.file-roller-extract-here.contract
index 184a6f2..345f4e7 100644
---- a/file-roller-extract-here.contract
-+++ b/file-roller-extract-here.contract
+--- a/io.elementary.contractor.file-roller-extract-here.contract
++++ b/io.elementary.contractor.file-roller-extract-here.contract
@@ -3,5 +3,5 @@ Name=Extract Here
Icon=extract-archive
Description=Extract the contents of the archives in the archive folder and quit the program
@@ -21,14 +20,3 @@ index 184a6f2..345f4e7 100644
-Exec=file-roller --extract-here %U
+Exec=@file_roller@/bin/file-roller --extract-here %U
Gettext-Domain=file-roller
-diff --git a/gnome-bluetooth.contract b/gnome-bluetooth.contract
-index 745dbbe..8cc0102 100644
---- a/gnome-bluetooth.contract
-+++ b/gnome-bluetooth.contract
-@@ -3,5 +3,5 @@ Name=Send files via Bluetooth
- Icon=bluetooth
- Description=Send files to device...
- MimeType=!inode;
--Exec=bluetooth-sendto %F
-+Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F
- Gettext-Domain=gnome-bluetooth2
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
index db757b1aa4..06021a37f5 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,7 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
+, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, python3
@@ -14,14 +15,11 @@
, granite
, libgee
, bamf
-, libcanberra
, libcanberra-gtk3
, gnome-desktop
, mutter
, clutter
-, elementary-dock
, elementary-icon-theme
-, elementary-settings-daemon
, gnome-settings-daemon
, wrapGAppsHook
, gexiv2
@@ -29,20 +27,24 @@
stdenv.mkDerivation rec {
pname = "gala";
- version = "6.2.1";
+ version = "6.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1phnhj731kvk8ykmm33ypcxk8fkfny9k6kdapl582qh4d47wcy6f";
+ sha256 = "sha256-f/WDm9/+lXgplg9tGpct4f+1cOhKgdypwiDRBhewRGw=";
};
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
- };
+ patches = [
+ ./plugins-dir.patch
+ # Session crashes when switching windows with Alt+Tab
+ # https://github.com/elementary/gala/issues/1312
+ (fetchpatch {
+ url = "https://github.com/elementary/gala/commit/cc83db8fe398feae9f3e4caa8352b65f0c8c96d4.patch";
+ sha256 = "sha256-CPO3EHIzqHAV6ZLHngivCdsD8je8CK/NHznfxSEkhzc=";
+ })
+ ];
nativeBuildInputs = [
desktop-file-utils
@@ -59,22 +61,21 @@ stdenv.mkDerivation rec {
buildInputs = [
bamf
clutter
- elementary-dock
elementary-icon-theme
- elementary-settings-daemon
gnome-settings-daemon
gexiv2
gnome-desktop
granite
gtk3
- libcanberra
libcanberra-gtk3
libgee
mutter
];
- patches = [
- ./plugins-dir.patch
+ mesonFlags = [
+ # TODO: enable this and remove --builtin flag from session-settings
+ # https://github.com/NixOS/nixpkgs/pull/140429
+ "-Dsystemd=false"
];
postPatch = ''
@@ -82,11 +83,18 @@ stdenv.mkDerivation rec {
patchShebangs build-aux/meson/post_install.py
'';
- meta = with lib; {
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
+ meta = with lib; {
description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon";
homepage = "https://github.com/elementary/gala";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "gala";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix
new file mode 100644
index 0000000000..36f4d3e539
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, gnome-bluetooth
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-bluetooth-contract";
+ version = "unstable-2021-02-23";
+
+ src = fetchFromGitHub {
+ owner = "elementary";
+ repo = pname;
+ rev = "8dcd4d03dc7a7d487980fd8bc95af985dc4fff5c";
+ sha256 = "sha256-9eX6j/cvN/CoqrHrh9mZEsUJ8viDWIGxIva1xFwIK7c=";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./exec-path.patch;
+ gnome_bluetooth = gnome-bluetooth;
+ })
+ ];
+
+ dontConfigure = true;
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/contractor
+ cp *.contract $out/share/contractor/
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Contractor extension for GNOME Bluetooth";
+ homepage = "https://github.com/elementary/gnome-bluetooth-contract";
+ license = licenses.gpl3Plus;
+ maintainers = teams.pantheon.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch
new file mode 100644
index 0000000000..c0bd9e579f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch
@@ -0,0 +1,11 @@
+diff --git a/io.elementary.contracter.gnome-bluetooth.contract b/io.elementary.contracter.gnome-bluetooth.contract
+index 3eb2334..ce0e5f5 100644
+--- a/io.elementary.contracter.gnome-bluetooth.contract
++++ b/io.elementary.contracter.gnome-bluetooth.contract
+@@ -3,5 +3,5 @@ Name=Send Files via Bluetooth
+ Icon=bluetooth
+ Description=Send files to device...
+ MimeType=!inode;
+-Exec=bluetooth-sendto %F
++Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F
+ Gettext-Domain=gnome-bluetooth2
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
index 7e185ece23..7ffc2cebab 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, meson
, ninja
, pkg-config
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index c2a4ad64ce..d74907db91 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, substituteAll
, meson
, ninja
@@ -26,7 +26,7 @@
stdenv.mkDerivation rec {
pname = "wingpanel-applications-menu";
- version = "2.9.1";
+ version = "2.10.1";
repoName = "applications-menu";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "sha256-Q0ee8S8wWhK0Y16SWfE79Us6QD/oRE5Pxm3o//eb/po=";
+ sha256 = "sha256-e9InWx5b2DAFK7m7z/oCW7Mw/ymBNz1Sc7vT65kkZ9o=";
};
patches = [
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index a9b13650dd..56d59ed461 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, python3
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index ad03027746..708e2b6eb0 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, substituteAll
-, pantheon
, pkg-config
, meson
, python3
@@ -24,20 +24,27 @@
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-datetime";
- version = "2.3.0";
+ version = "2.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1mdm0fsnmmyw8c0ik2jmfri3kas9zkz1hskzf8wvbd51vnazfpgw";
+ sha256 = "sha256-/kbwZVzOlC3ATCuXVMdf2RIskoGQKG1evaDYO3yFerg=";
};
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
- };
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ elementary_calendar = elementary-calendar;
+ })
+ # Fix incorrect month shown on re-opening indicator if previously changed month
+ # https://github.com/elementary/wingpanel-indicator-datetime/pull/284
+ (fetchpatch {
+ url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/9b0bed98e09dfdad62f43a95d956d2f53d824e65.patch";
+ sha256 = "sha256-MQfz4Uzo59SmmfQNi58OA7CIHHkm2TODQz2fmmIall4=";
+ })
+ ];
nativeBuildInputs = [
libxml2
@@ -60,24 +67,17 @@ stdenv.mkDerivation rec {
libgdata # required by some dependency transitively
];
- patches = [
- (substituteAll {
- src = ./fix-paths.patch;
- elementary_calendar = elementary-calendar;
- })
- # Upstream code not respecting our localedir
- # https://github.com/elementary/wingpanel-indicator-datetime/pull/269
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/f7befa68a9fd6215297c334a366919d3431cae65.patch";
- sha256 = "0l997b1pnpjscs886xy28as5yykxamxacvxdv8466zin7zynarfs";
- })
- ];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Date & Time Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 6d5227b713..4ce8fb0434 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 560d16111c..fdb6481f7e 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -3,7 +3,6 @@
, fetchFromGitHub
, nix-update-script
, substituteAll
-, pantheon
, pkg-config
, meson
, ninja
@@ -18,19 +17,13 @@
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-network";
- version = "2.3.1";
+ version = "2.3.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "sha256-xr1ZihWK8fU8M/rXRKk5dOjoQNe3aJO8ouKC/iVZ7Sk=";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-4Fg8/Gm9mUqaL3wEc8h+/pMvOfD75ILjo7LhLz6LQmo=";
};
nativeBuildInputs = [
@@ -49,6 +42,12 @@ stdenv.mkDerivation rec {
wingpanel
];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "Network Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-network";
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 23f9e400c0..ecaa05bc35 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 5adf2c7da6..a0a687985f 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index f3d3ac0e46..38a8fb2370 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, substituteAll
, nix-update-script
-, pantheon
, gnome
, pkg-config
, meson
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index eaccad35aa..510558f3cb 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
-, pantheon
, pkg-config
, meson
, ninja
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 3ea90b348e..16e04bedcb 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, nix-update-script
-, pantheon
, pkg-config
, meson
, python3
@@ -20,30 +19,15 @@
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-sound";
- version = "6.0.0";
+ version = "6.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0cv97c0qrhqisyghy9a9qr4ffcx3g4bkswxm6rn4r2wfg4gvljri";
+ sha256 = "sha256-FHZ4YhGLqGTz5Po2XFJvnWuAi1eHKcT9zzgJFHic02E=";
};
- patches = [
- # Upstream code not respecting our localedir
- # https://github.com/elementary/wingpanel-indicator-sound/pull/216
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-sound/commit/df816104c15e4322c1077313b1f43114cdaf710e.patch";
- sha256 = "029z7l467jz1ymxwrzrf874062r6xmskl7mldpq39jh110fijy5l";
- })
- # Fix build with vala 0.54
- # https://github.com/elementary/wingpanel-indicator-sound/pull/221
- (fetchpatch {
- url = "https://github.com/elementary/wingpanel-indicator-sound/commit/398d181eabe3dd803dc0ba335ac629902ec5b5ab.patch";
- sha256 = "1r2x3n6ws56jk7xcgk60am8mc5dgf8pz5ipsydxvmlrmipkjxyqi";
- })
- ];
-
nativeBuildInputs = [
libxml2
meson
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 4529b519bb..709a4e3e61 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, wrapGAppsHook
, pkg-config
, meson
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.wingpanel";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/granite/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
index b4476ef839..ec2255bbbc 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
, python3
@@ -7,7 +8,6 @@
, vala
, pkg-config
, libgee
-, pantheon
, gtk3
, glib
, gettext
@@ -18,7 +18,7 @@
stdenv.mkDerivation rec {
pname = "granite";
- version = "6.1.2";
+ version = "6.2.0";
outputs = [ "out" "dev" ];
@@ -26,13 +26,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "sha256-d48KQH8uwkSZWQEFSq1BD+TVUi9PWVVtMjKYmleRW58=";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-WM0Wo9giVP5pkMFaPCHsMfnAP6xD71zg6QLCYV6lmkY=";
};
nativeBuildInputs = [
@@ -58,6 +52,12 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "An extension to GTK used by elementary OS";
longDescription = ''
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "granite-demo";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
index 666e17362a..a6c0cb8a3c 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, meson
, python3
, ninja
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "contractor";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 0b904a1121..ed9919b0b0 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, python3
@@ -19,7 +19,7 @@
stdenv.mkDerivation rec {
pname = "elementary-capnet-assist";
- version = "2.3.0";
+ version = "2.4.0";
repoName = "capnet-assist";
@@ -27,13 +27,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "1gma8a04ndivx1fd3ha9f45r642qq2li80wrd6dsrp4v3vqix9bn";
- };
-
- passthru = {
- updateScript = nix-update-script {
- attrPath = "pantheon.${pname}";
- };
+ sha256 = "sha256-UdkS+w61c8z2TCJyG7YsDb0n0b2LOpFyaHzMbdCJsZI=";
};
nativeBuildInputs = [
@@ -55,21 +49,23 @@ stdenv.mkDerivation rec {
webkitgtk
];
- # Not useful here or in elementary - See: https://github.com/elementary/capnet-assist/issues/3
- patches = [
- ./remove-capnet-test.patch
- ];
-
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = "pantheon.${pname}";
+ };
+ };
+
meta = with lib; {
description = "A small WebKit app that assists a user with login when a captive portal is detected";
homepage = "https://github.com/elementary/capnet-assist";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
+ mainProgram = "io.elementary.capnet-assist";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch
deleted file mode 100644
index a59c74f22b..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 46c594b..ba0ea10 100644
---- a/meson.build
-+++ b/meson.build
-@@ -33,8 +33,3 @@ meson.add_install_script('meson/post_install.py')
-
- subdir('data')
- subdir('po')
--
--install_data(
-- '90captive_portal_test',
-- install_dir: join_paths(get_option('sysconfdir'), 'NetworkManager', 'dispatcher.d')
--)
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
index 15ae6840e4..2ea13c9cb5 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, meson
, ninja
@@ -10,7 +11,6 @@
, libgee
, libhandy
, libcanberra-gtk3
-, pantheon
, python3
, wrapGAppsHook
}:
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "io.elementary.notifications";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index 3b47ca3dc8..69a0c2a7bb 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, meson
, ninja
-, pantheon
, pkg-config
, python3
, vala
@@ -65,5 +65,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = teams.pantheon.members;
platforms = platforms.linux;
+ mainProgram = "io.elementary.settings-daemon";
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index e2053ebf6a..c135ea4e18 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
@@ -38,13 +38,13 @@ stdenv.mkDerivation rec {
pkg-config
vala
wrapGAppsHook
- ];
+ ];
buildInputs = [
geoclue2
gtk3
libgee
- ];
+ ];
# This should be provided by a post_install.py script - See -> https://github.com/elementary/pantheon-agent-geoclue2/pull/21
postInstall = ''
diff --git a/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index 4bef7fd5e0..3644d9665d 100644
--- a/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
, nix-update-script
-, pantheon
, pkg-config
, meson
, ninja
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
new file mode 100644
index 0000000000..3e9920cf62
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, kcoreaddons
+, kwindowsystem
+, plasma-framework
+, systemsettings
+, cmake
+, extra-cmake-modules
+, esbuild
+}:
+
+mkDerivation rec {
+ pname = "bismuth";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "Bismuth-Forge";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-ntfLijYPaOHvQToiAxuBZ5ayHPyQyevP9l6++SL0vUw=";
+ };
+
+ cmakeFlags = [
+ "-DUSE_TSC=OFF"
+ "-DUSE_NPM=OFF"
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ esbuild
+ ];
+
+ buildInputs = [
+ kcoreaddons
+ kwindowsystem
+ plasma-framework
+ systemsettings
+ ];
+
+ meta = with lib; {
+ description = "A dynamic tiling extension for KWin";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pasqui23 ];
+ homepage = "https://bismuth-forge.github.io/bismuth/";
+ inherit (kwindowsystem.meta) platforms;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/breeze-gtk.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/breeze-gtk.nix
index 1be3fe1c30..bff3546aa3 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/breeze-gtk.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/breeze-gtk.nix
@@ -6,6 +6,9 @@ mkDerivation {
name = "breeze-gtk";
nativeBuildInputs = [ extra-cmake-modules sassc python3 python3.pkgs.pycairo breeze-qt5 ];
buildInputs = [ qtbase ];
+ patches = [
+ ./patches/0001-fix-add-executable-bit.patch
+ ];
postPatch = ''
sed -i cmake/FindGTKEngine.cmake \
-e "s|\''${KDE_INSTALL_FULL_LIBDIR}|${getLib gtk2}/lib|"
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix
index e5a2393088..dd3634ac7c 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix
@@ -134,9 +134,11 @@ let
milou = callPackage ./milou.nix {};
oxygen = callPackage ./oxygen.nix {};
plasma-browser-integration = callPackage ./plasma-browser-integration.nix {};
+ plasma-phone-components = callPackage ./plasma-phone-components {};
plasma-desktop = callPackage ./plasma-desktop {};
plasma-disks = callPackage ./plasma-disks.nix {};
plasma-integration = callPackage ./plasma-integration {};
+ plasma-nano = callPackage ./plasma-nano {};
plasma-nm = callPackage ./plasma-nm {};
plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; };
plasma-sdk = callPackage ./plasma-sdk.nix {};
@@ -155,6 +157,7 @@ let
thirdParty = let inherit (libsForQt5) callPackage; in {
plasma-applet-caffeine-plus = callPackage ./3rdparty/addons/caffeine-plus.nix { };
plasma-applet-virtual-desktop-bar = callPackage ./3rdparty/addons/virtual-desktop-bar.nix { };
+ bismuth = callPackage ./3rdparty/addons/bismuth { };
kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { };
kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/fetch.sh b/third_party/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
index 5e9e799e2e..91031ac618 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.22.5/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.3/ -A '*.tar.xz' )
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/kwayland-integration.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/kwayland-integration.nix
index f886a87feb..02e963ba90 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/kwayland-integration.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/kwayland-integration.nix
@@ -2,10 +2,11 @@
mkDerivation, lib,
extra-cmake-modules,
kguiaddons, kidletime, kwayland, kwindowsystem, qtbase,
+ wayland-protocols, wayland-scanner, wayland
}:
mkDerivation {
name = "kwayland-integration";
- nativeBuildInputs = [ extra-cmake-modules ];
- buildInputs = [ kguiaddons kidletime kwindowsystem kwayland qtbase ];
+ nativeBuildInputs = [ extra-cmake-modules wayland-scanner ];
+ buildInputs = [ kguiaddons kidletime kwindowsystem kwayland qtbase wayland-protocols wayland ];
}
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
index c650f4ef83..36f0da9e96 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
@@ -1,8 +1,8 @@
{
- mkDerivation, lib, fetchpatch,
- extra-cmake-modules, kdoctools,
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools, fetchpatch,
- epoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa,
+ libepoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa,
pipewire, udev, wayland, xcb-util-cursor, xwayland,
qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
@@ -12,7 +12,7 @@
kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
krunner, kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons,
- kwindowsystem, kxmlgui, plasma-framework,
+ kwindowsystem, kxmlgui, plasma-framework, libqaccessibilityclient,
}:
# TODO (ttuegel): investigate qmlplugindump failure
@@ -21,7 +21,7 @@ mkDerivation {
name = "kwin";
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
- epoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire
+ libepoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire
udev wayland xcb-util-cursor xwayland
qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
@@ -31,26 +31,23 @@ mkDerivation {
kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
kidletime kinit kio knewstuff knotifications kpackage krunner kscreenlocker
kservice kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui
- plasma-framework
+ plasma-framework libqaccessibilityclient
];
- outputs = [ "dev" "out" ];
+ outputs = [ "out" "dev" ];
patches = [
./0001-follow-symlinks.patch
./0002-xwayland.patch
./0003-plugins-qpa-allow-using-nixos-wrapper.patch
./0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
- # Fix build against libglvnd 1.3.4+
- # Remove with release 5.22.90
+ # Pass special environments through arguemnts to `kwin_wayland`, bypassing
+ # ld.so(8) environment stripping due to `kwin_wayland`'s capabilities.
+ # We need this to have `TZDIR` correctly set for `plasmashell`, or
+ # everything related to timezone, like clock widgets, will be broken.
+ # https://invent.kde.org/plasma/kwin/-/merge_requests/1590
(fetchpatch {
- url = "https://invent.kde.org/plasma/kwin/-/commit/839710201c389b7f4ed248cb3818e755a37ce977.patch";
- sha256 = "09rldhy0sbmqdfpyjzwm20cwnmrmj0w2751vyi5xlr414g0rzyc1";
- })
- # Fixup previous patch for i686
- # Remove with release 5.22.90
- (fetchpatch {
- url = "https://invent.kde.org/plasma/kwin/-/commit/38e24ecd6416a975db0989c21b70d6a4cc242f35.patch";
- sha256 = "0zsjmzswcnvfd2jm1c8i9aijpbap1141mjv6y4j282bplyqlp966";
+ url = "https://invent.kde.org/plasma/kwin/-/commit/9a008b223ad696db3bf5692750f2b74e578e08b8.diff";
+ sha256 = "sha256-f35G+g2MVABLDbAkCed3ZmtDWrzYn1rdD08mEx35j4k=";
})
];
CXXFLAGS = [
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix
index 5cd9ae9430..ae623a80d7 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,13 +1,16 @@
{
mkDerivation, lib, propagate,
extra-cmake-modules,
- kwayland, libXrandr, qtbase, qtx11extras
+ qtbase,
+ wayland-scanner, kwayland,
+ plasma-wayland-protocols, wayland,
+ libXrandr, qtx11extras
}:
mkDerivation {
name = "libkscreen";
- nativeBuildInputs = [ extra-cmake-modules ];
- buildInputs = [ kwayland libXrandr qtx11extras ];
+ nativeBuildInputs = [ extra-cmake-modules wayland-scanner ];
+ buildInputs = [ kwayland plasma-wayland-protocols wayland libXrandr qtx11extras ];
outputs = [ "out" "dev" ];
patches = [
./libkscreen-backends-path.patch
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/0001-qdiriterator-follow-symlinks.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/0001-qdiriterator-follow-symlinks.patch
index fbbb11ae75..cda82e0844 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/0001-qdiriterator-follow-symlinks.patch
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/0001-qdiriterator-follow-symlinks.patch
@@ -13,8 +13,9 @@ index efed8ff..841761a 100644
+++ b/processui/scripting.cpp
@@ -167,7 +167,7 @@ void Scripting::loadContextMenu() {
QStringList scripts;
- const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "ksysguard/scripts/", QStandardPaths::LocateDirectory);
- Q_FOREACH (const QString& dir, dirs) {
+ const QStringList dirs =
+ QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("ksysguard/scripts/"), QStandardPaths::LocateDirectory);
+ Q_FOREACH (const QString &dir, dirs) {
- QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
+ QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
while (it.hasNext()) {
@@ -22,4 +23,3 @@ index efed8ff..841761a 100644
}
--
2.5.2
-
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/default.nix
index ee9237a318..19bbc6390c 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/libksysguard/default.nix
@@ -3,7 +3,7 @@
extra-cmake-modules,
kauth, kcompletion, kconfig, kconfigwidgets, kcoreaddons, ki18n, kiconthemes,
knewstuff, kservice, kwidgetsaddons, kwindowsystem, plasma-framework,
- qtbase, qtscript, qtwebengine, qtx11extras, libnl
+ qtbase, qtscript, qtwebengine, qtx11extras, libnl, libpcap, qtsensors, lm_sensors,
}:
mkDerivation {
@@ -15,7 +15,7 @@ mkDerivation {
buildInputs = [
kauth kconfig ki18n kiconthemes kwindowsystem kcompletion kconfigwidgets
kcoreaddons kservice kwidgetsaddons plasma-framework qtscript qtx11extras
- qtwebengine knewstuff libnl
+ qtwebengine knewstuff libnl libpcap qtsensors lm_sensors
];
outputs = [ "bin" "dev" "out" ];
}
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/patches/0001-fix-add-executable-bit.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/patches/0001-fix-add-executable-bit.patch
new file mode 100644
index 0000000000..8ed8222205
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/patches/0001-fix-add-executable-bit.patch
@@ -0,0 +1,25 @@
+From da6a4651f74625f4c7f3c31f1125cfa4e774780b Mon Sep 17 00:00:00 2001
+From: Yaroslav Bolyukin
+Date: Mon, 27 Sep 2021 22:45:58 +0300
+Subject: [PATCH] fix: add executable bit
+
+Signed-off-by: Yaroslav Bolyukin
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 79ff12d..4f3d746 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -2,7 +2,7 @@ file(GLOB_RECURSE SCSS_SOURCES "*.scss")
+ file(GLOB CSS_SOURCES "*.css")
+ file(GLOB_RECURSE GTK2_SOURCES "gtk2/*")
+
+-configure_file(build_theme.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/build_theme.sh @ONLY)
++configure_file(build_theme.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/build_theme.sh FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @ONLY)
+
+ set(SOURCES
+ ${SCSS_SOURCES}
+--
+2.33.0
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 1dc3d99b5e..457902ad18 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -1,5 +1,5 @@
{
- mkDerivation, lib, fetchpatch,
+ mkDerivation, lib,
extra-cmake-modules, kdoctools,
boost, fontconfig, ibus, libXcursor, libXft, libcanberra_kde, libpulseaudio,
@@ -36,11 +36,6 @@ mkDerivation {
patches = [
./hwclock-path.patch
./tzdir.patch
- # https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/563
- (fetchpatch {
- url = "https://invent.kde.org/plasma/plasma-desktop/-/commit/8d9bf2032b8a2e5de75edf5713c42866f5b80649.patch";
- sha256 = "sha256-2jqqFjBljbhf7I+fTsIvuFs3Ic662KTKRnbcSm5Jing=";
- })
];
CXXFLAGS = [
''-DNIXPKGS_HWCLOCK=\"${lib.getBin util-linux}/sbin/hwclock\"''
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nano/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nano/default.nix
new file mode 100644
index 0000000000..0960eec33f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nano/default.nix
@@ -0,0 +1,13 @@
+{
+ mkDerivation,
+ extra-cmake-modules,
+ plasma-framework
+}:
+
+mkDerivation {
+ name = "plasma-nano";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ plasma-framework
+ ];
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0001-mobile-broadband-provider-info-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0001-mobile-broadband-provider-info-path.patch
deleted file mode 100644
index 79b5cfb437..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0001-mobile-broadband-provider-info-path.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From faf13c97ff1192a201843b9d52f4002dbd9022af Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel
-Date: Sun, 25 Oct 2015 09:09:27 -0500
-Subject: [PATCH] mobile-broadband-provider-info path
-
----
- libs/editor/mobileproviders.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libs/editor/mobileproviders.cpp b/libs/editor/mobileproviders.cpp
-index 568cb34..98a5992 100644
---- a/libs/editor/mobileproviders.cpp
-+++ b/libs/editor/mobileproviders.cpp
-@@ -26,7 +26,7 @@
-
- #include
-
--const QString MobileProviders::ProvidersFile = "/usr/share/mobile-broadband-provider-info/serviceproviders.xml";
-+const QString MobileProviders::ProvidersFile = "@mobile_broadband_provider_info@/share/mobile-broadband-provider-info/serviceproviders.xml";
-
- bool localeAwareCompare(const QString & one, const QString & two) {
- return one.localeAwareCompare(two) < 0;
---
-2.6.2
-
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0002-openvpn-binary-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0002-openvpn-binary-path.patch
index 3bc871f090..c32e73bc2c 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0002-openvpn-binary-path.patch
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/0002-openvpn-binary-path.patch
@@ -6,7 +6,7 @@ index 2f11ba1d..310f11b4 100644
connect(m_ui->cmbProxyType, static_cast(&QComboBox::currentIndexChanged), this, &OpenVpnAdvancedWidget::proxyTypeChanged);
// start openVPN process and get its cipher list
-- const QString openVpnBinary = QStandardPaths::findExecutable("openvpn", QStringList() << "/sbin" << "/usr/sbin");
+- const QString openVpnBinary = QStandardPaths::findExecutable("openvpn", QStringList{"/sbin", "/usr/sbin"});
+ const QString openVpnBinary = "@openvpn@/bin/openvpn";
const QStringList ciphersArgs(QLatin1String("--show-ciphers"));
const QStringList versionArgs(QLatin1String("--version"));
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix
index e563bdd837..5c82112f3b 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix
@@ -24,10 +24,6 @@ mkDerivation {
mobile-broadband-provider-info openconnect
];
patches = [
- (substituteAll {
- src = ./0001-mobile-broadband-provider-info-path.patch;
- mobile_broadband_provider_info = mobile-broadband-provider-info;
- })
(substituteAll {
src = ./0002-openvpn-binary-path.patch;
inherit openvpn;
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-phone-components/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-phone-components/default.nix
new file mode 100644
index 0000000000..d925d7e408
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-phone-components/default.nix
@@ -0,0 +1,43 @@
+{
+ mkDerivation, lib,
+
+ extra-cmake-modules, kdoctools,
+
+ coreutils, dbus, gnugrep, gnused, libdbusmenu, pam, wayland, appstream,
+
+ kdeclarative, kdelibs4support, kpeople, kconfig, krunner, kinit, kwayland, kwin,
+ plasma-framework, telepathy, libphonenumber, protobuf, libqofono, modemmanager-qt,
+ plasma-workspace,
+ maliit-framework, maliit-keyboard,
+
+ qtwayland, qttools
+}:
+
+let inherit (lib) getBin getLib; in
+
+mkDerivation {
+ name = "plasma-phone-components";
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ appstream libdbusmenu pam wayland
+ kdeclarative kdelibs4support kpeople kconfig krunner kinit kwayland kwin
+ plasma-framework telepathy libphonenumber protobuf libqofono modemmanager-qt
+ maliit-framework maliit-keyboard
+ ];
+
+ postPatch = ''
+ substituteInPlace bin/kwinwrapper.in \
+ --replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
+
+ substituteInPlace bin/plasma-mobile.desktop.cmake \
+ --replace @CMAKE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
+ '';
+
+ # Ensures dependencies like libqofono (at the very least) are present for the shell.
+ preFixup = ''
+ wrapQtApp "$out/bin/kwinwrapper"
+ '';
+
+ passthru.providedSessions = [ "plasma-mobile" ];
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/encfs-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0001-encfs-path.patch
similarity index 66%
rename from third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/encfs-path.patch
rename to third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0001-encfs-path.patch
index 14f593ea60..a5e9d8c531 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/encfs-path.patch
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0001-encfs-path.patch
@@ -1,19 +1,31 @@
+From fef6bfe87db4411e3dda2f96741cd8204fe41d85 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Tue, 2 Nov 2021 05:57:50 -0500
+Subject: [PATCH 1/3] encfs path
+
+---
+ kded/engine/backends/encfs/encfsbackend.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
diff --git a/kded/engine/backends/encfs/encfsbackend.cpp b/kded/engine/backends/encfs/encfsbackend.cpp
-index 628af7b..6edd38e 100644
+index 2d15fa2..3f49867 100644
--- a/kded/engine/backends/encfs/encfsbackend.cpp
+++ b/kded/engine/backends/encfs/encfsbackend.cpp
-@@ -100,12 +100,12 @@ QProcess *EncFsBackend::encfs(const QStringList &arguments) const
+@@ -101,12 +101,12 @@ QProcess *EncFsBackend::encfs(const QStringList &arguments) const
auto config = KSharedConfig::openConfig(PLASMAVAULT_CONFIG_FILE);
KConfigGroup backendConfig(config, "EncfsBackend");
-
+
- return process("encfs", arguments + backendConfig.readEntry("extraMountOptions", QStringList{}), {});
+ return process(NIXPKGS_ENCFS, arguments + backendConfig.readEntry("extraMountOptions", QStringList{}), {});
}
-
+
QProcess *EncFsBackend::encfsctl(const QStringList &arguments) const
{
- return process("encfsctl", arguments, {});
+ return process(NIXPKGS_ENCFSCTL, arguments, {});
}
-
+
} // namespace PlasmaVault
+--
+2.33.1
+
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0002-cryfs-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0002-cryfs-path.patch
new file mode 100644
index 0000000000..4c7567b150
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0002-cryfs-path.patch
@@ -0,0 +1,25 @@
+From a89a0d3f9088d272c01ccb9b730d1dbb500f9cb8 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Tue, 2 Nov 2021 05:59:34 -0500
+Subject: [PATCH 2/3] cryfs path
+
+---
+ kded/engine/backends/cryfs/cryfsbackend.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kded/engine/backends/cryfs/cryfsbackend.cpp b/kded/engine/backends/cryfs/cryfsbackend.cpp
+index 64138b6..1a9fde2 100644
+--- a/kded/engine/backends/cryfs/cryfsbackend.cpp
++++ b/kded/engine/backends/cryfs/cryfsbackend.cpp
+@@ -207,7 +207,7 @@ QProcess *CryFsBackend::cryfs(const QStringList &arguments) const
+ auto config = KSharedConfig::openConfig(PLASMAVAULT_CONFIG_FILE);
+ KConfigGroup backendConfig(config, "CryfsBackend");
+
+- return process("cryfs", arguments + backendConfig.readEntry("extraMountOptions", QStringList{}), {{"CRYFS_FRONTEND", "noninteractive"}});
++ return process(NIXPKGS_CRYFS, arguments + backendConfig.readEntry("extraMountOptions", QStringList{}), {{"CRYFS_FRONTEND", "noninteractive"}});
+ }
+
+ } // namespace PlasmaVault
+--
+2.33.1
+
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0003-fusermount-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0003-fusermount-path.patch
new file mode 100644
index 0000000000..0d4481c705
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/0003-fusermount-path.patch
@@ -0,0 +1,25 @@
+From 63571e28c65935f32567c0b179a096d62726b778 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Tue, 2 Nov 2021 06:00:32 -0500
+Subject: [PATCH 3/3] fusermount path
+
+---
+ kded/engine/fusebackend_p.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kded/engine/fusebackend_p.cpp b/kded/engine/fusebackend_p.cpp
+index 91f3523..1c19d88 100644
+--- a/kded/engine/fusebackend_p.cpp
++++ b/kded/engine/fusebackend_p.cpp
+@@ -86,7 +86,7 @@ QProcess *FuseBackend::process(const QString &executable, const QStringList &arg
+
+ QProcess *FuseBackend::fusermount(const QStringList &arguments) const
+ {
+- return process("fusermount", arguments, {});
++ return process(NIXPKGS_FUSERMOUNT, arguments, {});
+ }
+
+ FutureResult<> FuseBackend::initialize(const QString &name, const Device &device, const MountPoint &mountPoint, const Vault::Payload &payload)
+--
+2.33.1
+
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/cryfs-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/cryfs-path.patch
deleted file mode 100644
index 6bab35fe4a..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/cryfs-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/kded/engine/backends/cryfs/cryfsbackend.cpp b/kded/engine/backends/cryfs/cryfsbackend.cpp
-index 58a6929..7212980 100644
---- a/kded/engine/backends/cryfs/cryfsbackend.cpp
-+++ b/kded/engine/backends/cryfs/cryfsbackend.cpp
-@@ -241,7 +241,7 @@ QProcess *CryFsBackend::cryfs(const QStringList &arguments) const
- auto config = KSharedConfig::openConfig(PLASMAVAULT_CONFIG_FILE);
- KConfigGroup backendConfig(config, "CryfsBackend");
-
-- return process("cryfs",
-+ return process(NIXPKGS_CRYFS,
- arguments + backendConfig.readEntry("extraMountOptions", QStringList{}),
- { { "CRYFS_FRONTEND", "noninteractive" } });
- }
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/default.nix
index e016944be4..453ba2b107 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/default.nix
@@ -18,9 +18,9 @@ mkDerivation {
nativeBuildInputs = [ extra-cmake-modules ];
patches = [
- ./encfs-path.patch
- ./cryfs-path.patch
- ./fusermount-path.patch
+ ./0001-encfs-path.patch
+ ./0002-cryfs-path.patch
+ ./0003-fusermount-path.patch
];
buildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/fusermount-path.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/fusermount-path.patch
deleted file mode 100644
index b2a7866531..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-vault/fusermount-path.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/kded/engine/fusebackend_p.cpp b/kded/engine/fusebackend_p.cpp
-index d07e313..ea7d81c 100644
---- a/kded/engine/fusebackend_p.cpp
-+++ b/kded/engine/fusebackend_p.cpp
-@@ -106,7 +106,7 @@ QProcess *FuseBackend::process(const QString &executable,
-
- QProcess *FuseBackend::fusermount(const QStringList &arguments) const
- {
-- return process("fusermount", arguments, {});
-+ return process(NIXPKGS_FUSERMOUNT, arguments, {});
- }
-
-
-@@ -279,4 +279,3 @@ bool FuseBackend::isOpened(const MountPoint &mountPoint) const
- }
-
- } // namespace PlasmaVault
--
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
index f9347de7d5..508d394988 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -4,56 +4,56 @@ Date: Mon, 7 Sep 2020 18:09:52 +0100
Subject: [PATCH] startkde
---
- startkde/plasma-session/startup.cpp | 2 +-
- startkde/startplasma-waylandsession.cpp | 2 +-
- startkde/startplasma-x11.cpp | 2 +-
- startkde/startplasma.cpp | 16 ++++++++--------
- 4 files changed, 11 insertions(+), 11 deletions(-)
+ startkde/plasma-session/startup.cpp | 2 +-
+ startkde/startplasma-waylandsession.cpp | 2 +-
+ startkde/startplasma-x11.cpp | 2 +-
+ startkde/startplasma.cpp | 8 ++++----
+ 4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/startkde/plasma-session/startup.cpp b/startkde/plasma-session/startup.cpp
-index c3e77d4..88cb0e9 100644
+index 270744053..356160e96 100644
--- a/startkde/plasma-session/startup.cpp
+++ b/startkde/plasma-session/startup.cpp
-@@ -223,7 +223,7 @@ Startup::Startup(QObject *parent)
- upAndRunning(QStringLiteral("ksmserver"));
+@@ -143,7 +143,7 @@ Startup::Startup(QObject *parent)
const AutoStart autostart;
+ // Keep for KF5; remove in KF6 (KInit will be gone then)
- QProcess::execute(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), QStringList());
+ QProcess::execute(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), QStringList());
- KJob *phase1;
- QProcessEnvironment kdedProcessEnv;
+ KJob *windowManagerJob = nullptr;
+ if (qEnvironmentVariable("XDG_SESSION_TYPE") != QLatin1String("wayland")) {
diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
-index 4fbfe18..6ba916c 100644
+index 3a054a04f..b2e7ab3fb 100644
--- a/startkde/startplasma-waylandsession.cpp
+++ b/startkde/startplasma-waylandsession.cpp
-@@ -65,7 +65,7 @@ int main(int argc, char **argv)
- waitForKonqi();
+@@ -33,7 +33,7 @@ int main(int argc, char **argv)
out << "startplasma-waylandsession: Shutting down...\n";
+ // Keep for KF5; remove in KF6 (KInit will be gone then)
- runSync(QStringLiteral("kdeinit5_shutdown"), {});
+ runSync(QStringLiteral(NIXPKGS_KDEINIT5_SHUTDOWN), {});
- cleanupX11();
out << "startplasma-waylandsession: Done.\n";
+
diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
-index 4ddf9f8..e0e59cd 100644
+index d6b2c5439..534eeb0e5 100644
--- a/startkde/startplasma-x11.cpp
+++ b/startkde/startplasma-x11.cpp
-@@ -110,7 +110,7 @@ int main(int argc, char **argv)
-
+@@ -90,7 +90,7 @@ int main(int argc, char **argv)
out << "startkde: Shutting down...\n";
+ // Keep for KF5; remove in KF6 (KInit will be gone then)
- runSync(QStringLiteral("kdeinit5_shutdown"), {});
+ runSync(QStringLiteral(NIXPKGS_KDEINIT5_SHUTDOWN), {});
- cleanupPlasmaEnvironment();
- cleanupX11();
+ cleanupPlasmaEnvironment(oldSystemdEnvironment);
+
diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
-index 9809197..1250e3e 100644
+index 008fdfcaf..72468f21c 100644
--- a/startkde/startplasma.cpp
+++ b/startkde/startplasma.cpp
-@@ -46,7 +46,7 @@ QTextStream out(stderr);
+@@ -39,7 +39,7 @@ QTextStream out(stderr);
void messageBox(const QString &text)
{
out << text;
@@ -62,38 +62,16 @@ index 9809197..1250e3e 100644
}
QStringList allServices(const QLatin1String &prefix)
-@@ -267,8 +267,8 @@ void setupX11()
+@@ -340,7 +340,7 @@ void setupX11()
// If the user has overwritten fonts, the cursor font may be different now
// so don't move this up.
- runSync(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
-- runSync(QStringLiteral("xprop"),
+ runSync(QStringLiteral(NIXPKGS_XSETROOT), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
-+ runSync(QStringLiteral(NIXPKGS_XPROP),
- {QStringLiteral("-root"),
- QStringLiteral("-f"),
- QStringLiteral("KDE_FULL_SESSION"),
-@@ -276,7 +276,7 @@ void setupX11()
- QStringLiteral("-set"),
- QStringLiteral("KDE_FULL_SESSION"),
- QStringLiteral("true")});
-- runSync(QStringLiteral("xprop"),
-+ runSync(QStringLiteral(NIXPKGS_XPROP),
- {QStringLiteral("-root"),
- QStringLiteral("-f"),
- QStringLiteral("KDE_SESSION_VERSION"),
-@@ -288,8 +288,8 @@ void setupX11()
-
- void cleanupX11()
- {
-- runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION")});
-- runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION")});
-+ runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION")});
-+ runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION")});
}
- // TODO: Check if Necessary
-@@ -321,7 +321,7 @@ void setupFontDpi()
+ void cleanupPlasmaEnvironment(const std::optional &oldSystemdEnvironment)
+@@ -403,7 +403,7 @@ void setupFontDpi()
// TODO port to c++?
const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
QProcess p;
@@ -102,7 +80,7 @@ index 9809197..1250e3e 100644
p.setProcessChannelMode(QProcess::ForwardedChannels);
p.write(input);
p.closeWriteChannel();
-@@ -343,7 +343,7 @@ QProcess *setupKSplash()
+@@ -425,7 +425,7 @@ QProcess *setupKSplash()
KConfigGroup ksplashCfg = cfg.group("KSplash");
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
p = new QProcess;
@@ -112,5 +90,4 @@ index 9809197..1250e3e 100644
}
return p;
--
-2.30.0
-
+2.33.0
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/srcs.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
index c90bc70423..70cb748709 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
@@ -4,427 +4,427 @@
{
bluedevil = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/bluedevil-5.22.5.tar.xz";
- sha256 = "01fc5zk3qh3kx8z3dpikaaidi6vg21s75kmpd9w65rj5akg98452";
- name = "bluedevil-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/bluedevil-5.23.3.tar.xz";
+ sha256 = "1n6h2m4z67vl0mv0hs0g5xff1vcj03w0nhx4hkhy66hly556nq8x";
+ name = "bluedevil-5.23.3.tar.xz";
};
};
breeze = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/breeze-5.22.5.tar.xz";
- sha256 = "09ll0bddsbbhz7ihqcn0wbd2llbjrblgk90gp556kpy09jh4rz73";
- name = "breeze-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/breeze-5.23.3.tar.xz";
+ sha256 = "1514y4k52bc71nljihj655d7swk2qvr168i0j2xqcm0w4aiz4jmv";
+ name = "breeze-5.23.3.tar.xz";
};
};
breeze-grub = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/breeze-grub-5.22.5.tar.xz";
- sha256 = "1p08pmhkac3s5pccryy5s33594kr0v8z6j1hg94l419nzaqqya1v";
- name = "breeze-grub-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/breeze-grub-5.23.3.tar.xz";
+ sha256 = "1nwhjw0nkdg94znh7h80byrq8vpa1f20ph1m4fhlj233nfskw0zy";
+ name = "breeze-grub-5.23.3.tar.xz";
};
};
breeze-gtk = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/breeze-gtk-5.22.5.tar.xz";
- sha256 = "0lifs97wad9cg5hp1vdd5ag9fkcbqj3h2bkg6x5jd4f41j0x2fy2";
- name = "breeze-gtk-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/breeze-gtk-5.23.3.tar.xz";
+ sha256 = "0wq313laj7nlsw3d6p1prq1d4gic5lz2ipklj4dq4vsvsh99ggvn";
+ name = "breeze-gtk-5.23.3.tar.xz";
};
};
breeze-plymouth = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/breeze-plymouth-5.22.5.tar.xz";
- sha256 = "1735ii7is873yz6rhcsrj81crvmdxj4a368k22rkj8nm374s44g1";
- name = "breeze-plymouth-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/breeze-plymouth-5.23.3.tar.xz";
+ sha256 = "047clfgqcrplwi3158pw1r868yyqlxs7iqqy861wzlsmjz9qzqdl";
+ name = "breeze-plymouth-5.23.3.tar.xz";
};
};
discover = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/discover-5.22.5.tar.xz";
- sha256 = "1c22910ainm4819xzkri8j2x8lng0g6zgmh1k770jsgjyg49x069";
- name = "discover-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/discover-5.23.3.tar.xz";
+ sha256 = "056wcvk44r11rycnn12xf8r5psxqnm0f6i6z6nc5100sqkhip6p0";
+ name = "discover-5.23.3.tar.xz";
};
};
drkonqi = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/drkonqi-5.22.5.tar.xz";
- sha256 = "1f23p35wzsk0wx2kz0r7x616in6kizzdvl9j37v2a94hh8z3f7my";
- name = "drkonqi-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/drkonqi-5.23.3.tar.xz";
+ sha256 = "14yc6nq3z6jm8siq2r15nzsqxpawk5iqy9ghmmwy9xa4vf18dxy5";
+ name = "drkonqi-5.23.3.tar.xz";
};
};
kactivitymanagerd = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kactivitymanagerd-5.22.5.tar.xz";
- sha256 = "069a862myj9b0303qc6j8iv3mdja8qhzx5ax52206pjrglvn9ar2";
- name = "kactivitymanagerd-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kactivitymanagerd-5.23.3.tar.xz";
+ sha256 = "0rizk05v19qqymrjh7vswcp80a4rpyffmq7kg88pv5k11fcjqw5b";
+ name = "kactivitymanagerd-5.23.3.tar.xz";
};
};
kde-cli-tools = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kde-cli-tools-5.22.5.tar.xz";
- sha256 = "1jj5vywai9di05wzr81dzvrcsb5h6l300llw3ma49f0jl4z3gjwh";
- name = "kde-cli-tools-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kde-cli-tools-5.23.3.tar.xz";
+ sha256 = "0f8wab6n4klxj4yy4l4k3q3pdqlz9718mbjydnsmn1jgn20shsa0";
+ name = "kde-cli-tools-5.23.3.tar.xz";
};
};
kde-gtk-config = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kde-gtk-config-5.22.5.tar.xz";
- sha256 = "0v0yjy6diwby3y71kkipx8h0wxfc49nwr2r3g2j8cf9ybqnwmy6s";
- name = "kde-gtk-config-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kde-gtk-config-5.23.3.tar.xz";
+ sha256 = "12w2jv0mi39c2g1w3g3c68m80ailcm98hibk1mg885r36gx9kskb";
+ name = "kde-gtk-config-5.23.3.tar.xz";
};
};
kdecoration = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kdecoration-5.22.5.tar.xz";
- sha256 = "1vqv44ls79x2d71ldkkkzpk4mzpv110y270wf1gbkmxaxwp20xxm";
- name = "kdecoration-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kdecoration-5.23.3.tar.xz";
+ sha256 = "134jmp5l2bvl042a5a1f1d66mqi4g7vrpmrn3gi7ysi34w1ylfc8";
+ name = "kdecoration-5.23.3.tar.xz";
};
};
kdeplasma-addons = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kdeplasma-addons-5.22.5.tar.xz";
- sha256 = "00ricjqxcafhji8b33zqynrlh56z3nr516v5jghp8cz2wclvnh32";
- name = "kdeplasma-addons-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kdeplasma-addons-5.23.3.tar.xz";
+ sha256 = "139wzfj21k32m36014sas3ad5qdc0df4131ckj1shlz882w4l3dw";
+ name = "kdeplasma-addons-5.23.3.tar.xz";
};
};
kgamma5 = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kgamma5-5.22.5.tar.xz";
- sha256 = "0m2h4wwkg3dnkvq31z8mvn4q1r7hwi1q2d7csy350ycrv9x7f402";
- name = "kgamma5-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kgamma5-5.23.3.tar.xz";
+ sha256 = "06wzcpsjqy5pw3s6qg32l6qg9jf61bbpjwh802182balfq2jl0y5";
+ name = "kgamma5-5.23.3.tar.xz";
};
};
khotkeys = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/khotkeys-5.22.5.tar.xz";
- sha256 = "1l0p9q7bmljism188mzssryyd31b1x0alivnpsk0jhhjr9hwbqb4";
- name = "khotkeys-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/khotkeys-5.23.3.tar.xz";
+ sha256 = "1ccjlr3q1lsmmdmh30wbrdaardvhivdzm9vrd46d301rdz6gyv86";
+ name = "khotkeys-5.23.3.tar.xz";
};
};
kinfocenter = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kinfocenter-5.22.5.tar.xz";
- sha256 = "1pxr4pihy6asflpij5r4payxnbagzkli3qm5zh4zgap4bhq447lm";
- name = "kinfocenter-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kinfocenter-5.23.3.tar.xz";
+ sha256 = "09yz5grzwzgs1cg39j18zy7af8azy2lbg4bkkmh7wayv8pngj4gv";
+ name = "kinfocenter-5.23.3.tar.xz";
};
};
kmenuedit = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kmenuedit-5.22.5.tar.xz";
- sha256 = "1in8q0hd8wgcnwmx0cpv2w5l2w75xhv5j38mc5py322h9gkg1mqs";
- name = "kmenuedit-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kmenuedit-5.23.3.tar.xz";
+ sha256 = "006kkg7jzwp4icik1hv95wcpw5sb1l1s94wnljvxdfdjkgzjxq55";
+ name = "kmenuedit-5.23.3.tar.xz";
};
};
kscreen = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kscreen-5.22.5.tar.xz";
- sha256 = "0q0ykp10nwfzzxjrcra11k4b81di4r37jbhis4b9wn9j0pqv3ykb";
- name = "kscreen-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kscreen-5.23.3.tar.xz";
+ sha256 = "1x4qlycb1dxw36s3zyyrjfmfvwvwk8f8r0jls6hq8gqkl810abhw";
+ name = "kscreen-5.23.3.tar.xz";
};
};
kscreenlocker = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kscreenlocker-5.22.5.tar.xz";
- sha256 = "107icbr0cdcpbzi5npgx3fw2m2wp1z91k1iw26n595dp3n2czv98";
- name = "kscreenlocker-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kscreenlocker-5.23.3.tar.xz";
+ sha256 = "0wjcrikx3q533qz9wi0z3jm4k0lc09w2xsxr4iw1hh3afsd6jr34";
+ name = "kscreenlocker-5.23.3.tar.xz";
};
};
ksshaskpass = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/ksshaskpass-5.22.5.tar.xz";
- sha256 = "0ig2cx80ba57k9mq7bcnmriymjln7kvr81mgm5rsdi4asal2zpgp";
- name = "ksshaskpass-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/ksshaskpass-5.23.3.tar.xz";
+ sha256 = "0dcych5zcv8fqmy1lhwpbfzj75ihs648d8ppfr0nj15mm2pgnvhx";
+ name = "ksshaskpass-5.23.3.tar.xz";
};
};
ksystemstats = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/ksystemstats-5.22.5.tar.xz";
- sha256 = "1cb5hbwnj6j9ziin6bflcz9b8jyvjqbqqhqbzvgs8dyji2xz0gb8";
- name = "ksystemstats-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/ksystemstats-5.23.3.tar.xz";
+ sha256 = "13jic16480rxhdwz0z49di19sxdi7rgvg61lg5i00w9mm6mbph3l";
+ name = "ksystemstats-5.23.3.tar.xz";
};
};
kwallet-pam = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kwallet-pam-5.22.5.tar.xz";
- sha256 = "03rj2kgda1as547jjvvigkb4pblh1w9jv8hsrjrs5vwfir0ag8nq";
- name = "kwallet-pam-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kwallet-pam-5.23.3.tar.xz";
+ sha256 = "0axxk7szp5kn5hhlxh2mjzbwzaj4g1yn40ymgb6dga10h1nfdkd8";
+ name = "kwallet-pam-5.23.3.tar.xz";
};
};
kwayland-integration = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kwayland-integration-5.22.5.tar.xz";
- sha256 = "0kgv6klb32y7ckflsi5xbs8ajn7zg461621fqhmgn1x54w931g2c";
- name = "kwayland-integration-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kwayland-integration-5.23.3.tar.xz";
+ sha256 = "01gm3xbaih22v33bd9142xnrli13yxmib42pj8rnczhczrpnc3z3";
+ name = "kwayland-integration-5.23.3.tar.xz";
};
};
kwayland-server = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kwayland-server-5.22.5.tar.xz";
- sha256 = "17gkbcam9dpqbw618rvb5ia8inp0yvpyr3bxd0fn4fdj57bbsr6x";
- name = "kwayland-server-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kwayland-server-5.23.3.tar.xz";
+ sha256 = "1hjh278iaz3ydf9bqy2fmm4hsvc60hrqw4hlc3ddcadp28dhg3gx";
+ name = "kwayland-server-5.23.3.tar.xz";
};
};
kwin = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kwin-5.22.5.tar.xz";
- sha256 = "18zmzhmjr6q5vsfd7lr0ym5ga7l2x8xcxqizmpfnb7hv3kaax38j";
- name = "kwin-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kwin-5.23.3.tar.xz";
+ sha256 = "04w8vnz3rzd9g1j1f4fbgyxjvxqrhasx6f2vqkrrh4cd56ndmcbz";
+ name = "kwin-5.23.3.tar.xz";
};
};
kwrited = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/kwrited-5.22.5.tar.xz";
- sha256 = "02cffj88hqs5rfvrkkmk9z23qsdnqhavm98hksx1v5ajjh4rbgb3";
- name = "kwrited-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/kwrited-5.23.3.tar.xz";
+ sha256 = "0156syandkq0s76xrrcz6nkxa6jgpf1a6nbkdw0a8biyxs5md644";
+ name = "kwrited-5.23.3.tar.xz";
};
};
layer-shell-qt = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/layer-shell-qt-5.22.5.tar.xz";
- sha256 = "0i9gsckqk9608drxvym6ghcwxqilcf6ilcxq48sbrnpswid71k7z";
- name = "layer-shell-qt-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/layer-shell-qt-5.23.3.tar.xz";
+ sha256 = "15y7p0a59779aqxnsryqirsxslbvbig733i5s3n5jmg98y40712a";
+ name = "layer-shell-qt-5.23.3.tar.xz";
};
};
libkscreen = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/libkscreen-5.22.5.tar.xz";
- sha256 = "1qqnra28r698kbps6ywk22ncac4sm3f9d9wrwmicp963mkmwlksv";
- name = "libkscreen-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/libkscreen-5.23.3.tar.xz";
+ sha256 = "0kazvsahnk7ngld12lp1c07c34x9kal03fy8g7w9bgdha3j7xmdq";
+ name = "libkscreen-5.23.3.tar.xz";
};
};
libksysguard = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/libksysguard-5.22.5.tar.xz";
- sha256 = "1hkjsjfl4hsxbk998hpq4f38rahqfx6nmznbh0dqrymadfbsn8m5";
- name = "libksysguard-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/libksysguard-5.23.3.tar.xz";
+ sha256 = "0ma4b0w08j0f46ivh9grci7wfh4z5j8nml83kcvnain1nwzprha0";
+ name = "libksysguard-5.23.3.tar.xz";
};
};
milou = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/milou-5.22.5.tar.xz";
- sha256 = "1d1zg1fbhl6cbxfhgrp9njvpcn052psn96cfyw314255v532phpp";
- name = "milou-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/milou-5.23.3.tar.xz";
+ sha256 = "0myvm9bkq189cfla7yqiwmbb5z2cm90rq5ll655n2c7zk3lqnn0d";
+ name = "milou-5.23.3.tar.xz";
};
};
oxygen = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/oxygen-5.22.5.tar.xz";
- sha256 = "0fy4dr8kjyh96w482qbf47vkbnb2qqwwp8d0jlf0xc20w6fb4fqc";
- name = "oxygen-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/oxygen-5.23.3.tar.xz";
+ sha256 = "0r79xadvg7l4nsziy78wydhn4f0223fjc2xd60zih1dwmgapgf0z";
+ name = "oxygen-5.23.3.tar.xz";
};
};
plasma-browser-integration = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-browser-integration-5.22.5.tar.xz";
- sha256 = "1zkz4qd9nk2kw8zx0mj0p5q4yclmfgz5ihfmgqb2iw4j0d2ckw8f";
- name = "plasma-browser-integration-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-browser-integration-5.23.3.tar.xz";
+ sha256 = "0r3sq6w73qn246nddf4f8lbym8k4wp2ycfr2laz888b5cjf9df97";
+ name = "plasma-browser-integration-5.23.3.tar.xz";
};
};
plasma-desktop = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-desktop-5.22.5.tar.xz";
- sha256 = "1kmcmpfjgmiazalczjchyrvgy365s1gqdnyv3xav4g4irb62llxl";
- name = "plasma-desktop-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-desktop-5.23.3.tar.xz";
+ sha256 = "01259pqncx3gcpanrmhal51dn4y8xcrs16pl5bjnasdn9r8mlhs3";
+ name = "plasma-desktop-5.23.3.tar.xz";
};
};
plasma-disks = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-disks-5.22.5.tar.xz";
- sha256 = "14ml1vxdp6brms8yqg5x96bad2r9n81cki91fsq6qk0aq098dqbh";
- name = "plasma-disks-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-disks-5.23.3.tar.xz";
+ sha256 = "1qwxhasmycn6ah2pv46z8vvls85lfwxm4z61q13l63a50489a05b";
+ name = "plasma-disks-5.23.3.tar.xz";
};
};
plasma-firewall = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-firewall-5.22.5.tar.xz";
- sha256 = "19ii5ha3m9jmfrdg59z9nfx8frmp4f2gc3a7c0krsnajhyrm0npg";
- name = "plasma-firewall-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-firewall-5.23.3.tar.xz";
+ sha256 = "0kqb7sxysh6gq143rmmznv95mx4275bp1xfrlys518yn97clnwqq";
+ name = "plasma-firewall-5.23.3.tar.xz";
};
};
plasma-integration = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-integration-5.22.5.tar.xz";
- sha256 = "0w7jnsyz876k6kzppd6lx0i58ywbfhaycsnq3nn2s10im7ql7ir8";
- name = "plasma-integration-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-integration-5.23.3.tar.xz";
+ sha256 = "0q53b43yl5s1pvlqpmic2x8q5inawk66n8wng7rzgcfv9d3imhrn";
+ name = "plasma-integration-5.23.3.tar.xz";
};
};
plasma-nano = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-nano-5.22.5.tar.xz";
- sha256 = "0i8r8mxf00c0rfnybxy2nzl2hn2r7vqfzwlbmkykd6b1z333xfjh";
- name = "plasma-nano-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-nano-5.23.3.tar.xz";
+ sha256 = "0ijygajn78c97s8ys8m2zn52zx45kxhk857hppkxp4jqpd5psf34";
+ name = "plasma-nano-5.23.3.tar.xz";
};
};
plasma-nm = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-nm-5.22.5.tar.xz";
- sha256 = "0jgwp41l4h16qyif2bwnsdfd190ykpddv7gi3zrcmc57fnhrzavz";
- name = "plasma-nm-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-nm-5.23.3.tar.xz";
+ sha256 = "157almdi3br1qdfr0lwfdwc60fbizkwmpw3j2czk2sdsvm58rhgf";
+ name = "plasma-nm-5.23.3.tar.xz";
};
};
plasma-pa = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-pa-5.22.5.tar.xz";
- sha256 = "1axm564si8g9j9f9ndvq39x7s6awiwiiyqnvs1wf76miyyjfdba0";
- name = "plasma-pa-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-pa-5.23.3.tar.xz";
+ sha256 = "0md3vb2iffn4qdnj4msyn6j3hvidnsxzp2dfsnb3n0yp29niwxqk";
+ name = "plasma-pa-5.23.3.tar.xz";
};
};
plasma-phone-components = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-phone-components-5.22.5.tar.xz";
- sha256 = "1m2swgkydjrpxsnj87fs8zkyavba6zrfrzvimbhxf15c3199yrj0";
- name = "plasma-phone-components-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-phone-components-5.23.3.tar.xz";
+ sha256 = "1w8yqczr0933vhca5id32vg1k2np6n6hkh58n4x3z3xpdxpb5d4c";
+ name = "plasma-phone-components-5.23.3.tar.xz";
};
};
plasma-sdk = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-sdk-5.22.5.tar.xz";
- sha256 = "0gvmvdlqjm2kvkb7bw3bhryql4d9mp0max89l9y25kzqadd6byad";
- name = "plasma-sdk-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-sdk-5.23.3.tar.xz";
+ sha256 = "0fb9g6vhsaxd6h6889jyhnxp86g7rwkmyiafq72hx6ikv69wyvbi";
+ name = "plasma-sdk-5.23.3.tar.xz";
};
};
plasma-systemmonitor = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-systemmonitor-5.22.5.tar.xz";
- sha256 = "18s72vdcx4jrjs1hfr7mq8zjng2pmba2x23k11jdk8hxl7msm7nx";
- name = "plasma-systemmonitor-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-systemmonitor-5.23.3.tar.xz";
+ sha256 = "1jlgfrkdw785x9bib2hzxjyd70b9aqgcp1w6lk75bhgkrz85kz8p";
+ name = "plasma-systemmonitor-5.23.3.tar.xz";
};
};
plasma-tests = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-tests-5.22.5.tar.xz";
- sha256 = "1wmwm9mmdy98qrmr0r8h99j0cpmib2vyv66jk99wf43bwddy2hxi";
- name = "plasma-tests-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-tests-5.23.3.tar.xz";
+ sha256 = "1fgl09c0ir8w128z4l0bggszjsvsqncb42k44vn6i6d0qdisxdgh";
+ name = "plasma-tests-5.23.3.tar.xz";
};
};
plasma-thunderbolt = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-thunderbolt-5.22.5.tar.xz";
- sha256 = "13rjn21sdga5yx9983zx26jdb260lg5815ilfjnkdfp7g6ckjlmc";
- name = "plasma-thunderbolt-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-thunderbolt-5.23.3.tar.xz";
+ sha256 = "0vzdzsl6isg24j0830lg7is47kpmpvsni7gf4vri2l8a6fy7ibav";
+ name = "plasma-thunderbolt-5.23.3.tar.xz";
};
};
plasma-vault = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-vault-5.22.5.tar.xz";
- sha256 = "1ap9kp9agnqljlszzkd14sivpfz9ihjlhq67lhg2sg570s8ng4a0";
- name = "plasma-vault-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-vault-5.23.3.tar.xz";
+ sha256 = "061zq00mz1aamam4pc4kbbzdx4mi07iiach6w52n0c9d1bz16ym2";
+ name = "plasma-vault-5.23.3.tar.xz";
};
};
plasma-workspace = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-workspace-5.22.5.tar.xz";
- sha256 = "01inn7jawqn5brcmbglqs3szfzkq637qzf39kya8siq3lgg14bpj";
- name = "plasma-workspace-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-workspace-5.23.3.tar.xz";
+ sha256 = "0mz2aanm46s88lwm1s2nwm8yfanj78rnx1y14ppzm4dx0lrjx046";
+ name = "plasma-workspace-5.23.3.tar.xz";
};
};
plasma-workspace-wallpapers = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plasma-workspace-wallpapers-5.22.5.tar.xz";
- sha256 = "1h582vqw14zyngfyjppg6lgs17d1nmc7gcr8kw1zzbc0ynbl68dy";
- name = "plasma-workspace-wallpapers-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plasma-workspace-wallpapers-5.23.3.tar.xz";
+ sha256 = "1kz4xqzgwnhp1wmqmgadn0jjc9033i2bm8hiycqkahhj603k552s";
+ name = "plasma-workspace-wallpapers-5.23.3.tar.xz";
};
};
plymouth-kcm = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/plymouth-kcm-5.22.5.tar.xz";
- sha256 = "1rn8c0z6ycagmxm72gs9cm6pwv1fy8zg5881brglpxy8x63prb9g";
- name = "plymouth-kcm-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/plymouth-kcm-5.23.3.tar.xz";
+ sha256 = "1fa26h19g4f2fhpisp1jsl1niis50fbkdss7j1nqg44jih0g0qyf";
+ name = "plymouth-kcm-5.23.3.tar.xz";
};
};
polkit-kde-agent = {
- version = "1-5.22.5";
+ version = "1-5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/polkit-kde-agent-1-5.22.5.tar.xz";
- sha256 = "1a1b4baszlx01x4n66wikgw8z7wwnycz5rqzjr8r6q1b9dafmqv0";
- name = "polkit-kde-agent-1-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/polkit-kde-agent-1-5.23.3.tar.xz";
+ sha256 = "1r5sqxzj5r9xqn3iwsfj06f1w69q41j4wq2z11kndnjad0pwrf3r";
+ name = "polkit-kde-agent-1-5.23.3.tar.xz";
};
};
powerdevil = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/powerdevil-5.22.5.tar.xz";
- sha256 = "17qw7w9h60illpzd1zlymdipx0mpwfhn12d9k0f165qcabk02wsr";
- name = "powerdevil-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/powerdevil-5.23.3.tar.xz";
+ sha256 = "0hcb22dy4hslzrk3md6amzm51hlmv08747f34x5drdl10cg98mzb";
+ name = "powerdevil-5.23.3.tar.xz";
};
};
qqc2-breeze-style = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/qqc2-breeze-style-5.22.5.tar.xz";
- sha256 = "0qi8b11f45lnyy09w3b65h0s7qj7d40b7ppwy8mapr92m0zqrkpf";
- name = "qqc2-breeze-style-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/qqc2-breeze-style-5.23.3.tar.xz";
+ sha256 = "0716mw6dgpzwkaiinp8vphvxj3vrb95v7zckh4pgdky8ahxv655l";
+ name = "qqc2-breeze-style-5.23.3.tar.xz";
};
};
sddm-kcm = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/sddm-kcm-5.22.5.tar.xz";
- sha256 = "163p426bd9zfval5zz2hmq3na0px3pz016shzzgna3rqwh7s8sa6";
- name = "sddm-kcm-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/sddm-kcm-5.23.3.tar.xz";
+ sha256 = "0sb9sjdbhafjcx2nf2ffzjh14gyambj1w32gjz29fl15xjbmvqnr";
+ name = "sddm-kcm-5.23.3.tar.xz";
};
};
systemsettings = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/systemsettings-5.22.5.tar.xz";
- sha256 = "1fvmp6nhmn71hxrf0nfg9m8ifp36kvk5k550hiazgz63l7x7hyfc";
- name = "systemsettings-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/systemsettings-5.23.3.tar.xz";
+ sha256 = "0i8vc1y95jd3g5vcgzixd73mn1r9s2jg9ix5nwfq4i5ihi0a0ph1";
+ name = "systemsettings-5.23.3.tar.xz";
};
};
xdg-desktop-portal-kde = {
- version = "5.22.5";
+ version = "5.23.3";
src = fetchurl {
- url = "${mirror}/stable/plasma/5.22.5/xdg-desktop-portal-kde-5.22.5.tar.xz";
- sha256 = "00d6dh9jh15y0ndcrm86wzhmpv81s9pm0x0pbiywdia606yp27c6";
- name = "xdg-desktop-portal-kde-5.22.5.tar.xz";
+ url = "${mirror}/stable/plasma/5.23.3/xdg-desktop-portal-kde-5.23.3.tar.xz";
+ sha256 = "1aajlgccl1z9m49a016ixr2hiy231wyx6xnmpbvjx9h1b52b3rpz";
+ name = "xdg-desktop-portal-kde-5.23.3.tar.xz";
};
};
}
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index f754bc5a46..60d4867cb4 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,7 +1,7 @@
{
mkDerivation, lib,
extra-cmake-modules, gettext, kdoctools,
- cups, epoxy, mesa, pcre, pipewire, wayland, wayland-protocols,
+ cups, libepoxy, mesa, pcre, pipewire, wayland, wayland-protocols,
kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
kirigami2, kdeclarative, plasma-framework, plasma-wayland-protocols, kio,
qtbase
@@ -11,7 +11,7 @@ mkDerivation {
name = "xdg-desktop-portal-kde";
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools ];
buildInputs = [
- cups epoxy mesa pcre pipewire wayland wayland-protocols
+ cups libepoxy mesa pcre pipewire wayland wayland-protocols
kio kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
kirigami2 kdeclarative plasma-framework plasma-wayland-protocols
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
index 1fdbe267c0..a7c57c3df2 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -3,10 +3,10 @@
mkXfceDerivation {
category = "apps";
pname = "mousepad";
- version = "0.5.7";
+ version = "0.5.8";
odd-unstable = false;
- sha256 = "sha256-VLPzzM9dl+HAPI+Qn2QTjrKfRgngsExlPFRsdmsNcSM=";
+ sha256 = "sha256-Q5coRO2Swo0LpB+pzi+fxrwNyhcDbQXLuQtepPlCyxY=";
nativeBuildInputs = [ gobject-introspection ];
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
index d938dc8a52..0dfb000c72 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -4,12 +4,14 @@
mkXfceDerivation {
category = "apps";
pname = "ristretto";
- version = "0.11.0";
+ version = "0.12.1";
- sha256 = "sha256-7hVoQ2cgWTTWMch9CSliAhRDh3qKrMzUaZeaN40l1x4=";
+ sha256 = "sha256-Kwtema8mydSPQadeaw/OTnGCHUNuJpvHbf7l4YtICYE=";
buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
meta = {
description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
};
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
index bee7f51360..c5653ddc9f 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
@@ -17,11 +17,11 @@
mkXfceDerivation {
category = "apps";
pname = "xfdashboard";
- version = "0.9.4";
+ version = "0.9.5";
rev-prefix = "";
odd-unstable = false;
- sha256 = "sha256-ZDrBLSfRBw5/nIs/x1jJQCVgNJer85b8Hm1kkX1Dk3s=";
+ sha256 = "sha256-nb1zY78MUjEOJF59MYIOY1rxo3JFmzH9yTJVUGsOwOA=";
buildInputs = [
clutter
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
index 0a937f68fd..b70ef2788a 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
@@ -1,5 +1,5 @@
{ lib, mkXfceDerivation, gobject-introspection, vala, gtk3, libICE, libSM
-, libstartup_notification, libgtop, epoxy, libxfce4util, xfconf }:
+, libstartup_notification, libgtop, libepoxy, libxfce4util, xfconf }:
mkXfceDerivation {
category = "xfce";
@@ -9,7 +9,7 @@ mkXfceDerivation {
sha256 = "sha256-5mwyC3YA1LvdVSvaHN7CXDJh+IXjmdHGLKzhpjtUZkw=";
nativeBuildInputs = [ gobject-introspection vala ];
- buildInputs = [ gtk3 libstartup_notification libgtop epoxy xfconf ];
+ buildInputs = [ gtk3 libstartup_notification libgtop libepoxy xfconf ];
propagatedBuildInputs = [ libxfce4util libICE libSM ];
configureFlags = [
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
index cc998487f1..61e46d3047 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, librsvg, dbus-glib, epoxy, gtk3, libXdamage
+{ mkXfceDerivation, exo, librsvg, dbus-glib, libepoxy, gtk3, libXdamage
, libstartup_notification, libxfce4ui, libxfce4util, libwnck
, libXpresent, xfconf }:
@@ -13,7 +13,7 @@ mkXfceDerivation {
buildInputs = [
dbus-glib
- epoxy
+ libepoxy
gtk3
libXdamage
libstartup_notification
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
index 1a8842f5c8..f475793f29 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
@@ -20,11 +20,11 @@ let
category = "panel-plugins";
in stdenv.mkDerivation rec {
pname = "xfce4-cpugraph-plugin";
- version = "1.2.3";
+ version = "1.2.5";
src = fetchurl {
url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
- sha256 = "sha256-+wzM2aZ4E2JW7dDwT5ReYRqwqpEoN/V0E+87sPUVYIw=";
+ sha256 = "sha256-wvbb1/g8ebY7g8mCMsedBQ4YZA6CRkueyNNkOpLDobA=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
index 41f71ec2f9..23ae5e4e87 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
@@ -7,7 +7,7 @@
, keybinder3
, pkg-config
, python3Packages
-, vala_0_48
+, vala
, wafHook
, wrapGAppsHook
, xfce
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
gobject-introspection
pkg-config
python3Packages.wrapPython
- vala_0_48
+ vala
wafHook
wrapGAppsHook
];
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
index baba34212f..0b67e94682 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkg-config, fetchFromGitHub, python3, vala_0_46
+{ lib, stdenv, pkg-config, fetchFromGitHub, python3, vala_0_40
, gtk3, libwnck, libxfce4util, xfce4-panel, wafHook, xfce }:
stdenv.mkDerivation rec {
@@ -12,7 +12,13 @@ stdenv.mkDerivation rec {
sha256 = "sha256-aKrJzf9rwCyXAJsRIXdBzmJBASuXD5I5kZrp+atx4FA=";
};
- nativeBuildInputs = [ pkg-config vala_0_46 wafHook python3 ];
+ # Does not build with vala 0.48 or later
+ # Upstream has no activity for a while
+ # libxfce4panel-2.0.vapi:92.3-92.41: error: overriding method `Xfce.PanelPlugin.remote_event' is incompatible
+ # with base method `bool Xfce.PanelPluginProvider.remote_event (string, GLib.Value, uint)': too few parameters.
+ # public virtual signal bool remote_event (string name, GLib.Value value);
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ nativeBuildInputs = [ pkg-config vala_0_40 wafHook python3 ];
buildInputs = [ gtk3 libwnck libxfce4util xfce4-panel ];
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
index 3e592b60f1..db6c50f07d 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
@@ -8,11 +8,11 @@ in
stdenv.mkDerivation rec {
pname = "xfce4-sensors-plugin";
- version = "1.4.1";
+ version = "1.4.2";
src = fetchurl {
url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
- sha256 = "sha256-N9DcVp5zXkgqGFRcJOsc4CKdaRDjpNTB3uBoCZkjS+I=";
+ sha256 = "sha256-2pDxLmrplbzRyBvjVHmnqdMjCMZezWTlaLqMlZLTn8s=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index 62e454a628..89f5f9ac38 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -3,10 +3,10 @@
mkXfceDerivation {
category = "panel-plugins";
pname = "xfce4-whiskermenu-plugin";
- version = "2.6.0";
+ version = "2.7.0";
rev-prefix = "v";
odd-unstable = false;
- sha256 = "sha256-VTv4nOL1ltHrewf3q4Uz4e2QjV+Jf7YZTNqILjuAEpM=";
+ sha256 = "sha256-wrFp+YMFfi1UZKQGkHnojAh+l170xW56ls9UJZXmzOo=";
nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix
index 0ae0c35233..5b97bb3066 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix
@@ -13,6 +13,7 @@ mkXfceDerivation {
category = "thunar-plugins";
pname = "thunar-media-tags-plugin";
version = "0.3.0";
+ odd-unstable = false;
sha256 = "sha256-jtgcHH5U5GOvzDVUwPEreMtTdk5DT6sXvFPDbzbF684=";
diff --git a/third_party/nixpkgs/pkgs/development/beam-modules/default.nix b/third_party/nixpkgs/pkgs/development/beam-modules/default.nix
index 1c9d5099b4..1cbdf04bef 100644
--- a/third_party/nixpkgs/pkgs/development/beam-modules/default.nix
+++ b/third_party/nixpkgs/pkgs/development/beam-modules/default.nix
@@ -42,7 +42,12 @@ let
elvis-erlang = callPackage ./elvis-erlang { };
# BEAM-based languages.
- elixir = elixir_1_12;
+ elixir = elixir_1_13;
+
+ elixir_1_13 = lib'.callElixir ../interpreters/elixir/1.13.nix {
+ inherit erlang;
+ debugInfo = true;
+ };
elixir_1_12 = lib'.callElixir ../interpreters/elixir/1.12.nix {
inherit erlang;
@@ -64,17 +69,8 @@ let
debugInfo = true;
};
- elixir_1_8 = lib'.callElixir ../interpreters/elixir/1.8.nix {
- erlang = pkgs.beam.interpreters.erlangR23;
- debugInfo = true;
- };
-
# Remove old versions of elixir, when the supports fades out:
# https://hexdocs.pm/elixir/compatibility-and-deprecations.html
- elixir_1_7 = lib'.callElixir ../interpreters/elixir/1.7.nix {
- inherit erlang;
- debugInfo = true;
- };
elixir_ls = callPackage ./elixir-ls { inherit elixir fetchMixDeps mixRelease; };
diff --git a/third_party/nixpkgs/pkgs/development/beam-modules/elixir-ls/default.nix b/third_party/nixpkgs/pkgs/development/beam-modules/elixir-ls/default.nix
index 1385b40fc1..e0a7cb4e53 100644
--- a/third_party/nixpkgs/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/third_party/nixpkgs/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -5,6 +5,7 @@
mixRelease rec {
pname = "elixir-ls";
version = "0.8.1";
+ inherit elixir;
src = fetchFromGitHub {
owner = "elixir-lsp";
@@ -16,7 +17,7 @@ mixRelease rec {
mixFodDeps = fetchMixDeps {
pname = "mix-deps-${pname}";
- inherit src version;
+ inherit src version elixir;
sha256 = "sha256-OzjToAg+q/ybCyqzNFk28OBsItjFTbdPi416EPh2qX0=";
};
diff --git a/third_party/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix b/third_party/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix
index 0c6f4e35a9..ac6d5f3c8b 100644
--- a/third_party/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix
+++ b/third_party/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, lib, elixir, hex, rebar, rebar3, cacert, git }:
+{ stdenvNoCC, lib, elixir, hex, rebar, rebar3, cacert, git }@inputs:
{ pname
, version
@@ -8,6 +8,8 @@
, debug ? false
, meta ? { }
, patches ? []
+, elixir ? inputs.elixir
+, hex ? inputs.hex.override { inherit elixir; }
, ...
}@attrs:
diff --git a/third_party/nixpkgs/pkgs/development/beam-modules/mix-release.nix b/third_party/nixpkgs/pkgs/development/beam-modules/mix-release.nix
index 554e2e2dae..6265e1697b 100644
--- a/third_party/nixpkgs/pkgs/development/beam-modules/mix-release.nix
+++ b/third_party/nixpkgs/pkgs/development/beam-modules/mix-release.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, elixir, erlang, findutils, hex, rebar, rebar3, fetchMixDeps, makeWrapper, git, ripgrep }:
+{ stdenv, lib, elixir, erlang, findutils, hex, rebar, rebar3, fetchMixDeps, makeWrapper, git, ripgrep }@inputs:
{ pname
, version
@@ -15,6 +15,8 @@
# each dependency needs to have a setup hook to add the lib path to $ERL_LIBS
# this is how mix will find dependencies
, mixNixDeps ? { }
+, elixir ? inputs.elixir
+, hex ? inputs.hex.override { inherit elixir; }
, ...
}@attrs:
let
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix
index 7fec8fd3ff..1fd2fd8dc0 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-darwin.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix
index e802e2eea5..da5e9c49d2 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk11-linux.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.linux.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix
index 2654c4f9e7..fdde25bd36 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-darwin.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix
index c33d6afad1..f503b03a83 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk13-linux.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.linux.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix
index 6941a6dd0d..1c776f69e2 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-darwin.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix
index 756b419434..a55a708b37 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk14-linux.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.linux.jdk.hotspot; knownVulnerabilities = ["Support ended"]; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
index d627fd9311..b9d7066530 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
index 6663d9778b..e248555a6d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.linux.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
index b2bf2877c8..a7473710d1 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
index 738b31fe1d..794545ea80 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.linux.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix
index 5e2d42276c..8468708699 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-darwin.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix
index c2a4085f73..67b50220ba 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk8-linux.nix
@@ -1,5 +1,7 @@
+{ lib }:
+
let
- sources = builtins.fromJSON (builtins.readFile ./sources.json);
+ sources = lib.importJSON ./sources.json;
in
{
jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.linux.jdk.hotspot; };
diff --git a/third_party/nixpkgs/pkgs/development/compilers/apache-flex-sdk/default.nix b/third_party/nixpkgs/pkgs/development/compilers/apache-flex-sdk/default.nix
index 5b5b21aa73..527b800551 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/apache-flex-sdk/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/apache-flex-sdk/default.nix
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
version = "4.16.1";
src = fetchurl {
- url = "https://www.apache.org/dist/flex/${version}/binaries/${pname}-${version}-bin.tar.gz";
+ url = "mirror://apache/flex/${version}/binaries/${pname}-${version}-bin.tar.gz";
sha256 = "13iq16dqvgcpb0p35x66hzxsq5pkbr2lbwr766nnqiryinnagz8p";
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/asl/Makefile-nixos.def b/third_party/nixpkgs/pkgs/development/compilers/asl/Makefile-nixos.def
new file mode 100644
index 0000000000..0f41510733
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/asl/Makefile-nixos.def
@@ -0,0 +1,31 @@
+# -------------------------------------------------------------------------
+# choose your compiler (must be ANSI-compliant!) and linker command, plus
+# any additionally needed flags
+
+OBJDIR = .objdir/
+CC = cc
+CFLAGS = -g -fomit-frame-pointer -Wall
+HOST_OBJEXTENSION = .o
+LD = $(CC)
+LDFLAGS =
+HOST_EXEXTENSION =
+
+# no cross build
+
+TARG_OBJDIR = $(OBJDIR)
+TARG_CC = $(CC)
+TARG_CFLAGS = $(CFLAGS)
+TARG_OBJEXTENSION = $(HOST_OBJEXTENSION)
+TARG_LD = $(LD)
+TARG_LDFLAGS = $(LDFLAGS)
+TARG_EXEXTENSION = $(HOST_EXEXTENSION)
+
+# -------------------------------------------------------------------------
+# directories where binaries, includes, and manpages should go during
+# installation
+
+BINDIR = @bindir@
+INCDIR = @incdir@
+MANDIR = @mandir@
+LIBDIR = @libdir@
+DOCDIR = @docdir@
diff --git a/third_party/nixpkgs/pkgs/development/compilers/asl/default.nix b/third_party/nixpkgs/pkgs/development/compilers/asl/default.nix
new file mode 100644
index 0000000000..b02847b059
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/asl/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, fetchzip
+, buildDocs ? false, tex
+}:
+
+stdenv.mkDerivation rec {
+ pname = "asl";
+ version = "142-bld211";
+
+ src = fetchzip {
+ name = "${pname}-${version}";
+ url = "http://john.ccac.rwth-aachen.de:8000/ftp/as/source/c_version/asl-current-${version}.tar.bz2";
+ hash = "sha256-Sbm16JX7kC/7Ws7YgNBUXNqOCl6u+RXgfNjTODhCzSM=";
+ };
+
+ nativeBuildInputs = lib.optionals buildDocs [ tex ];
+
+ postPatch = lib.optionalString (!buildDocs) ''
+ substituteInPlace Makefile --replace "all: binaries docs" "all: binaries"
+ '';
+
+ dontConfigure = true;
+
+ preBuild = ''
+ bindir="${placeholder "out"}/bin" \
+ docdir="${placeholder "out"}/doc/asl" \
+ incdir="${placeholder "out"}/include/asl" \
+ libdir="${placeholder "out"}/lib/asl" \
+ mandir="${placeholder "out"}/share/man" \
+ substituteAll ${./Makefile-nixos.def} Makefile.def
+ mkdir -p .objdir
+ '';
+
+ meta = with lib; {
+ homepage = "http://john.ccac.rwth-aachen.de:8000/as/index.html";
+ description = "Portable macro cross assembler";
+ longDescription = ''
+ AS is a portable macro cross assembler for a variety of microprocessors
+ and -controllers. Though it is mainly targeted at embedded processors and
+ single-board computers, you also find CPU families in the target list that
+ are used in workstations and PCs.
+ '';
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
+# TODO: multiple outputs
+# TODO: cross-compilation support
+# TODO: customize TeX input
+# TODO: report upstream about `mkdir -p .objdir/`
+# TODO: suggest upstream about building docs as an option
diff --git a/third_party/nixpkgs/pkgs/development/compilers/binaryen/default.nix b/third_party/nixpkgs/pkgs/development/compilers/binaryen/default.nix
index 533be22063..3efc0f1cea 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/binaryen/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/binaryen/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "binaryen";
- version = "101";
+ version = "102";
src = fetchFromGitHub {
owner = "WebAssembly";
repo = "binaryen";
rev = "version_${version}";
- sha256 = "sha256-rNiZQIQqNbc1P2A6UTn0dRHeT3BS+nv1o81aPaJy+5U=";
+ sha256 = "sha256-UlktpY9tyjYNkmiBZM42QGg67kcPo7VDy2B4Ty1YIew=";
};
nativeBuildInputs = [ cmake python3 ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/carp/default.nix b/third_party/nixpkgs/pkgs/development/compilers/carp/default.nix
index d83e70a703..fa2b4ebd62 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/carp/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/carp/default.nix
@@ -1,15 +1,14 @@
{ lib, fetchFromGitHub, makeWrapper, clang, haskellPackages }:
haskellPackages.mkDerivation rec {
-
pname = "carp";
- version = "0.5.0";
+ version = "0.5.3";
src = fetchFromGitHub {
owner = "carp-lang";
repo = "Carp";
rev = "v${version}";
- sha256 = "sha256-nTSMY8bq0b/JvE/XQGDC4St2sqdni12E5WQU5FXnuCg=";
+ sha256 = "08ryk30ii24qsdpdq7bqi406ynv9nr8zy2pcv9n70ar8fxfw0859";
};
buildTools = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/chez/default.nix b/third_party/nixpkgs/pkgs/development/compilers/chez/default.nix
index c1c8eced83..a02256697d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/chez/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/chez/default.nix
@@ -73,6 +73,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ thoughtpolice ];
platforms = lib.platforms.unix;
- badPlatforms = [ "aarch64-linux" ];
+ badPlatforms = [ "aarch64-linux" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/closure/default.nix b/third_party/nixpkgs/pkgs/development/compilers/closure/default.nix
index eb8c898e09..c967af75bf 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/closure/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/closure/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
version = "20210808";
src = fetchurl {
- url = "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v${version}/closure-compiler-v${version}.jar";
+ url = "mirror://maven/com/google/javascript/closure-compiler/v${version}/closure-compiler-v${version}.jar";
sha256 = "1cvibvm8l4mp64ml6lpsh3w62bgbr42pi3i7ga8ss0prhr0dsk3y";
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/crystal/default.nix b/third_party/nixpkgs/pkgs/development/compilers/crystal/default.nix
index 18f6da39b2..330cf851ab 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/crystal/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/crystal/default.nix
@@ -25,11 +25,6 @@
, zlib
}:
-# We need multiple binaries as a given binary isn't always able to build
-# (even slightly) older or newer versions.
-# - 0.26.1 can build 0.25.x and 0.26.x but not 0.27.x
-# - 0.27.2 can build 0.27.x but not 0.25.x, 0.26.x and 0.29.x
-#
# We need to keep around at least the latest version released with a stable
# NixOS
let
@@ -241,8 +236,8 @@ rec {
};
crystal_1_2 = generic {
- version = "1.2.1";
- sha256 = "sha256-jyNmY3n+u8WoVqHY8B5H9Vr9Ix3RogCtm8irkXZ3aek=";
+ version = "1.2.2";
+ sha256 = "sha256-nyOXhsutVBRdtJlJHe2dALl//BUXD1JeeQPgHU4SwiU=";
binary = crystal_1_1;
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix b/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
index 585277064a..f408d7b331 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
@@ -100,14 +100,14 @@ stdenv.mkDerivation rec {
mv * $out/
''}
${lib.optionalString (lib.versionAtLeast version "11") ''
- mkdir -p $out/bin $out/lib64 $out/include $out/doc
+ mkdir -p $out/bin $out/lib64 $out/include $doc
for dir in pkg/builds/* pkg/builds/cuda_nvcc/nvvm pkg/builds/cuda_cupti/extras/CUPTI; do
if [ -d $dir/bin ]; then
mv $dir/bin/* $out/bin
fi
if [ -d $dir/doc ]; then
- (cd $dir/doc && find . -type d -exec mkdir -p $out/doc/\{} \;)
- (cd $dir/doc && find . \( -type f -o -type l \) -exec mv \{} $out/doc/\{} \;)
+ (cd $dir/doc && find . -type d -exec mkdir -p $doc/\{} \;)
+ (cd $dir/doc && find . \( -type f -o -type l \) -exec mv \{} $doc/\{} \;)
fi
if [ -L $dir/include ] || [ -d $dir/include ]; then
(cd $dir/include && find . -type d -exec mkdir -p $out/include/\{} \;)
diff --git a/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix b/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
index 1747f16f12..33a386cfb9 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
@@ -66,11 +66,18 @@ rec {
};
cudatoolkit_11_4 = common {
- version = "11.4.1";
- url = "https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux.run";
- sha256 = "0180pb1zfajb9l6blr467xkx01yp3snfwm2xix8x52crf6d36v6x";
+ version = "11.4.2";
+ url = "https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run";
+ sha256 = "sha256-u9h8oOkT+DdFSnljZ0c1E83e9VUILk2G7Zo4ZZzIHwo=";
gcc = gcc10; # can bump to 11 along with stdenv.cc
};
- cudatoolkit_11 = cudatoolkit_11_2;
+ cudatoolkit_11_5 = common {
+ version = "11.5.0";
+ url = "https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run";
+ sha256 = "sha256-rgoWk9lJfPPYHmlIlD43lGNpANtxyY1Y7v2sr38aHkw=";
+ gcc = gcc10; # can bump to 11 along with stdenv.cc
+ };
+
+ cudatoolkit_11 = cudatoolkit_11_4;
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/dev86/default.nix b/third_party/nixpkgs/pkgs/development/compilers/dev86/default.nix
index cea9ea37b4..2e6b0d3f68 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/dev86/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/dev86/default.nix
@@ -13,9 +13,17 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(out)" ];
+ # Parallel builds are not supported due to build process structure:
+ # tools are built sequentially in submakefiles and are reusing the
+ # same targets as dependencies. Building dependencies in parallel
+ # from different submakes is not synchronized and fails:
+ # make[3]: Entering directory '/build/dev86-0.16.21/libc'
+ # Unable to execute as86.
+ enableParallelBuilding = false;
+
meta = {
description = "Linux 8086 development environment";
- homepage = "http://v3.sk/~lkundrak/dev86/";
+ homepage = "https://github.com/lkundrak/dev86";
platforms = lib.platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/dictu/default.nix b/third_party/nixpkgs/pkgs/development/compilers/dictu/default.nix
index ed142f658e..6f685f0f3e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/dictu/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/dictu/default.nix
@@ -13,13 +13,13 @@ assert enableLTO -> stdenv.cc.isGNU;
stdenv.mkDerivation rec {
pname = "dictu";
- version = "0.20.0";
+ version = "0.22.0";
src = fetchFromGitHub {
owner = "dictu-lang";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-GiiNIySrfpjYf5faNNml7ZRXT5pDU0SVvNvMyBh1K8E=";
+ sha256 = "sha256-bAoSFHX8sQgmV3hAXsR9qT4BnUsyneeynRAByEfzjE4=";
};
nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/dotnet/default.nix b/third_party/nixpkgs/pkgs/development/compilers/dotnet/default.nix
index 1b34a5953c..c4eabac489 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/dotnet/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/dotnet/default.nix
@@ -17,97 +17,97 @@ rec {
# EOL
- sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 3.1 (LTS) or 5.0 (Current)";
- sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1 (LTS) or 5.0 (Current)";
- sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 3.1 (LTS) or 5.0 (Current)";
+ sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)";
+ sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)";
+ sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)";
# v3.1 (LTS)
aspnetcore_3_1 = buildAspNetCore {
- version = "3.1.19";
+ version = "3.1.21";
sha512 = {
- x86_64-linux = "c9234b5dba62c88b5f7e869c7dc7fc94d9cd7b300b0ed2461132c32762c0d3d1f23a1ee0432264704fefeb35f77ca7d1dd41910daee84df9aa325559a43cfc71";
- aarch64-linux = "4cba9b43a9beb977bb50c290c0e7cbbf42664538609079dd1bc0e925a0cc4a1f76748492d4d0d402610ae910e878449bab5d797a9f12e63399585b11f9bfbee9";
- x86_64-darwin = "a30959156c818d8d93df398742a70a050decfddbd777ddd6adb4d3c1aa5ed129545eab8f0aa3f12be991611dbc3582336ed747f3075906a2a29a1cd30ef3ad90";
+ x86_64-linux = "f59252166dbfe11a78373226222d6a34484b9132e24283222aea8a950a5e9657da2e4d4e9ff8cbcc2fd7c7705e13bf42a31232a6012d1e247efc718e3d8e2df1";
+ aarch64-linux = "f3d014431064362c29361e3d3b33b7aaaffe46e22f324cd42ba6fc6a6d5b712153e9ec82f10cf1bee416360a68fb4520dc9c0b0a8860316c4c9fce75f1adae80";
+ x86_64-darwin = "477912671e21c7c61f5666323ad9e9c246550d40b4d127ccc71bcb296c86e07051e3c75251beef11806f198eebd0cd4b36790950f24c730dc6723156c0dc11b5";
};
};
runtime_3_1 = buildNetRuntime {
- version = "3.1.19";
+ version = "3.1.21";
sha512 = {
- x86_64-linux = "2cf268cc13bb4739203a18a9160aac58f2088e8ec275b1f7ef2fe2b74bc16edfdfbeb886a74fc9421edbf2899fa9e3ee7ea2734a83b1800b4a9848fb7e10bbbe";
- aarch64-linux = "c6a97bc6e2f2644d57d3fa5a512274b7129956371b07e0f39f734875b15bc0c178a9b068e2fa3e06e8a3a6696163ad1856f5d87a689612211ee02e589138110e";
- x86_64-darwin = "41ae9bc0212247c4721f41be384dae620971360c09fa31430f062c2ab851f10506ef620bf63ee414819b5dd20ddae8a1ce581bbe0d699378b244375e0822bd34";
+ x86_64-linux = "cc4b2fef46e94df88bf0fc11cb15439e79bd48da524561dffde80d3cd6db218133468ad2f6785803cf0c13f000d95ff71eb258cec76dd8eb809676ec1cb38fac";
+ aarch64-linux = "80971125650a2fa0163e39a2de98bc2e871c295b723559e6081a3ab59d99195aa5b794450f8182c5eb4e7e472ca1c13340ef1cc8a5588114c494bbb5981f19c4";
+ x86_64-darwin = "049257f680fe7dfb8e98a2ae4da6aa184f171b04b81c506e7a83509e46b1ea81ea6000c4d01c5bed46d5495328c6d9a0eeecbc0dc7c2c698296251fb04b5e855";
};
};
sdk_3_1 = buildNetSdk {
- version = "3.1.413";
+ version = "3.1.415";
sha512 = {
- x86_64-linux = "2a0824f11aba0b79d3f9a36af0395649bc9b4137e61b240a48dccb671df0a5b8c2086054f8e495430b7ed6c344bb3f27ac3dfda5967d863718a6dadeca951a83";
- aarch64-linux = "39f198f07577faf81f09ca621fb749d5aac38fc05e7e6bd6226009679abc7d001454068430ddb34b320901955f42de3951e2707e01bce825b5216df2bc0c8eca";
- x86_64-darwin = "2c8e5b7e578aa36d40946d0deea93dff72a68ebb5504b1593d86d63022be8b65b284cf2adad711a926b7170fc865ac4cb38531a4f2ef087e07147e67300e86b8";
+ x86_64-linux = "df7a6d1abed609c382799a8f69f129ec72ce68236b2faecf01aed4c957a40a9cfbbc9126381bf517dff3dbe0e488f1092188582701dd0fef09a68b8c5707c747";
+ aarch64-linux = "7a5b9922988bcbde63d39f97e283ca1d373d5521cca0ab8946e2f86deaef6e21f00244228a0d5d8c38c2b9634b38bc7338b61984f0e12dd8fdb8b2e6eed5dd34";
+ x86_64-darwin = "e26529714021d1828687c404dd0800c61eb267c9da62ee629b91f5ffa8af77d156911bd3c1a58bf11e5c589cfe4a852a95c14a7cb25f731e92a484348868964d";
};
};
# v5.0 (Current)
aspnetcore_5_0 = buildAspNetCore {
- version = "5.0.10";
+ version = "5.0.12";
sha512 = {
- x86_64-linux = "60fd41e42e07a96416baf2dd7ea8112a7c7d510bc6f4656274981777d2cf5e824cd519924cdf06215338d74e78cdc7801e1b24c39b3d67cd2d1b3c6fee6474a9";
- aarch64-linux = "e86dd5b26e5add2f35c3a029c78e3c447755a319c105d371da297f66db5eff260f3f55ccf23e508e9a33536876708ac2e358dc62a4a28518f88df3a9131adb01";
- x86_64-darwin = "124abacba27e26249d265d51fd7abc7ab0bed9859ce3a6a8e4f193031bff3f28dd81af639542b0cc043a3957e2a90a2f5b41c6ec6b4a50a4cb8fce12bc8654f9";
+ x86_64-linux = "0529f23ffa651ac2c2807b70d6e5034f6ae4c88204afdaaa76965ef604d6533f9440d68d9f2cdd3a9f2ca37e9140e6c61a9f9207d430c71140094c7d5c33bf79";
+ aarch64-linux = "70570177896943613f0cddeb046ffccaafb1c8245c146383e45fbcfb27779c70dff1ab22c2b13a14bf096173c9279e0a386f61665106a3abb5f623b50281a652";
+ x86_64-darwin = "bd9e7dd7f48c220121dde85b3acc4ce7eb2a1944d472f9340276718ef72d033f05fd9a62ffb9de93b8e7633843e731ff1cb5e8c836315f7571f519fdb0a119e1";
};
};
runtime_5_0 = buildNetRuntime {
- version = "5.0.10";
+ version = "5.0.12";
sha512 = {
- x86_64-linux = "421b00d5751381e6bf829dcba8fa0d781f0efd065be492739d60a4bef2b7b362dbec77fa3289e2ee45cab40616f95318fc214699ffe2f33aa15e77c2d163841c";
- aarch64-linux = "30861f2bd41fcd7c1d657be1eafa09f22886af0c3e09d1854c626b675a469347ce9fb79b2ea92b5ed4e2fd3d3457766ac03fc5393a690099e1d2b9b15f3334b9";
- x86_64-darwin = "2839f4fafa1f85a90b43a74a4898cbba915324f7363f1716e58cb9163d1415fa4d360703e27d0cadfe8495a370ccddbcfcc514076a880d6343a0bff76bb5ac2a";
+ x86_64-linux = "32b5f86db3b1d4c21e3cf616d22f0e4a7374385dac0cf03cdebf3520dcf846460d9677ec1829a180920740a0237d64f6eaa2421d036a67f4fe9fb15d4f6b1db9";
+ aarch64-linux = "a8089fad8d21a4b582aa6c3d7162d56a21fee697fd400f050a772f67c2ace5e4196d1c4261d3e861d6dc2e5439666f112c406104d6271e5ab60cda80ef2ffc64";
+ x86_64-darwin = "a3160eaec15d0e2b62a4a2cdbb6663ef2e817fd26a3a3b8b3d75c5e3538b2947ff66eaddafb39cc297b9f087794d5fbd5a0e097ec8522ab6fea562f230055264";
};
};
sdk_5_0 = buildNetSdk {
- version = "5.0.401";
+ version = "5.0.403";
sha512 = {
- x86_64-linux = "a444d44007709ceb68d8f72dec0531e17f85f800efc0007ace4fa66ba27f095066930e6c6defcd2f85cdedea2fec25e163f5da461c1c2b8563e5cd7cb47091e0";
- aarch64-linux = "770dcf18c08cd285934af61bedc06ffcc16a74115d15376f72376cdfbb4ab9cc9f53537ca1fe5d906b4b3c30b960ffe1404d6f7e01254091b4b9d288e9e972fa";
- x86_64-darwin = "eca773f407314123fd5b2017f68520c0647651f53e546583c4145b596c230c42898b3e56355cd5ace76b793df4aca3cd7ff9142718c86eedeabbabb70b393d0e";
+ x86_64-linux = "7ba5f7f898dba64ea7027dc66184d60ac5ac35fabe750bd509711628442e098413878789fad5766be163fd2867cf22ef482a951e187cf629bbc6f54dd9293a4a";
+ aarch64-linux = "6cc705fe45c0d8df6a493eb2923539ef5b62d048d5218859bf3af06fb3934c9c716c16f98ee1a28c818d77adff8430bf39a2ae54a59a1468b704b4ba192234ac";
+ x86_64-darwin = "70beea069db182cca211cf04d7a80f3d6a3987d76cbd2bb60590ee76b93a4041b1b86ad91057cddbbaddd501c72327c1bc0a5fec630f38063f84bd60ba2b4792";
};
};
- # v6.0 (RC)
+ # v6.0 (LTS)
aspnetcore_6_0 = buildAspNetCore {
- version = "6.0.0-rc.2.21480.10";
+ version = "6.0.0";
sha512 = {
- x86_64-linux = "d48895237644a3999663b2e16baa2303d8b77f66385a04d8edb5601fdffacce18b1b1318827d09f74f6b133ff2c179ef659bd21cf8460289b5f81f404fa8b326";
- aarch64-linux = "3a92e93a8cb0c186f1c4a822d46a37604bc470599dbcbe05a7f1ea7c7d1dd9c0e6571de524de8729d19d237078742a0b4e3a1daa11b5eb5f8cce74b69710ada4";
- x86_64-darwin = "ed1cad94acf207d0f18201af1e0e6c386466f94b8fd0474dc8d59f47d8f3c456f3a55de392dda126e0e1f4f934249b0e17b7b86f6bc7c510dc475324ee1395f0";
- aarch64-darwin = "688879db73aa6b7556da70907920f3e443dff54bf8624030352ed5ba3896cceda69040ef359dacf55d50cc52fc2c75057d259a1cc11a2258d4446ebbd2200820";
+ x86_64-linux = "6a1ae878efdc9f654e1914b0753b710c3780b646ac160fb5a68850b2fd1101675dc71e015dbbea6b4fcf1edac0822d3f7d470e9ed533dd81d0cfbcbbb1745c6c";
+ aarch64-linux = "e61eade344b686180b8a709229d6b3180ea6f085523e5e4e4b0d23dd00cf9edce3e51a920c986b1bab7d04d8cab5aae219c3b533b6feb84b32a02810936859b0";
+ x86_64-darwin = "76029272ff50fbf9fcc513109b98c0db5f74dbf970c1380be4dfac0dae7558824d68a167d0a8ceb39042ff4a7ca973cdcc15afed2d1ffef55b0adba8e40c9073";
+ aarch64-darwin = "e459ddf33243d680baecc5378b9c4182daf42b8c36a9a996205d91146a614d048a385f953c43727350ad55b1221c5f5d43b383d03e3883e862bf12faeaa02dfb";
};
};
runtime_6_0 = buildNetRuntime {
- version = "6.0.0-rc.2.21480.5";
+ version = "6.0.0";
sha512 = {
- x86_64-linux = "45062417c6111af4d635868927e8f69d43f66c9e0f111cb71c1861eaf5ceda4aefa99d97c6ce3b13fac2bc7c57c435e6f8b2d43c51a3bb3304b42081d98f7047";
- aarch64-linux = "b0f8128d994b0de0c72b9dd8083a7350218adfafedc643c59b497fa605420602004d9e21e8acb488d92bc498f9783a3240cfcafa77443eb6f08b66aadc4f5b65";
- x86_64-darwin = "0f702645719af5a4f1e720c0f2a0c67c7a4a84fac525b3ac6ce6357ca6d44405aeca674d04d8a976a7338ddf8782350debd53dce85e614c837106ffadf84cfb9";
- aarch64-darwin = "747abb8eaad53e0ca7e5b2908b620076fa68a75c5e822361483ed13f7544e31def26bbf67bb85f47633e2dddde9cb095503bf70d1a4b0b2f33c6ef6f887d95fa";
+ x86_64-linux = "7cc8d93f9495b516e1b33bf82af3af605f1300bcfeabdd065d448cc126bd97ab4da5ec5e95b7775ee70ab4baf899ff43671f5c6f647523fb41cda3d96f334ae5";
+ aarch64-linux = "b0f0f2b4dc0a31b06cc3af541a3c44260317ca3a4414a5d50e6cf859d93821b3d2c2246baec9f96004aeb1eb0e353631283b11cf3acc134d4694f0ed71c9503d";
+ x86_64-darwin = "d6842bddd9652dd7ad1d8156c3e9012f9412b3d89b4cfc0b6d644fd76744298aa5ed2cde8a80d14bb2b247ee162bae255875ee2ca62033a422dacb7adaeece2d";
+ aarch64-darwin = "5cfc3c8a70f0e90f09047d3eeccd699e7210756b60fabbf1a30d6fdc121df084e5d8c3210557273739d5421f031dc9e4d07c611406734ca0671585de6e28e028";
};
};
sdk_6_0 = buildNetSdk {
- version = "6.0.100-rc.2.21505.57";
+ version = "6.0.100";
sha512 = {
- x86_64-linux = "0a8f85a2757f61ca7f9b8c546af4554c2aac9cdb06f6d62879a60de6f2a3d37ea7136f48896c9c85828a2d55df354e7b9b5b4dc22896c927f0c6370a5ade1b9c";
- aarch64-linux = "14aa96f47f7f3520075e41753c705bdbf7f84fd7cff7cc2add1095a13e3e3c44eaaf2d822551902f05a6ad0c9acd7f7424190b7c09c397004c632eddc8acd5ac";
- x86_64-darwin = "6a896f2d1e8e2d00b52641e8b1aee88888a2b30e0f18e499b1eaf4ae7dbdaa24ea5af0dbd4a6a1cee715738e6e91cecdbc02c2c7d3d4c71d4c9af3e04f1b4fc9";
- aarch64-darwin = "c96c8a86e36ca16a0e10f635250472d5c8eda290dc505ed8eb4bd6a68b8e6ae6b2770236f5bda1573bc3124229531b3ed7dd71f60a821e39aaaa6697a82fdf8a";
+ x86_64-linux = "cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b";
+ aarch64-linux = "e5983c1c599d6dc7c3c7496b9698e47c68247f04a5d0d1e3162969d071471297bce1c2fd3a1f9fb88645006c327ae79f880dcbdd8eefc9166fd717331f2716e7";
+ x86_64-darwin = "6e2f502a84f712d60daed31c4076c5b55ee98a03259adf4bdc01659afcac2be7050e5a404dcda35fdc598bf5cd766772c08abc483ed94f6985c9501057b0186a";
+ aarch64-darwin = "92ead34c7e082dbed2786db044385ddfc68673e096a3edf64bc0bf70c76ea1c5cb816cde99aab2d8c528a44c86593b812877d075486dd0ae565f0e01e9eaa562";
};
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/dotnet/print-hashes.sh b/third_party/nixpkgs/pkgs/development/compilers/dotnet/print-hashes.sh
new file mode 100755
index 0000000000..5c97c31323
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/dotnet/print-hashes.sh
@@ -0,0 +1,69 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl
+
+set -eu
+
+if [[ $# -lt 1 ]]; then
+ echo \"usage: $0 version\" >&2
+ exit 1
+fi
+
+VERSION=$1
+HASHFILE=$(mktemp /tmp/dotnet.hashes.XXXXXXXX)
+trap "rm -f $HASHFILE" EXIT
+
+curl -L https://dotnetcli.blob.core.windows.net/dotnet/checksums/$VERSION-sha.txt -o $HASHFILE
+
+ASPNETCORE_VERSION=$(grep aspnetcore-runtime- $HASHFILE | grep -- -linux-x64.tar.gz | tail -n -1 | sed -e 's:.*aspnetcore-runtime-::' -e 's:-linux-x64.tar.gz.*$::' )
+ASPNETCORE_HASH_LINUX_X64=$(grep aspnetcore-runtime- $HASHFILE | grep -- -linux-x64.tar.gz | cut -d ' ' -f 1)
+ASPNETCORE_HASH_LINUX_ARM64=$(grep aspnetcore-runtime- $HASHFILE | grep -- -linux-arm64.tar.gz | cut -d ' ' -f 1)
+ASPNETCORE_HASH_OSX_X64=$(grep aspnetcore-runtime- $HASHFILE | grep -- -osx-x64.tar.gz | cut -d ' ' -f 1)
+ASPNETCORE_HASH_OSX_ARM64=$(grep aspnetcore-runtime- $HASHFILE | grep -- -osx-arm64.tar.gz | cut -d ' ' -f 1)
+
+RUNTIME_VERSION=$(grep dotnet-runtime- $HASHFILE | grep -- -linux-x64.tar.gz | tail -n -1 | sed -e 's:.*dotnet-runtime-::' -e 's:-linux-x64.tar.gz.*$::' )
+RUNTIME_HASH_LINUX_X64=$(grep dotnet-runtime- $HASHFILE | grep -- -linux-x64.tar.gz | cut -d ' ' -f 1)
+RUNTIME_HASH_LINUX_ARM64=$(grep dotnet-runtime- $HASHFILE | grep -- -linux-arm64.tar.gz | cut -d ' ' -f 1)
+RUNTIME_HASH_OSX_X64=$(grep dotnet-runtime- $HASHFILE | grep -- -osx-x64.tar.gz | cut -d ' ' -f 1)
+RUNTIME_HASH_OSX_ARM64=$(grep dotnet-runtime- $HASHFILE | grep -- -osx-arm64.tar.gz | cut -d ' ' -f 1)
+
+# dotnet-sdk has multiple entries in file, but the latest is the newest
+SDK_VERSION=$(grep dotnet-sdk- $HASHFILE | grep -- -linux-x64.tar.gz | tail -n -1 | sed -e 's:.*dotnet-sdk-::' -e 's:-linux-x64.tar.gz.*$::' )
+SDK_HASH_LINUX_X64=$(grep dotnet-sdk- $HASHFILE | grep -- -linux-x64.tar.gz | tail -n 1 | cut -d ' ' -f 1)
+SDK_HASH_LINUX_ARM64=$(grep dotnet-sdk- $HASHFILE | grep -- -linux-arm64.tar.gz | tail -n 1 | cut -d ' ' -f 1)
+SDK_HASH_OSX_X64=$(grep dotnet-sdk- $HASHFILE | grep -- -osx-x64.tar.gz | tail -n 1 | cut -d ' ' -f 1)
+SDK_HASH_OSX_ARM64=$(grep dotnet-sdk- $HASHFILE | grep -- -osx-arm64.tar.gz | tail -n 1 | cut -d ' ' -f 1)
+
+V=${VERSION/./_}
+MAJOR_MINOR_VERSION=${V%%.*}
+
+echo """
+ aspnetcore_${MAJOR_MINOR_VERSION} = buildAspNetCore {
+ version = \"${ASPNETCORE_VERSION}\";
+ sha512 = {
+ x86_64-linux = \"${ASPNETCORE_HASH_LINUX_X64}\";
+ aarch64-linux = \"${ASPNETCORE_HASH_LINUX_ARM64}\";
+ x86_64-darwin = \"${ASPNETCORE_HASH_OSX_X64}\";
+ aarch64-darwin = \"${ASPNETCORE_HASH_OSX_ARM64}\";
+ };
+ };
+
+ runtime_${MAJOR_MINOR_VERSION} = buildNetRuntime {
+ version = \"${RUNTIME_VERSION}\";
+ sha512 = {
+ x86_64-linux = \"${RUNTIME_HASH_LINUX_X64}\";
+ aarch64-linux = \"${RUNTIME_HASH_LINUX_ARM64}\";
+ x86_64-darwin = \"${RUNTIME_HASH_OSX_X64}\";
+ aarch64-darwin = \"${RUNTIME_HASH_OSX_ARM64}\";
+ };
+ };
+
+ sdk_${MAJOR_MINOR_VERSION} = buildNetSdk {
+ version = \"${SDK_VERSION}\";
+ sha512 = {
+ x86_64-linux = \"${SDK_HASH_LINUX_X64}\";
+ aarch64-linux = \"${SDK_HASH_LINUX_ARM64}\";
+ x86_64-darwin = \"${SDK_HASH_OSX_X64}\";
+ aarch64-darwin = \"${SDK_HASH_OSX_ARM64}\";
+ };
+ };
+"""
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ecl/default.nix b/third_party/nixpkgs/pkgs/development/compilers/ecl/default.nix
index 5896e94882..9d2ded48a3 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ecl/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ecl/default.nix
@@ -28,7 +28,8 @@ let
];
in
stdenv.mkDerivation {
- inherit (s) name version;
+ inherit (s) version;
+ pname = s.baseName;
inherit nativeBuildInputs propagatedBuildInputs;
src = fetchurl {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/edk2/default.nix b/third_party/nixpkgs/pkgs/development/compilers/edk2/default.nix
index aaf59ca1ef..e60d647f6d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/edk2/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/edk2/default.nix
@@ -1,15 +1,12 @@
-{
- stdenv,
- clangStdenv,
- fetchgit,
- fetchpatch,
- libuuid,
- python3,
- bc,
- clang_9,
- llvmPackages_9,
- overrideCC,
- lib,
+{ stdenv
+, clangStdenv
+, fetchFromGitHub
+, fetchpatch
+, libuuid
+, python3
+, bc
+, llvmPackages_9
+, lib
}:
let
@@ -25,7 +22,7 @@ else
throw "Unsupported architecture";
buildStdenv = if stdenv.isDarwin then
- overrideCC clangStdenv [ clang_9 llvmPackages_9.llvm llvmPackages_9.lld ]
+ llvmPackages_9.stdenv
else
stdenv;
@@ -39,12 +36,26 @@ edk2 = buildStdenv.mkDerivation {
version = "202108";
# submodules
- src = fetchgit {
- url = "https://github.com/tianocore/edk2";
+ src = fetchFromGitHub {
+ owner = "tianocore";
+ repo = "edk2";
rev = "edk2-stable${edk2.version}";
+ fetchSubmodules = true;
sha256 = "1ps244f7y43afxxw6z95xscy24f9mpp8g0mfn90rd4229f193ba2";
};
+ patches = [
+ # Pull upstream fix for gcc-11 build.
+ (fetchpatch {
+ name = "gcc-11-vla.patch";
+ url = "https://github.com/google/brotli/commit/0a3944c8c99b8d10cc4325f721b7c273d2b41f7b.patch";
+ sha256 = "10c6ibnxh4f8lrh9i498nywgva32jxy2c1zzvr9mcqgblf9d19pj";
+ # Apply submodule patch to subdirectory: "a/" -> "BaseTools/Source/C/BrotliCompress/brotli/"
+ stripLen = 1;
+ extraPrefix = "BaseTools/Source/C/BrotliCompress/brotli/";
+ })
+ ];
+
buildInputs = [ libuuid pythonEnv ];
makeFlags = [ "-C BaseTools" ]
diff --git a/third_party/nixpkgs/pkgs/development/compilers/elm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/elm/default.nix
index 837855d2bd..b82f14d9ef 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/elm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/elm/default.nix
@@ -8,9 +8,9 @@ let
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
hsPkgs = haskellPackages.override {
- overrides = self: super: with haskell.lib; with lib;
+ overrides = self: super: with haskell.lib.compose; with lib;
let elmPkgs = rec {
- elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
+ elm = overrideCabal (drv: {
# sadly with parallelism most of the time breaks compilation
enableParallelBuilding = false;
preConfigure = self.fetchElmDeps {
@@ -29,22 +29,22 @@ let
homepage = "https://elm-lang.org/";
license = licenses.bsd3;
maintainers = with maintainers; [ domenkozar turbomack ];
- });
+ }) (self.callPackage ./packages/elm.nix { });
/*
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
`package/nix/build.sh`
*/
- elm-format = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-format.nix {}) (drv: {
+ elm-format = justStaticExecutables (overrideCabal (drv: {
jailbreak = true;
description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
homepage = "https://github.com/avh4/elm-format";
license = licenses.bsd3;
maintainers = with maintainers; [ avh4 turbomack ];
- }));
+ }) (self.callPackage ./packages/elm-format.nix {}));
- elmi-to-json = justStaticExecutables (overrideCabal (self.callPackage ./packages/elmi-to-json.nix {}) (drv: {
+ elmi-to-json = justStaticExecutables (overrideCabal (drv: {
prePatch = ''
substituteInPlace package.yaml --replace "- -Werror" ""
hpack
@@ -55,9 +55,9 @@ let
homepage = "https://github.com/stoeffel/elmi-to-json";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
- }));
+ }) (self.callPackage ./packages/elmi-to-json.nix {}));
- elm-instrument = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-instrument.nix {}) (drv: {
+ elm-instrument = justStaticExecutables (overrideCabal (drv: {
prePatch = ''
sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
'';
@@ -69,7 +69,7 @@ let
homepage = "https://github.com/zwilias/elm-instrument";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
- }));
+ }) (self.callPackage ./packages/elm-instrument.nix {}));
inherit fetchElmDeps;
elmVersion = elmPkgs.elm.version;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix b/third_party/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix
index 4b662bd072..10952aff94 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix
@@ -6,7 +6,7 @@
let
nodeEnv = import ../../../node-packages/node-env.nix {
- inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/eql/default.nix b/third_party/nixpkgs/pkgs/development/compilers/eql/default.nix
index a3fefbc1f4..e0ef27ce23 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/eql/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/eql/default.nix
@@ -1,8 +1,8 @@
{ lib, stdenv, fetchgit, qt4, ecl, xorgserver, xkbcomp, xkeyboard_config }:
stdenv.mkDerivation rec {
- version = src.rev;
- pname = "eql-git";
+ version = "unstable-2012-12-10";
+ pname = "eql";
src = fetchgit {
rev = "9097bf98446ee33c07bb155d800395775ce0d9b2";
url = "https://gitlab.com/eql/eql.git";
diff --git a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch
new file mode 100644
index 0000000000..068d7c09b6
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch
@@ -0,0 +1,31 @@
+From da8a4b9c1094a568f443c525ca1ce11f686be1bc Mon Sep 17 00:00:00 2001
+From: timor
+Date: Thu, 8 Aug 2019 14:13:09 +0200
+Subject: [PATCH] adjust unit test for finding executables in path for NixOS
+
+---
+ basis/io/standard-paths/unix/unix-tests.factor | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/basis/io/standard-paths/unix/unix-tests.factor b/basis/io/standard-paths/unix/unix-tests.factor
+index 986c0564d2..f0772fdcc9 100644
+--- a/basis/io/standard-paths/unix/unix-tests.factor
++++ b/basis/io/standard-paths/unix/unix-tests.factor
+@@ -5,12 +5,12 @@ sequences tools.test ;
+
+ { f } [ "" find-in-path ] unit-test
+ { t } [
+- "ls" find-in-path { "/bin/ls" "/usr/bin/ls" } member?
++ "ls" find-in-path not not
+ ] unit-test
+
+ { t } [
+ "/sbin:" "PATH" os-env append "PATH" [
+ "ps" find-in-path
+- { "/bin/ps" "/sbin/ps" "/usr/bin/ps" } member?
++ not not
+ ] with-os-env
+ ] unit-test
+--
+2.19.2
+
diff --git a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/default.nix b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/default.nix
deleted file mode 100644
index 4ce55b5ca2..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/default.nix
+++ /dev/null
@@ -1,105 +0,0 @@
-{ lib, stdenv, fetchurl, glib, git,
- rlwrap, curl, pkg-config, perl, makeWrapper, tzdata, ncurses,
- pango, cairo, gtk2, gdk-pixbuf, gtkglext,
- mesa, xorg, openssl, unzip }:
-
-stdenv.mkDerivation rec {
- pname = "factor-lang";
- version = "0.98";
- rev = "7999e72aecc3c5bc4019d43dc4697f49678cc3b4";
-
- src = fetchurl {
- url = "https://downloads.factorcode.org/releases/0.98/factor-src-0.98.zip";
- sha256 = "01ip9mbnar4sv60d2wcwfz62qaamdvbykxw3gbhzqa25z36vi3ri";
- };
-
- patches = [
- ./staging-command-line-0.98-pre.patch
- ./workdir-0.98-pre.patch
- ./fuel-dir.patch
- ];
-
- nativeBuildInputs = [ makeWrapper unzip ];
- buildInputs = with xorg; [ git rlwrap curl pkg-config perl
- libX11 pango cairo gtk2 gdk-pixbuf gtkglext
- mesa libXmu libXt libICE libSM openssl ];
-
- buildPhase = ''
- sed -ie '4i GIT_LABEL = heads/master-${rev}' GNUmakefile
- make linux-x86-64
- # De-memoize xdg-* functions, otherwise they break the image.
- sed -ie 's/^MEMO:/:/' basis/xdg/xdg.factor
- '';
-
- installPhase = ''
- mkdir -p $out/bin $out/lib/factor
- # The released image has library path info embedded, so we
- # first have to recreate the boot image with Nix paths, and
- # then use it to build the Nix release image.
- cp boot.unix-x86.64.image $out/lib/factor/factor.image
-
- cp -r basis core extra $out/lib/factor
-
- # Factor uses XDG_CACHE_HOME for cache during compilation.
- # We can't have that. So set it to $TMPDIR/.cache
- export XDG_CACHE_HOME=$TMPDIR/.cache && mkdir -p $XDG_CACHE_HOME
-
- # There is no ld.so.cache in NixOS so we construct one
- # out of known libraries. The side effect is that find-lib
- # will work only on the known libraries. There does not seem
- # to be a generic solution here.
- find $(echo ${lib.makeLibraryPath (with xorg; [
- glib libX11 pango cairo gtk2 gdk-pixbuf gtkglext
- mesa libXmu libXt libICE libSM ])} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
-
- (echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
- for l in $(<$TMPDIR/so.lst);
- do
- echo " $(basename $l) (libc6,x86-64) => $l";
- done)> $out/lib/factor/ld.so.cache
-
- sed -ie "s#/sbin/ldconfig -p#cat $out/lib/factor/ld.so.cache#g" \
- $out/lib/factor/basis/alien/libraries/finder/linux/linux.factor
-
- sed -ie 's#/usr/share/zoneinfo/#${tzdata}/share/zoneinfo/#g' \
- $out/lib/factor/extra/tzinfo/tzinfo.factor
-
- sed -ie 's#/usr/share/terminfo#${ncurses.out}/share/terminfo#g' \
- $out/lib/factor/extra/terminfo/terminfo.factor
-
- cp ./factor $out/bin
- wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
- "${lib.makeLibraryPath (with xorg; [ glib
- libX11 pango cairo gtk2 gdk-pixbuf gtkglext
- mesa libXmu libXt libICE libSM openssl])}"
-
- sed -ie 's#/bin/.factor-wrapped#/lib/factor/factor#g' $out/bin/factor
- mv $out/bin/.factor-wrapped $out/lib/factor/factor
-
- # build full factor image from boot image
- (cd $out/bin && ./factor -script -e='"unix-x86.64" USING: system bootstrap.image memory ; make-image save 0 exit' )
-
- # make a new bootstrap image
- (cd $out/bin && ./factor -script -e='"unix-x86.64" USING: system tools.deploy.backend ; make-boot-image 0 exit' )
-
- # rebuild final full factor image to include all patched sources
- (cd $out/lib/factor && ./factor -i=boot.unix-x86.64.image)
-
- # install fuel mode for emacs
- mkdir -p $out/share/emacs/site-lisp
- # update default paths in factor-listener.el for fuel mode
- substituteInPlace misc/fuel/fuel-listener.el \
- --subst-var-by fuel_factor_root_dir $out/lib/factor \
- --subst-var-by fuel_listener_factor_binary $out/bin/factor
- cp misc/fuel/*.el $out/share/emacs/site-lisp/
- '';
-
- meta = with lib; {
- homepage = "https://factorcode.org";
- license = licenses.bsd2;
- description = "A concatenative, stack-based programming language";
-
- maintainers = [ maintainers.vrthra maintainers.spacefrogg ];
- platforms = [ "x86_64-linux" ];
- };
-}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/factor98.nix b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/factor98.nix
new file mode 100644
index 0000000000..f9b5933982
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/factor98.nix
@@ -0,0 +1,218 @@
+{ lib
+, stdenv
+, cairo
+, curl
+, fetchurl
+, freealut
+, gdk-pixbuf
+, git
+, glib
+, gnome2
+, graphviz
+, gtk2-x11
+, interpreter
+, libGL
+, libGLU
+, libogg
+, librsvg
+, libvorbis
+, makeWrapper
+, ncurses
+, openal
+, openssl
+, pango
+, pcre
+, runCommand
+, runtimeShell
+, tzdata
+, udis86
+, unzip
+, writeScriptBin
+, zlib
+}:
+let
+ runtimeLibs = [
+ cairo
+ freealut
+ gdk-pixbuf
+ glib
+ gnome2.gtkglext
+ graphviz
+ gtk2-x11
+ libGL
+ libGLU
+ libogg
+ libvorbis
+ openal
+ openssl
+ pango
+ pcre
+ udis86
+ zlib
+ ];
+
+ wrapFactorScript = { from, to ? false, runtimeLibs }: ''
+ # Set Gdk pixbuf loaders file to the one from the build dependencies here
+ unset GDK_PIXBUF_MODULE_FILE
+ # Defined in gdk-pixbuf setup hook
+ findGdkPixbufLoaders "${librsvg}"
+
+ ${if to then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+ --argv0 factor \
+ --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
+ --prefix PATH : ${lib.makeBinPath [ graphviz ]}
+ '';
+
+ wrapFactor = runtimeLibs:
+ runCommand (lib.appendToName "with-libs" interpreter).name
+ {
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ gdk-pixbuf ];
+ passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
+ }
+ (wrapFactorScript {
+ from = "${interpreter}/lib/factor/.factor.wrapped";
+ to = "$out/bin/factor";
+ runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
+ });
+
+ # Development helper for use in nix shell
+ wrapLocalFactor = writeScriptBin "wrapFactor" ''
+ #!${runtimeShell}
+ ${wrapFactorScript { from = "./factor"; inherit runtimeLibs; }}
+ ln -sf factor.image .factor-wrapped.image
+ '';
+ rev = "7999e72aecc3c5bc4019d43dc4697f49678cc3b4";
+ version = "0.98";
+
+in
+stdenv.mkDerivation {
+ pname = "factor-lang";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://downloads.factorcode.org/releases/${version}/factor-src-${version}.zip";
+ sha256 = "01ip9mbnar4sv60d2wcwfz62qaamdvbykxw3gbhzqa25z36vi3ri";
+ };
+
+ patches = [
+ ./staging-command-line-0.98-pre.patch
+ ./workdir-0.98-pre.patch
+ ./adjust-paths-in-unit-tests.patch
+ ];
+
+ nativeBuildInputs = [ git makeWrapper curl unzip wrapLocalFactor ];
+ buildInputs = runtimeLibs;
+
+ postPatch = ''
+ sed -ie '4i GIT_LABEL = heads/master-${rev}' GNUmakefile
+
+ # There is no ld.so.cache in NixOS so we patch out calls to that completely.
+ # This should work as long as no application code relies on `find-library*`
+ # to return a match, which currently is the case and also a justified assumption.
+
+ sed -ie "s#/sbin/ldconfig -p#cat $out/lib/factor/ld.so.cache#g" \
+ basis/alien/libraries/finder/linux/linux.factor
+
+ # Some other hard-coded paths to fix:
+ sed -i 's#/usr/share/zoneinfo/#${tzdata}/share/zoneinfo/#g' \
+ extra/tzinfo/tzinfo.factor
+
+ sed -i 's#/usr/share/terminfo#${ncurses.out}/share/terminfo#g' \
+ extra/terminfo/terminfo.factor
+
+ # De-memoize xdg-* functions, otherwise they break the image.
+ sed -ie 's/^MEMO:/:/' basis/xdg/xdg.factor
+
+ # update default paths in factor-listener.el for fuel mode
+ substituteInPlace misc/fuel/fuel-listener.el \
+ --replace '(defcustom fuel-factor-root-dir nil' "(defcustom fuel-factor-root-dir \"$out/lib/factor\""
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ # Necessary here, because ld.so.cache is needed in its final location during rebuild.
+ mkdir -p $out/bin $out/lib/factor
+ patchShebangs ./build.sh
+ # Factor uses XDG_CACHE_HOME for cache during compilation.
+ # We can't have that. So, set it to $TMPDIR/.cache
+ export XDG_CACHE_HOME=$TMPDIR/.cache && mkdir -p $XDG_CACHE_HOME
+
+ # There is no ld.so.cache in NixOS so we construct one
+ # out of known libraries. The side effect is that find-lib
+ # will work only on the known libraries. There does not seem
+ # to be a generic solution here.
+ find $(echo ${lib.makeLibraryPath runtimeLibs} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
+ (echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
+ for l in $(<$TMPDIR/so.lst); do
+ echo " $(basename $l) (libc6,x86-64) => $l";
+ done)> $out/lib/factor/ld.so.cache
+
+ make -j$NIX_BUILD_CORES linux-x86-64
+ ./build.sh bootstrap
+ runHook postBuild
+ '';
+
+ # For now, the check phase runs, but should always return 0. This way the logs
+ # contain the test failures until all unit tests are fixed. Then, it should
+ # return 1 if any test failures have occured.
+ doCheck = false;
+ checkPhase = ''
+ runHook preCheck
+ set +e
+ ./factor -e='USING: tools.test zealot.factor sequences namespaces formatting ;
+ zealot-core-vocabs "compiler" suffix [ test ] each :test-failures
+ test-failures get length "Number of failed Tests: %d\n" printf'
+ [ $? -eq 0 ] || {
+ mkdir -p "$out/nix-support"
+ touch "$out/nix-support/failed"
+ }
+ set -e
+ runHook postCheck
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ cp -r factor factor.image LICENSE.txt README.md basis core extra misc $out/lib/factor
+
+ # Create a wrapper in bin/ and lib/factor/
+ ${wrapFactorScript { from = "$out/lib/factor/factor"; inherit runtimeLibs; }}
+ mv $out/lib/factor/factor.image $out/lib/factor/.factor-wrapped.image
+ cp $out/lib/factor/factor $out/bin/
+
+ # Emacs fuel expects the image being named `factor.image` in the factor base dir
+ ln -s $out/lib/factor/.factor-wrapped.image $out/lib/factor/factor.image
+
+ # install fuel mode for emacs
+ mkdir -p $out/share/emacs/site-lisp
+ ln -s $out/lib/factor/misc/fuel/*.el $out/share/emacs/site-lisp/
+ runHook postInstall
+ '';
+
+ passthru = {
+ inherit runtimeLibs wrapFactorScript;
+ withLibs = wrapFactor;
+ };
+
+ meta = with lib; {
+ homepage = "https://factorcode.org/";
+ description = "A concatenative, stack-based programming language";
+ longDescription = ''
+ The Factor programming language is a concatenative, stack-based
+ programming language with high-level features including dynamic types,
+ extensible syntax, macros, and garbage collection. On a practical side,
+ Factor has a full-featured library, supports many different platforms, and
+ has been extensively documented.
+
+ The implementation is fully compiled for performance, while still
+ supporting interactive development. Factor applications are portable
+ between all common platforms. Factor can deploy stand-alone applications
+ on all platforms. Full source code for the Factor project is available
+ under a BSD license.
+ '';
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ vrthra spacefrogg ];
+ platforms = lib.intersectLists platforms.x86_64 platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/fuel-dir.patch b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/fuel-dir.patch
deleted file mode 100644
index 8f45b03724..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/fuel-dir.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/misc/fuel/fuel-listener.el b/misc/fuel/fuel-listener.el
-index 2d1b182a75..bf2e573425 100644
---- a/misc/fuel/fuel-listener.el
-+++ b/misc/fuel/fuel-listener.el
-@@ -30,13 +30,13 @@
- "Interacting with a Factor listener inside Emacs."
- :group 'fuel)
-
--(defcustom fuel-factor-root-dir nil
-+(defcustom fuel-factor-root-dir "@fuel_factor_root_dir@"
- "Full path to the factor root directory when starting a listener."
- :type 'directory
- :group 'fuel-listener)
-
- ;;; Is factor.com still valid on Windows...?
--(defcustom fuel-listener-factor-binary nil
-+(defcustom fuel-listener-factor-binary "@fuel_listener_factor_binary@"
- "Full path to the factor executable to use when starting a listener."
- :type '(file :must-match t)
- :group 'fuel-listener)
diff --git a/third_party/nixpkgs/pkgs/development/compilers/factor-lang/scope.nix b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/scope.nix
new file mode 100644
index 0000000000..02f0f88963
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/factor-lang/scope.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs
+, overrides ? (self: super: {})}:
+
+let
+ inside = (self:
+ let callPackage = pkgs.newScope self;
+ in rec {
+ interpreter = callPackage ./factor98.nix { inherit (pkgs) stdenv; };
+
+ # Convenience access for using the returned attribute the same way as the
+ # interpreter derivation. Takes a list of runtime libraries as its only
+ # argument.
+ inherit (self.interpreter) withLibs;
+ });
+ extensible-self = lib.makeExtensible (lib.extends overrides inside);
+in extensible-self
diff --git a/third_party/nixpkgs/pkgs/development/compilers/fennel/default.nix b/third_party/nixpkgs/pkgs/development/compilers/fennel/default.nix
index bae976a9b6..ec6b3d619e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/fennel/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/fennel/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fennel";
- version = "0.10.0";
+ version = "1.0.0";
src = fetchFromSourcehut {
owner = "~technomancy";
repo = pname;
rev = version;
- sha256 = "sha256-/xCnaDNZJTBGxIgjPUVeEyMVeRWg8RCNuo5nPpLrJXY=";
+ sha256 = "sha256-HhxFTWC1gBY76pQzhn6EdgYHpYQr9zkUox0r4YC7mTQ=";
};
nativeBuildInputs = [ installShellFiles ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/flutter/flutter.nix b/third_party/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
index e0ede49b09..d700f686f6 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
@@ -156,7 +156,10 @@ runCommand drvName
'';
preferLocalBuild = true;
allowSubstitutes = false;
- passthru = { unwrapped = flutter; };
+ passthru = {
+ unwrapped = flutter;
+ inherit dart;
+ };
meta = with lib; {
description = "Flutter is Google's SDK for building mobile, web and desktop with Dart";
longDescription = ''
@@ -166,7 +169,7 @@ runCommand drvName
homepage = "https://flutter.dev";
license = licenses.bsd3;
platforms = [ "x86_64-linux" ];
- maintainers = with maintainers; [ babariviere ericdallo thiagokokada ];
+ maintainers = with maintainers; [ babariviere ericdallo ];
};
} ''
mkdir -p $out/bin
diff --git a/third_party/nixpkgs/pkgs/development/compilers/fstar/default.nix b/third_party/nixpkgs/pkgs/development/compilers/fstar/default.nix
index 9c25f9ec94..97fa1dbe3d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/fstar/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/fstar/default.nix
@@ -1,36 +1,20 @@
{ lib, stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }:
-let
- # FStar requires sedlex < 2.4
- # see https://github.com/FStarLang/FStar/issues/2343
- sedlex-2_3 = ocamlPackages.sedlex_2.overrideAttrs (_: rec {
- pname = "sedlex";
- version = "2.3";
- src = fetchFromGitHub {
- owner = "ocaml-community";
- repo = "sedlex";
- rev = "v${version}";
- sha256 = "WXUXUuIaBUrFPQOKtZ7dgDZYdpEVnoJck0dkrCi8g0c=";
- };
- });
-in
-
stdenv.mkDerivation rec {
pname = "fstar";
- version = "2021.10.16";
+ version = "2021.11.27";
src = fetchFromGitHub {
owner = "FStarLang";
repo = "FStar";
rev = "v${version}";
- sha256 = "03b693s7s7dzflv5qkf61gd8ji9bn6fq4pxd8pd3a6ppkwj6b5vc";
+ sha256 = "sha256-OpY7vDb37ym4srsmD+deXiuofUJKRyKXG7g3zsJKvHo=";
};
nativeBuildInputs = [ makeWrapper installShellFiles ];
buildInputs = [
z3
- sedlex-2_3
] ++ (with ocamlPackages; [
ocaml
findlib
@@ -43,6 +27,7 @@ stdenv.mkDerivation rec {
menhir
menhirLib
pprint
+ sedlex_2
ppxlib
ppx_deriving
ppx_deriving_yojson
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/10/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/10/default.nix
index edb9b1ba71..53c9ac806e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/10/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/10/default.nix
@@ -8,20 +8,22 @@
stdenv.mkDerivation rec {
pname = "gcc-arm-embedded";
version = "10.3.1";
- release = "10.3-2021.07";
+ release = "10.3-2021.10";
suffix = {
+ aarch64-darwin = "mac"; # use intel binaries via rosetta
aarch64-linux = "aarch64-linux";
- x86_64-darwin = "mac-10.14.6";
+ x86_64-darwin = "mac";
x86_64-linux = "x86_64-linux";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
src = fetchurl {
url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${release}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
sha256 = {
- aarch64-linux = "0y4nyrff5bq90v44z2h90gqgl18bs861i9lygx4z89ym85jycx9s";
- x86_64-darwin = "1r3yidmgx1xq1f19y2c5njf2g95vs9cssmmsxsb68qm192r58i8a";
- x86_64-linux = "1skcalz1sr0hhpjcl8qjsqd16n2w0zrbnlrbr8sx0g728kiqsnwc";
+ aarch64-darwin = "0fr8pki2g4bfk1rk90dzwql37d0b71ngzs9zyx0g2jainan3sqgv";
+ aarch64-linux = "020j8gkzc0i0b74vz98gvngnwjm5222j1gk5nswfk6587krba1gn";
+ x86_64-darwin = "0fr8pki2g4bfk1rk90dzwql37d0b71ngzs9zyx0g2jainan3sqgv";
+ x86_64-linux = "18y92vpl22hf74yqdvmpw8adrkl92s4crzzs6avm05md37qb9nwp";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
@@ -49,6 +51,6 @@ stdenv.mkDerivation rec {
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
maintainers = with maintainers; [ prusnak ];
- platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/6/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
index a0d414d974..6d7eed7293 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
subdir = "6-2017q2";
suffix = {
+ aarch64-darwin = "mac"; # use intel binaries via rosetta
x86_64-darwin = "mac";
x86_64-linux = "linux";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
sha256 = {
+ aarch64-darwin = "0019ylpq4inq7p5gydpmc9m8ni72fz2csrjlqmgx1698998q0c3x";
x86_64-darwin = "0019ylpq4inq7p5gydpmc9m8ni72fz2csrjlqmgx1698998q0c3x";
x86_64-linux = "1hvwi02mx34al525sngnl0cm7dkmzxfkb1brq9kvbv28wcplp3p6";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -48,6 +50,6 @@ stdenv.mkDerivation rec {
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
maintainers = with maintainers; [ prusnak ];
- platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
index 4df2a90f52..36dc4fb12e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
subdir = "7-2018q2";
suffix = {
+ aarch64-darwin = "mac"; # use intel binaries via rosetta
x86_64-darwin = "mac";
x86_64-linux = "linux";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
sha256 = {
+ aarch64-darwin = "0nc7m0mpa39qyhfyydxkkyqm7spfc27xf6ygi2vd2aym4r9azi61";
x86_64-darwin = "0nc7m0mpa39qyhfyydxkkyqm7spfc27xf6ygi2vd2aym4r9azi61";
x86_64-linux = "0sgysp3hfpgrkcbfiwkp0a7ymqs02khfbrjabm52b5z61sgi05xv";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -48,6 +50,6 @@ stdenv.mkDerivation rec {
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
maintainers = with maintainers; [ prusnak ];
- platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/8/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
index 152ecdb867..25d8b611f3 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
subdir = "8-2019q3/RC1.1";
suffix = {
+ aarch64-darwin = "mac"; # use intel binaries via rosetta
x86_64-darwin = "mac";
x86_64-linux = "linux";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
sha256 = {
+ aarch64-darwin = "fc235ce853bf3bceba46eff4b95764c5935ca07fc4998762ef5e5b7d05f37085";
x86_64-darwin = "fc235ce853bf3bceba46eff4b95764c5935ca07fc4998762ef5e5b7d05f37085";
x86_64-linux = "b50b02b0a16e5aad8620e9d7c31110ef285c1dde28980b1a9448b764d77d8f92";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -48,6 +50,6 @@ stdenv.mkDerivation rec {
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
maintainers = with maintainers; [ prusnak ];
- platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/9/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/9/default.nix
index c625134508..2254b60077 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/9/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc-arm-embedded/9/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
subdir = "9-2020q2";
suffix = {
+ aarch64-darwin = "mac"; # use intel binaries via rosetta
aarch64-linux = "aarch64-linux";
x86_64-darwin = "mac";
x86_64-linux = "x86_64-linux";
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
sha256 = {
+ aarch64-darwin = "1ils9z16wrvglh72m428y5irmd36biq79yj86756whib8izbifdv";
aarch64-linux = "1b5q2y710hy7lddj8vj3zl54gfl74j30kx3hk3i81zrcbv16ah8z";
x86_64-darwin = "1ils9z16wrvglh72m428y5irmd36biq79yj86756whib8izbifdv";
x86_64-linux = "07zi2yr5gvhpbij5pnj49zswb9g2gw7zqp4xwwniqmq477h2xp2s";
@@ -50,6 +52,6 @@ stdenv.mkDerivation rec {
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
maintainers = with maintainers; [ prusnak ];
- platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc/11/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc/11/default.nix
index 850b267441..f71f941540 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc/11/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc/11/default.nix
@@ -57,7 +57,7 @@ with lib;
with builtins;
let majorVersion = "11";
- version = "${majorVersion}.1.0";
+ version = "${majorVersion}.2.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -78,9 +78,7 @@ let majorVersion = "11";
})
# Obtain latest patch with ../update-mcfgthread-patches.sh
- ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
-
- ++ [ ../libsanitizer-no-cyclades.patch ];
+ ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch;
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
@@ -97,7 +95,7 @@ stdenv.mkDerivation ({
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
- sha256 = "1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc";
+ sha256 = "sha256-0I7cU2tUw3KhAQ/2YZ3SdMDxYDqkkhK6IPeqLNo2+os=";
};
inherit patches;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gcc/8/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gcc/8/default.nix
index a6fd34c60c..01deb2727b 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gcc/8/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gcc/8/default.nix
@@ -54,7 +54,7 @@ with lib;
with builtins;
let majorVersion = "8";
- version = "${majorVersion}.4.0";
+ version = "${majorVersion}.5.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -90,7 +90,7 @@ stdenv.mkDerivation ({
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
- sha256 = "1m1d3gfix56w4aq8myazzfffkl8bqcrx4jhhapnjf7qfs596w2p3";
+ sha256 = "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k";
};
inherit patches;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
index bf909016ac..a29a5b0b5a 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
@@ -3,6 +3,8 @@
, ncurses5
, ncurses6, gmp, libiconv, numactl
, llvmPackages
+, coreutils
+, targetPackages
# minimal = true; will remove files that aren't strictly necessary for
# regular builds and GHC bootstrapping.
@@ -140,6 +142,19 @@ let
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
+ "LD_LIBRARY_PATH";
+ runtimeDeps = [
+ targetPackages.stdenv.cc
+ targetPackages.stdenv.cc.bintools
+ coreutils # for cat
+ ]
+ ++ lib.optionals useLLVM [
+ (lib.getBin llvmPackages.llvm)
+ ]
+ # On darwin, we need unwrapped bintools as well (for otool)
+ ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
+ targetPackages.stdenv.cc.bintools.bintools
+ ];
+
in
stdenv.mkDerivation rec {
@@ -156,7 +171,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ perl ];
propagatedBuildInputs =
- lib.optionals useLLVM [ llvmPackages.llvm ]
# Because musl bindists currently provide no way to tell where
# libgmp is (see not [musl bindists have no .buildinfo]), we need
# to propagate `gmp`, otherwise programs built by this ghc will
@@ -177,7 +191,7 @@ stdenv.mkDerivation rec {
# fixing the above-mentioned release issue,
# and for GHC >= 9.* it is not clear as of writing whether that switch
# will be made there too.
- ++ lib.optionals stdenv.hostPlatform.isMusl [ gmp ]; # musl bindist needs this
+ lib.optionals stdenv.hostPlatform.isMusl [ gmp ]; # musl bindist needs this
# Set LD_LIBRARY_PATH or equivalent so that the programs running as part
# of the bindist installer can find the libraries they expect.
@@ -278,6 +292,15 @@ stdenv.mkDerivation rec {
# calls install-strip ...
dontBuild = true;
+ # Patch scripts to include runtime dependencies in $PATH.
+ postInstall = ''
+ for i in "$out/bin/"*; do
+ test ! -h "$i" || continue
+ isScript "$i" || continue
+ sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
+ done
+ '';
+
# Apparently necessary for the ghc Alpine (musl) bindist:
# When we strip, and then run the
# patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
@@ -360,7 +383,6 @@ stdenv.mkDerivation rec {
doInstallCheck = true;
installCheckPhase = ''
- unset ${libEnvVar}
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
@@ -369,7 +391,9 @@ stdenv.mkDerivation rec {
module Main where
main = putStrLn \$([|"yes"|])
EOF
- $out/bin/ghc --make main.hs || exit 1
+ # can't use env -i here because otherwise we don't find -lgmp on musl
+ env ${libEnvVar}= PATH= \
+ $out/bin/ghc --make main.hs || exit 1
echo compilation ok
[ $(./main) == "yes" ]
'';
@@ -378,6 +402,8 @@ stdenv.mkDerivation rec {
targetPrefix = "";
enableShared = true;
+ inherit llvmPackages;
+
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7-binary.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7-binary.nix
index 58be16dc56..7b10f60aff 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7-binary.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7-binary.nix
@@ -3,6 +3,8 @@
, ncurses5
, ncurses6, gmp, libiconv, numactl
, llvmPackages
+, coreutils
+, targetPackages
# minimal = true; will remove files that aren't strictly necessary for
# regular builds and GHC bootstrapping.
@@ -155,6 +157,19 @@ let
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
+ "LD_LIBRARY_PATH";
+ runtimeDeps = [
+ targetPackages.stdenv.cc
+ targetPackages.stdenv.cc.bintools
+ coreutils # for cat
+ ]
+ ++ lib.optionals useLLVM [
+ (lib.getBin llvmPackages.llvm)
+ ]
+ # On darwin, we need unwrapped bintools as well (for otool)
+ ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
+ targetPackages.stdenv.cc.bintools.bintools
+ ];
+
in
stdenv.mkDerivation rec {
@@ -175,9 +190,6 @@ stdenv.mkDerivation rec {
# and update this comment accordingly.
nativeBuildInputs = [ perl ];
- propagatedBuildInputs =
- lib.optionals useLLVM [ llvmPackages.llvm ]
- ;
# Set LD_LIBRARY_PATH or equivalent so that the programs running as part
# of the bindist installer can find the libraries they expect.
@@ -278,6 +290,15 @@ stdenv.mkDerivation rec {
# calls install-strip ...
dontBuild = true;
+ # Patch scripts to include runtime dependencies in $PATH.
+ postInstall = ''
+ for i in "$out/bin/"*; do
+ test ! -h "$i" || continue
+ isScript "$i" || continue
+ sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
+ done
+ '';
+
# Apparently necessary for the ghc Alpine (musl) bindist:
# When we strip, and then run the
# patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
@@ -360,7 +381,6 @@ stdenv.mkDerivation rec {
doInstallCheck = true;
installCheckPhase = ''
- unset ${libEnvVar}
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
@@ -369,7 +389,7 @@ stdenv.mkDerivation rec {
module Main where
main = putStrLn \$([|"yes"|])
EOF
- $out/bin/ghc --make main.hs || exit 1
+ env -i $out/bin/ghc --make main.hs || exit 1
echo compilation ok
[ $(./main) == "yes" ]
'';
@@ -378,6 +398,8 @@ stdenv.mkDerivation rec {
targetPrefix = "";
enableShared = true;
+ inherit llvmPackages;
+
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix
index 7e59bd974a..40b57223fa 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
# build-tools
, bootPkgs
@@ -11,11 +11,13 @@
, # GHC can be built with system libffi or a bundled one.
libffi ? null
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+ || stdenv.targetPlatform.isPowerPC
+ || stdenv.targetPlatform.isSparc)
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
- buildLlvmPackages, llvmPackages
+ buildTargetLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library.
@@ -120,26 +122,37 @@ let
++ lib.optional (!enableIntegerSimple) gmp
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+ # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+ # GHC doesn't seem to have {LLC,OPT}_HOST
toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+ ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
targetCC = builtins.head toolsForTarget;
+ # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+ # derivation for certain tools depending on the platform.
+ bintoolsFor = {
+ # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+ # part of the bintools wrapper (due to codesigning requirements), but not on
+ # x86_64-darwin.
+ install_name_tool =
+ if stdenv.targetPlatform.isAarch64
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ # Same goes for strip.
+ strip =
+ # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+ if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ };
+
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" ||
- (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
- runtimeDeps = [
- targetPackages.stdenv.cc.bintools
- coreutils
- ]
- # On darwin, we need unwrapped bintools as well (for otool)
- ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
- targetPackages.stdenv.cc.bintools.bintools
- ];
+ (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
variantSuffix = lib.concatStrings [
@@ -148,6 +161,14 @@ let
];
in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
stdenv.mkDerivation (rec {
version = "8.10.7";
pname = "${targetPrefix}ghc${variantSuffix}";
@@ -196,6 +217,7 @@ stdenv.mkDerivation (rec {
postPatch = "patchShebangs .";
# GHC is a bit confused on its cross terminology.
+ # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
@@ -211,7 +233,17 @@ stdenv.mkDerivation (rec {
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
- export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+ export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+ '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+ export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+ export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+ '' + lib.optionalString useLLVM ''
+ export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+ export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+ '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+ # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+ export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+ '' + ''
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -290,9 +322,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ lib.optional useLLVM llvmPackages.llvm;
-
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@@ -320,13 +349,6 @@ stdenv.mkDerivation (rec {
postInstall = ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
- done
'';
passthru = {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
index b1126fda7d..22bfae79c0 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -2,6 +2,8 @@
, fetchurl, perl, gcc
, ncurses5, ncurses6, gmp, glibc, libiconv
, llvmPackages
+, coreutils
+, targetPackages
}:
# Prebuilt only does native
@@ -30,6 +32,19 @@ let
downloadsUrl = "https://downloads.haskell.org/ghc";
+ runtimeDeps = [
+ targetPackages.stdenv.cc
+ targetPackages.stdenv.cc.bintools
+ coreutils # for cat
+ ]
+ ++ lib.optionals useLLVM [
+ (lib.getBin llvmPackages.llvm)
+ ]
+ # On darwin, we need unwrapped bintools as well (for otool)
+ ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
+ targetPackages.stdenv.cc.bintools.bintools
+ ];
+
in
stdenv.mkDerivation rec {
@@ -62,7 +77,6 @@ stdenv.mkDerivation rec {
or (throw "cannot bootstrap GHC on this platform"));
nativeBuildInputs = [ perl ];
- propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
# Cannot patchelf beforehand due to relative RPATHs that anticipate
# the final install location/
@@ -130,6 +144,15 @@ stdenv.mkDerivation rec {
# calls install-strip ...
dontBuild = true;
+ # Patch scripts to include runtime dependencies in $PATH.
+ postInstall = ''
+ for i in "$out/bin/"*; do
+ test ! -h "$i" || continue
+ isScript "$i" || continue
+ sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
+ done
+ '';
+
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
postFixup = lib.optionalString stdenv.isLinux ''
@@ -163,7 +186,6 @@ stdenv.mkDerivation rec {
doInstallCheck = true;
installCheckPhase = ''
- unset ${libEnvVar}
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
@@ -172,7 +194,7 @@ stdenv.mkDerivation rec {
module Main where
main = putStrLn \$([|"yes"|])
EOF
- $out/bin/ghc --make main.hs || exit 1
+ env -i $out/bin/ghc --make main.hs || exit 1
echo compilation ok
[ $(./main) == "yes" ]
'';
@@ -181,14 +203,15 @@ stdenv.mkDerivation rec {
targetPrefix = "";
enableShared = true;
+ inherit llvmPackages;
+
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
};
meta = rec {
license = lib.licenses.bsd3;
- platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
- hydraPlatforms = builtins.filter (p: p != "aarch64-linux") platforms;
+ platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
# build segfaults, use ghc8102Binary which has proper musl support instead
broken = stdenv.hostPlatform.isMusl;
maintainers = with lib.maintainers; [
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
index 1d31ffba41..3ce47a20ba 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
# build-tools
, bootPkgs
@@ -10,11 +10,13 @@
, # GHC can be built with system libffi or a bundled one.
libffi ? null
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+ || stdenv.targetPlatform.isPowerPC
+ || stdenv.targetPlatform.isSparc)
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
- buildLlvmPackages, llvmPackages
+ buildTargetLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library.
@@ -128,9 +130,11 @@ let
++ lib.optional (!enableIntegerSimple) gmp
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+ # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+ # GHC doesn't seem to have {LLC,OPT}_HOST
toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+ ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
targetCC = builtins.head toolsForTarget;
@@ -138,16 +142,7 @@ let
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" ||
- (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
- runtimeDeps = [
- targetPackages.stdenv.cc.bintools
- coreutils
- ]
- # On darwin, we need unwrapped bintools as well (for otool)
- ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
- targetPackages.stdenv.cc.bintools.bintools
- ];
+ (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
variantSuffix = lib.concatStrings [
@@ -156,6 +151,14 @@ let
];
in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
stdenv.mkDerivation (rec {
version = "8.8.4";
pname = "${targetPrefix}ghc${variantSuffix}";
@@ -197,6 +200,7 @@ stdenv.mkDerivation (rec {
postPatch = "patchShebangs .";
# GHC is a bit confused on its cross terminology.
+ # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
preConfigure =
# Aarch64 allow backward bootstrapping since earlier versions are unstable.
# Same for musl, as earlier versions do not provide a musl bindist for bootstrapping.
@@ -220,6 +224,13 @@ stdenv.mkDerivation (rec {
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+ '' + lib.optionalString useLLVM ''
+ export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+ export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+ '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+ # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+ export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+ '' + ''
echo -n "${buildMK dontStrip}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -293,9 +304,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ lib.optional useLLVM llvmPackages.llvm;
-
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@@ -319,13 +327,6 @@ stdenv.mkDerivation (rec {
postInstall = ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
- done
'';
passthru = {
@@ -345,7 +346,17 @@ stdenv.mkDerivation (rec {
guibou
] ++ lib.teams.haskell.members;
timeout = 24 * 3600;
- inherit (ghc.meta) license platforms;
+ inherit (ghc.meta) license;
+ # hardcode platforms because the bootstrap GHC differs depending on the platform,
+ # with differing platforms available for each of them; See HACK comment in
+ # 8.10.2-binary.nix for an explanation of the musl special casing.
+ platforms = [
+ "x86_64-linux"
+ ] ++ lib.optionals (!hostPlatform.isMusl) [
+ "i686-linux"
+ "aarch64-linux"
+ "x86_64-darwin"
+ ];
# integer-simple builds are broken with musl when bootstrapping using
# GHC 8.10.2 and below, however it is not possible to reverse bootstrap
# GHC 8.8.4 with GHC 8.10.7.
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix
index a673276239..3f13fe1b9e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
# build-tools
, bootPkgs
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
+, autoSignDarwinBinariesHook
, bash
, libiconv ? null, ncurses
@@ -11,11 +12,13 @@
, # GHC can be built with system libffi or a bundled one.
libffi ? null
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+ || stdenv.targetPlatform.isPowerPC
+ || stdenv.targetPlatform.isSparc)
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
- buildLlvmPackages, llvmPackages
+ buildTargetLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library.
@@ -114,26 +117,37 @@ let
++ lib.optional (!enableIntegerSimple) gmp
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+ # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+ # GHC doesn't seem to have {LLC,OPT}_HOST
toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+ ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
targetCC = builtins.head toolsForTarget;
+ # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+ # derivation for certain tools depending on the platform.
+ bintoolsFor = {
+ # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+ # part of the bintools wrapper (due to codesigning requirements), but not on
+ # x86_64-darwin.
+ install_name_tool =
+ if stdenv.targetPlatform.isAarch64
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ # Same goes for strip.
+ strip =
+ # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+ if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ };
+
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" ||
- (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
- runtimeDeps = [
- targetPackages.stdenv.cc.bintools
- coreutils
- ]
- # On darwin, we need unwrapped bintools as well (for otool)
- ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
- targetPackages.stdenv.cc.bintools.bintools
- ];
+ (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
variantSuffix = lib.concatStrings [
@@ -142,6 +156,14 @@ let
];
in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
stdenv.mkDerivation (rec {
version = "9.0.1";
pname = "${targetPrefix}ghc${variantSuffix}";
@@ -161,6 +183,7 @@ stdenv.mkDerivation (rec {
LANG = "en_US.UTF-8";
# GHC is a bit confused on its cross terminology.
+ # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
@@ -176,7 +199,17 @@ stdenv.mkDerivation (rec {
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
- export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+ export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+ '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+ export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+ export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+ '' + lib.optionalString useLLVM ''
+ export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+ export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+ '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+ # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+ export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+ '' + ''
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -243,6 +276,8 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [
perl autoconf automake m4 python3
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
+ ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+ autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
sphinx
];
@@ -252,9 +287,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ lib.optional useLLVM llvmPackages.llvm;
-
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@@ -282,13 +314,6 @@ stdenv.mkDerivation (rec {
postInstall = ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
- done
'';
passthru = {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/9.2.1.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/9.2.1.nix
index 703ba0a705..77d741a4f2 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/9.2.1.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/9.2.1.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
# build-tools
, bootPkgs
-, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, xattr
+, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
+, xattr, autoSignDarwinBinariesHook
, bash
, libiconv ? null, ncurses
@@ -11,11 +12,14 @@
, # GHC can be built with system libffi or a bundled one.
libffi ? null
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+ || stdenv.targetPlatform.isPowerPC
+ || stdenv.targetPlatform.isSparc
+ || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
- buildLlvmPackages, llvmPackages
+ buildTargetLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library.
@@ -43,7 +47,7 @@
enableDocs ? (
# Docs disabled for musl and cross because it's a large task to keep
# all `sphinx` dependencies building in those environments.
- # `sphinx` pullls in among others:
+ # `sphinx` pulls in among others:
# Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM.
(stdenv.targetPlatform == stdenv.hostPlatform)
&& !stdenv.hostPlatform.isMusl
@@ -114,25 +118,37 @@ let
++ lib.optional (!enableIntegerSimple) gmp
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+ # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+ # GHC doesn't seem to have {LLC,OPT}_HOST
toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+ ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
targetCC = builtins.head toolsForTarget;
+ # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+ # derivation for certain tools depending on the platform.
+ bintoolsFor = {
+ # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+ # part of the bintools wrapper (due to codesigning requirements), but not on
+ # x86_64-darwin.
+ install_name_tool =
+ if stdenv.targetPlatform.isAarch64
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ # Same goes for strip.
+ strip =
+ # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+ if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ };
+
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background.
- useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl);
-
- runtimeDeps = [
- targetPackages.stdenv.cc.bintools
- coreutils
- ]
- # On darwin, we need unwrapped bintools as well (for otool)
- ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
- targetPackages.stdenv.cc.bintools.bintools
- ];
+ useLdGold = targetPlatform.linker == "gold" ||
+ (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
variantSuffix = lib.concatStrings [
@@ -141,25 +157,23 @@ let
];
in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
stdenv.mkDerivation (rec {
- version = "9.2.0.20210821";
+ version = "9.2.1";
pname = "${targetPrefix}ghc${variantSuffix}";
src = fetchurl {
- url = "https://downloads.haskell.org/ghc/9.2.1-rc1/ghc-${version}-src.tar.xz";
- sha256 = "1q2pppxv2avhykyxvyq72r5p97rkkiqp19b77yhp85ralbcp4ivw";
+ url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
+ sha256 = "f444012f97a136d9940f77cdff03fda48f9475e2ed0fec966c4d35c4df55f746";
};
- patches = [
- # picked from release branch, remove with the next release candidate,
- # see https://gitlab.haskell.org/ghc/ghc/-/issues/19950#note_373726
- (fetchpatch {
- name = "fix-darwin-link-failure.patch";
- url = "https://gitlab.haskell.org/ghc/ghc/-/commit/77456387025ca74299ecc70621cbdb62b1b6ffc9.patch";
- sha256 = "1g8smrn7hj8cbp9fhrylvmrb15s0xd8lhdgxqnx0asnd4az82gj8";
- })
- ];
-
enableParallelBuilding = true;
outputs = [ "out" "doc" ];
@@ -170,6 +184,7 @@ stdenv.mkDerivation (rec {
LANG = "en_US.UTF-8";
# GHC is a bit confused on its cross terminology.
+ # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
@@ -185,7 +200,17 @@ stdenv.mkDerivation (rec {
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
- export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+ export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+ '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+ export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+ export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+ '' + lib.optionalString useLLVM ''
+ export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+ export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+ '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+ # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+ export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+ '' + ''
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -252,10 +277,12 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [
perl autoconf automake m4 python3
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
+ ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+ autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
sphinx
] ++ lib.optionals stdenv.isDarwin [
- # TODO(@sternenseemann): use XATTR env var after backport of
+ # TODO(@sternenseemann): backport addition of XATTR env var like
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6447
xattr
];
@@ -265,9 +292,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ lib.optional useLLVM llvmPackages.llvm;
-
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@@ -295,13 +319,6 @@ stdenv.mkDerivation (rec {
postInstall = ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
- done
'';
passthru = {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghc/head.nix b/third_party/nixpkgs/pkgs/development/compilers/ghc/head.nix
index 9cca803ab2..9a57674461 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghc/head.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghc/head.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
# build-tools
, bootPkgs
-, autoconf, autoreconfHook, automake, coreutils, fetchgit, perl, python3, m4, sphinx, xattr
+, autoconf, autoreconfHook, automake, coreutils, fetchgit, perl, python3, m4, sphinx
+, xattr, autoSignDarwinBinariesHook
, bash
, libiconv ? null, ncurses
@@ -16,11 +17,14 @@
!stdenv.targetPlatform.isWindows
, elfutils # for DWARF support
-, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
+, useLLVM ? !(stdenv.targetPlatform.isx86
+ || stdenv.targetPlatform.isPowerPC
+ || stdenv.targetPlatform.isSparc
+ || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
- buildLlvmPackages, llvmPackages
+ buildTargetLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slightly slower native
# bignum backend instead of the faster but GPLed gmp backend.
@@ -37,10 +41,7 @@
# platform). Static libs are always built.
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
-, # Whether to build terminfo.
- enableTerminfo ? !stdenv.targetPlatform.isWindows
-
-, version ? "9.3.20210913"
+, version ? "9.3.20211111"
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -115,35 +116,52 @@ let
GhcRtsHcOpts += -fPIC
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
EXTRA_CC_OPTS += -std=gnu99
+ ''
+ # While split sections are now enabled by default in ghc 8.8 for windows,
+ # they seem to lead to `too many sections` errors when building base for
+ # profiling.
+ + lib.optionalString targetPlatform.isWindows ''
+ SplitSections = NO
'';
# Splicer will pull out correct variations
- libDeps = platform: lib.optional enableTerminfo ncurses
- ++ [libffi]
+ libDeps = platform:
+ [libffi ncurses]
++ lib.optional (!enableNativeBignum) gmp
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ lib.optional enableDwarf elfutils;
+ # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+ # GHC doesn't seem to have {LLC,OPT}_HOST
toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc
- ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+ ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
targetCC = builtins.head toolsForTarget;
+ # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+ # derivation for certain tools depending on the platform.
+ bintoolsFor = {
+ # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+ # part of the bintools wrapper (due to codesigning requirements), but not on
+ # x86_64-darwin.
+ install_name_tool =
+ if stdenv.targetPlatform.isAarch64
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ # Same goes for strip.
+ strip =
+ # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+ if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+ then targetCC.bintools
+ else targetCC.bintools.bintools;
+ };
+
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" ||
- (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
- runtimeDeps = [
- targetPackages.stdenv.cc.bintools
- coreutils
- ]
- # On darwin, we need unwrapped bintools as well (for otool)
- ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
- targetPackages.stdenv.cc.bintools.bintools
- ];
+ (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
variantSuffix = lib.concatStrings [
@@ -152,6 +170,14 @@ let
];
in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
stdenv.mkDerivation (rec {
inherit version;
inherit (src) rev;
@@ -159,8 +185,8 @@ stdenv.mkDerivation (rec {
src = fetchgit {
url = "https://gitlab.haskell.org/ghc/ghc.git/";
- rev = "64923cf295ea914db458547432237a5ed1eff571";
- sha256 = "1s9sm4gf4r71lk0s7h9v217rxfwjf435q1jji90hlxz23wvmhr6d";
+ rev = "cc635da167fdec2dead0603b0026cb841f0aa645";
+ sha256 = "1lj76l546zriwkcn2r7i5a4j35bx9fh5iggwfz2xvhh8aq8j2i46";
};
enableParallelBuilding = true;
@@ -170,6 +196,7 @@ stdenv.mkDerivation (rec {
postPatch = "patchShebangs .";
# GHC is a bit confused on its cross terminology.
+ # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
@@ -186,7 +213,17 @@ stdenv.mkDerivation (rec {
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
- export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+ export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+ '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+ export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+ export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+ '' + lib.optionalString useLLVM ''
+ export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+ export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+ '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+ # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+ export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+ '' + ''
# otherwise haddock fails when generating the compiler docs
export LANG=C.UTF-8
@@ -263,6 +300,8 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [
perl autoconf autoreconfHook automake m4 python3
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
+ ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+ autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
sphinx
];
@@ -272,9 +311,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
- propagatedBuildInputs = [ targetPackages.stdenv.cc ]
- ++ lib.optional useLLVM llvmPackages.llvm;
-
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@@ -302,13 +338,6 @@ stdenv.mkDerivation (rec {
postInstall = ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
- # Patch scripts to include "readelf" and "cat" in $PATH.
- for i in "$out/bin/"*; do
- test ! -h $i || continue
- egrep --quiet '^#!' <(head -n 1 $i) || continue
- sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
- done
'';
passthru = {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghcjs/8.10/default.nix b/third_party/nixpkgs/pkgs/development/compilers/ghcjs/8.10/default.nix
index f8e7c31353..b6c2f7e72e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghcjs/8.10/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghcjs/8.10/default.nix
@@ -3,7 +3,7 @@
, callPackage
, fetchgit
, ghcjsSrcJson ? null
-, ghcjsSrc ? fetchgit (builtins.fromJSON (builtins.readFile ghcjsSrcJson))
+, ghcjsSrc ? fetchgit (lib.importJSON ghcjsSrcJson)
, bootPkgs
, stage0
, haskellLib
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch b/third_party/nixpkgs/pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch
deleted file mode 100644
index 20e19d8bf8..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/Data/Vector/Storable/Mutable.hs b/Data/Vector/Storable/Mutable.hs
-index 8b538bc..2b74fce 100644
---- a/Data/Vector/Storable/Mutable.hs
-+++ b/Data/Vector/Storable/Mutable.hs
-@@ -197,7 +197,9 @@ storableSet (MVector n fp) x
- 1 -> storableSetAsPrim n fp x (undefined :: Word8)
- 2 -> storableSetAsPrim n fp x (undefined :: Word16)
- 4 -> storableSetAsPrim n fp x (undefined :: Word32)
-+#if !defined(ghcjs_HOST_OS)
- 8 -> storableSetAsPrim n fp x (undefined :: Word64)
-+#endif
- _ -> unsafeWithForeignPtr fp $ \p -> do
- poke p x
-
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ghdl/default.nix b/third_party/nixpkgs/pkgs/development/compilers/ghdl/default.nix
index e7886eb8f5..266ee97a2e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ghdl/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ghdl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, callPackage, gnat, zlib, llvm, lib
+{ stdenv, fetchFromGitHub, fetchpatch, callPackage, gnat, zlib, llvm, lib
, backend ? "mcode" }:
assert backend == "mcode" || backend == "llvm";
@@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
sha256 = "1gyh0xckwbzgslbpw9yrpj4gqs9fm1a2qpbzl0sh143fk1kwjlly";
};
+ patches = [
+ # Allow compilation with GNAT 11, picked from master
+ (fetchpatch {
+ name = "fix-gnat-11-compilation.patch";
+ url = "https://github.com/ghdl/ghdl/commit/8356ea3bb4e8d0e5ad8638c3d50914b64fc360ec.patch";
+ sha256 = "04pzn8g7xha8000wbjjmry6h1grfqyn3bjvj47hi4qwgl21wfjra";
+ })
+ ];
+
LIBRARY_PATH = "${stdenv.cc.libc}/lib";
buildInputs = [ gnat zlib ] ++ lib.optional (backend == "llvm") [ llvm ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/gnatboot/default.nix b/third_party/nixpkgs/pkgs/development/compilers/gnatboot/default.nix
index c68c4fd4ba..a23398d2e1 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/gnatboot/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/gnatboot/default.nix
@@ -10,12 +10,12 @@ stdenv.mkDerivation {
src = if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
- url = mirror://gentoo/distfiles/gnatboot-4.1-i386.tar.bz2;
+ url = "mirror://gentoo/distfiles/gnatboot-4.1-i386.tar.bz2";
sha256 = "0665zk71598204bf521vw68i5y6ccqarq9fcxsqp7ccgycb4lysr";
}
else if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
- url = mirror://gentoo/distfiles/gnatboot-4.1-amd64.tar.bz2;
+ url = "mirror://gentoo/distfiles/gnatboot-4.1-amd64.tar.bz2";
sha256 = "1li4d52lmbnfs6llcshlbqyik2q2q4bvpir0f7n38nagp0h6j0d4";
}
else
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix b/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix
index 8908c6afce..5cba6be889 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix
@@ -274,7 +274,7 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
meta = with lib; {
- homepage = "http://golang.org/";
+ homepage = "https://go.dev/";
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = teams.golang.members;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/1.16.nix b/third_party/nixpkgs/pkgs/development/compilers/go/1.16.nix
index 433d3f9af7..dad133337e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/go/1.16.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/1.16.nix
@@ -51,11 +51,11 @@ in
stdenv.mkDerivation rec {
pname = "go";
- version = "1.16.9";
+ version = "1.16.10";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
- sha256 = "sha256-ChzH/XvSBEj3Hr7WTYRhOIUNUJmxjPXMEKT8RRYNjD0=";
+ sha256 = "sha256-qQVHIBFYXkA9ANKkHefO0puIhDCdc0gqMH9on9DzILU=";
};
# perl is used for testing go vet
@@ -269,7 +269,7 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
meta = with lib; {
- homepage = "http://golang.org/";
+ homepage = "https://go.dev/";
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = teams.golang.members;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/1.17.nix b/third_party/nixpkgs/pkgs/development/compilers/go/1.17.nix
index 279be30942..69322ce6e1 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/go/1.17.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/1.17.nix
@@ -50,11 +50,11 @@ in
stdenv.mkDerivation rec {
pname = "go";
- version = "1.17.2";
+ version = "1.17.4";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
- sha256 = "sha256-IlXrPk6CTdfV/Nwuf4RTQ3HBhjEuVG+xCGo0wXdS9DE=";
+ sha256 = "sha256-S+82mTge8J4HVihQQYdBZWXXEGYP7GWwV+3xzrGH/Es=";
};
# perl is used for testing go vet
@@ -268,12 +268,10 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
meta = with lib; {
- homepage = "http://golang.org/";
+ homepage = "https://go.dev/";
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = teams.golang.members;
platforms = platforms.linux ++ platforms.darwin;
- # requires >=10.13 stdenv on x86_64-darwin
- badPlatforms = [ "x86_64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/2-dev.nix b/third_party/nixpkgs/pkgs/development/compilers/go/2-dev.nix
index 8fd0e2e663..c70133c98b 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/go/2-dev.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/2-dev.nix
@@ -267,7 +267,7 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
meta = with lib; {
- homepage = "http://golang.org/";
+ homepage = "https://go.dev/";
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = teams.golang.members ++ [ maintainers._3noch ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/binary.nix b/third_party/nixpkgs/pkgs/development/compilers/go/binary.nix
index a2fff4f6d0..d8e6b9e71d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/go/binary.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/binary.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
name = "go-${version}-${platform}-bootstrap";
src = fetchurl {
- url = "https://golang.org/dl/go${version}.${platform}.tar.gz";
+ url = "https://go.dev/dl/go${version}.${platform}.tar.gz";
sha256 = hashes.${platform} or (throw "Missing Go bootstrap hash for platform ${platform}");
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/print-hashes.sh b/third_party/nixpkgs/pkgs/development/compilers/go/print-hashes.sh
index 97be7d189a..f095b67c62 100755
--- a/third_party/nixpkgs/pkgs/development/compilers/go/print-hashes.sh
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/print-hashes.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
-BASEURL=https://golang.org/dl/
+BASEURL=https://go.dev/dl/
VERSION=${1:-}
if [[ -z $VERSION ]]
diff --git a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/default.nix b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/default.nix
index 1921b1c4f5..9ce6a98e1c 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/default.nix
@@ -9,10 +9,19 @@ in
inherit mkGraal;
graalvm11-ce = mkGraal rec {
- version = lib.fileContents ./version;
+ version = "21.3.0";
javaVersion = "11";
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
};
- # TODO: added graalvm17-ce
+ # TODO: fix aarch64-linux, failing during Native Image compilation
+ # "Caused by: java.io.IOException: Cannot run program
+ # "/nix/store/1q1mif7h3lgxdaxg6j39hli5azikrfla-gcc-wrapper-9.3.0/bin/gcc" (in
+ # directory"/tmp/SVM-4194439592488143713"): error=0, Failed to exec spawn
+ # helper: pid: 19865, exit value: 1"
+ graalvm17-ce = mkGraal rec {
+ version = "21.3.0";
+ javaVersion = "17";
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/hashes.nix b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/hashes.nix
index 2f59a40f9c..98f3b2703c 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/hashes.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/hashes.nix
@@ -4,39 +4,53 @@
{
sha256 = {
"11-linux-aarch64" = "0hsjxp6ly7jsn9k94fddcl7afc5gda66jyppcnfvslishbizqd0i";
+ "17-linux-aarch64" = "09hzl80m7f5ppmcvryz9aq0yw9scdkp5dqhblrqnkzyhvdjl5ycn";
"11-linux-amd64" = "1ylk5l933z813k0k1xlayiv8fa0f1gmpr66bma51532iy3mch6rs";
+ "17-linux-amd64" = "1xn3shwkai61vvzsg595k8776a21ds00w2pjlscvfcbs1ag07n0i";
"11-darwin-amd64" = "0qpqnnmqxvxzj3mwz05acpg4n8ffqsz0sji8lbl03fgswpvgfavc";
+ "17-darwin-amd64" = "1akpsrd9r2igcls0cvhpqw3jrnh59m8z80knx83lmj0cj836a8v0";
}.${javaVersionPlatform} or null;
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/graalvm-ce-java${javaVersionPlatform}-21.3.0.tar.gz";
}
{
sha256 = {
"11-linux-aarch64" = "0qlmg5fwvqsb5ab3irj2hrcd5jc94mibnlz1gvzpnq85rw1zcb6h";
+ "17-linux-aarch64" = "0jmarhwngs6vpbcgsix0dxhj42qj9vnk3vln8fhdxmydwnns8r1m";
"11-linux-amd64" = "0kvnjr55rizy53vn0ff9w27z1qh9d1vp3s7r1kdl0wyhrbhd8n49";
+ "17-linux-amd64" = "0h14sml42jda54agjs1prfnyjaxxsc67350fr51n8p20nl28lj6z";
"11-darwin-amd64" = "1mg8c8hh8wmbwsisgarmp35jd0dall1fwdv49mggp74hicbc32h3";
+ "17-darwin-amd64" = "0qz0xf2ph9gi45vvri7vphxh35m11nk7sa8nkwxl28l8bza0kb40";
}.${javaVersionPlatform} or null;
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/native-image-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
}
{
sha256 = {
"11-linux-aarch64" = "02rvwl1nng8d3qn226rjx5yq2blxs4yz009ab928qanhmb4vhv8b";
+ "17-linux-aarch64" = "13kaxbgfp9pm6s28i5hfyg957iiwzrxf0ibibkv2yndgj64vj8xg";
"11-linux-amd64" = "0zz62zr7imjaw9a3j5m66xs7c72cqb1i74ab3rnlh0dgs1mdpljg";
+ "17-linux-amd64" = "1v2iwznlav8dsjj30nlhvsvv7pxmyzkhkp1p7spjjma09d34q4iv";
"11-darwin-amd64" = "1wiv0299b2xrc229alczmjfj1bsn90p0wdm64rr39xnyyhbqrr80";
+ "17-darwin-amd64" = "095sii8ibjcvvc6wnxk77ax151c4zgj8bpp81q3kyaazgpzvrk5s";
}.${javaVersionPlatform} or null;
url = "https://github.com/oracle/truffleruby/releases/download/vm-21.3.0/ruby-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
}
{
sha256 = {
"11-linux-aarch64" = "1ck4c1z98h1zn4i6xhh1hb6w2jab6n17ddykb72xxw4vig9nhlc7";
+ "17-linux-aarch64" = "0p9gx5iq730br9wvacxs4403anxnjln6mx8v0dl4w4lhikjxsy8x";
"11-linux-amd64" = "0gy8jj9d9msmj0i44sysiwq3j2k2w2g47fhq6y1aq47n3kmwj9kv";
+ "17-linux-amd64" = "0qk8rgbmnk84isnb33x5bbh17bnnmq9yqasfgy5p953min6pbxj7";
"11-darwin-amd64" = "0agw6k3jn2jh8wyc9h8rvzlgs96qh4nlj0y8nyzsmidvwq2ahl00";
+ "17-darwin-amd64" = "0l1il0rq48sw6sha9jr0xphjgrm7q0kywy8z94mabm9maqh7l3rn";
}.${javaVersionPlatform} or null;
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/wasm-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
}
{
sha256 = {
"11-linux-amd64" = "1l5av2v459q88zfl83877h7b3426z3d86kp6wqjvz2441brvidi0";
+ "17-linux-amd64" = "100p1cgw0z4yfy4axb3gr32m8jnyx1f8bj6f6kk0mf3l8fv2kb7p";
"11-darwin-amd64" = "06694n74dzsfwlli1sjdsrfbj9ngw7bhrcayvy4sgy2va5qpdjs0";
+ "17-darwin-amd64" = "1qwg45q0760lsa62h0nk2zdv0r1npr82bh6p1z3md6pjppm7i025";
}.${javaVersionPlatform} or null;
url = "https://github.com/graalvm/graalpython/releases/download/vm-21.3.0/python-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
index 8b0ff22af0..2b1aa6b646 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
@@ -1,4 +1,4 @@
-{ version, javaVersion, platforms }:
+{ version, javaVersion, platforms, hashes ? import ./hashes.nix }:
{ stdenv, lib, fetchurl, autoPatchelfHook, setJavaClassPath, makeWrapper
# minimum dependencies
@@ -35,9 +35,7 @@ let
maybeFetchUrl = url: if url.sha256 != null then (fetchurl url) else null;
in
(lib.remove null
- (map
- maybeFetchUrl
- (import ./hashes.nix { inherit javaVersionPlatform; })));
+ (map maybeFetchUrl (hashes { inherit javaVersionPlatform; })));
buildInputs = lib.optionals stdenv.isLinux [
alsa-lib # libasound.so wanted by lib/libjsound.so
@@ -111,12 +109,6 @@ let
outputs = [ "out" "lib" ];
installPhase = let
- nativePRNGWorkaround = path: ''
- # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html
- substituteInPlace ${path} \
- --replace file:/dev/random file:/dev/./urandom \
- --replace NativePRNGBlocking SHA1PRNG
- '';
copyClibrariesToOut = basepath: ''
# provide libraries needed for static compilation
for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do
@@ -134,25 +126,30 @@ let
'';
in {
"11-linux-amd64" = ''
- ${nativePRNGWorkaround "$out/conf/security/java.security"}
+ ${copyClibrariesToOut "$out/lib/svm/clibraries"}
+ ${copyClibrariesToLib}
+ '';
+ "17-linux-amd64" = ''
${copyClibrariesToOut "$out/lib/svm/clibraries"}
${copyClibrariesToLib}
'';
"11-linux-aarch64" = ''
- ${nativePRNGWorkaround "$out/conf/security/java.security"}
-
${copyClibrariesToOut "$out/lib/svm/clibraries"}
${copyClibrariesToLib}
'';
- "11-darwin-amd64" = ''
- # create empty $lib/lib to avoid breaking builds
- mkdir -p $lib/lib
- ${nativePRNGWorkaround "$out/conf/security/java.security"}
+ "17-linux-aarch64" = ''
+ ${copyClibrariesToOut "$out/lib/svm/clibraries"}
+
+ ${copyClibrariesToLib}
'';
+ "11-darwin-amd64" = "";
+ "17-darwin-amd64" = "";
}.${javaVersionPlatform} + ''
+ # ensure that $lib/lib exists to avoid breaking builds
+ mkdir -p $lib/lib
# jni.h expects jni_md.h to be in the header search path.
ln -s $out/include/linux/*_md.h $out/include/
'';
@@ -237,9 +234,12 @@ let
}
echo "Testing TruffleRuby"
+ # Hide warnings about wrong locale
+ export LANG=C
+ export LC_ALL=C
$out/bin/ruby -e 'puts(1 + 1)'
-
- ${# TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
+ ${# FIXME: irb is broken in all platforms
+ # TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
# headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even
# though `openssl` is in `propagatedBuildInputs`. For more details see:
# https://github.com/NixOS/nixpkgs/pull/105815
@@ -252,7 +252,7 @@ let
echo '1 + 1' | $out/bin/irb
''
}
- '';
+ '';
passthru = {
home = graalvmXXX-ce;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/update.sh b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/update.sh
index ba063b2a96..c821c83a59 100755
--- a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/update.sh
+++ b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/update.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#!nix-shell -p curl -i bash coreutils nix common-updater-scripts curl jq
+#!nix-shell -p coreutils curl nix jq gnused -i bash
set -eou pipefail
@@ -13,18 +13,23 @@ verlte() {
[ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
}
-readonly old_version="$(cat version)"
+readonly nixpkgs=../../../../..
+
+readonly old_version="$(nix-instantiate "$nixpkgs" --eval --strict -A graalvm11-ce.version)"
if [[ -z "${1:-}" ]]; then
- readonly gh_version="$(curl -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | jq --raw-output .tag_name)"
+ readonly gh_version="$(curl \
+ ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+ -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | \
+ jq --raw-output .tag_name)"
readonly new_version="${gh_version//vm-/}"
else
readonly new_version="$1"
fi
-if verlte "$new_version" "$old_version"; then
- info "graalvm-ce $old_version is up-to-date. Exiting..."
- exit 0
+if verlte "$old_version" "$new_version"; then
+ info "graalvm-ce $old_version is up-to-date."
+ [[ -z "${FORCE:-}" ]] && exit 0
else
info "graalvm-ce $old_version is out-of-date. Updating..."
fi
@@ -39,8 +44,11 @@ readonly urls=(
readonly platforms=(
"11-linux-aarch64"
+ "17-linux-aarch64"
"11-linux-amd64"
+ "17-linux-amd64"
"11-darwin-amd64"
+ "17-darwin-amd64"
)
info "Deleting old hashes.nix file..."
@@ -66,7 +74,8 @@ done
echo_file "]"
-info "Updating 'version' file..."
-echo "$new_version" > version
+info "Updating graalvm-ce version..."
+# update-source-version does not work here since it expects src attribute
+sed "s|$old_version|\"$new_version\"|" -i default.nix
info "Done!"
diff --git a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/version b/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/version
deleted file mode 100644
index 54d3ad7364..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/graalvm/community-edition/version
+++ /dev/null
@@ -1 +0,0 @@
-21.3.0
diff --git a/third_party/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix b/third_party/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
index 1c40d7fe51..85332a9464 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -5,7 +5,8 @@
, runCommandLocal
, bison
, flex
-, llvmPackages_8
+, llvmPackages_11
+, lld_11
, opencl-clang
, python3
, spirv-llvm-translator
@@ -14,7 +15,13 @@
}:
let
- llvmPkgs = llvmPackages_8 // {
+ vc_intrinsics_src = fetchFromGitHub {
+ owner = "intel";
+ repo = "vc-intrinsics";
+ rev = "e5ad7e02aa4aa21a3cd7b3e5d1f3ec9b95f58872";
+ sha256 = "Vg1mngwpIQ3Tik0GgRXPG22lE4sLEAEFch492G2aIXs=";
+ };
+ llvmPkgs = llvmPackages_11 // {
inherit spirv-llvm-translator;
};
inherit (llvmPkgs) llvm;
@@ -24,18 +31,18 @@ in
stdenv.mkDerivation rec {
pname = "intel-graphics-compiler";
- version = "1.0.4241";
+ version = "1.0.8744";
src = fetchFromGitHub {
owner = "intel";
repo = "intel-graphics-compiler";
rev = "igc-${version}";
- sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
+ sha256 = "G5+dYD8uZDPkRyn1sgXsRngdq4NJndiCJCYTRXyUgTA=";
};
nativeBuildInputs = [ clang cmake bison flex python3 ];
- buildInputs = [ clang opencl-clang spirv-llvm-translator llvm ];
+ buildInputs = [ clang opencl-clang spirv-llvm-translator llvm lld_11 ];
strictDeps = true;
@@ -53,9 +60,12 @@ stdenv.mkDerivation rec {
ln -s clang $out/clang-${versions.major (getVersion clang)}
ln -s ${opencl-clang}/lib/* $out/
ln -s ${lib.getLib libclang}/lib/clang/${getVersion clang}/include/opencl-c.h $out/
+ ln -s ${lib.getLib libclang}/lib/clang/${getVersion clang}/include/opencl-c-base.h $out/
'';
cmakeFlags = [
+ "-DVC_INTRINSICS_SRC=${vc_intrinsics_src}"
+ "-DINSTALL_SPIRVDLL=0"
"-DCCLANG_BUILD_PREBUILDS=ON"
"-DCCLANG_BUILD_PREBUILDS_DIR=${prebuilds}"
"-DIGC_PREFERRED_LLVM_VERSION=${getVersion llvm}"
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh b/third_party/nixpkgs/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
index 4604b1fdea..68ba3ed3a9 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
+++ b/third_party/nixpkgs/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
@@ -8,43 +8,43 @@ function extract
case "$1" in
*.tar.xz)
- xz -dc $1 | tar "$tarflags" - ;;
- *)
- printf "Make sure you give a iPhoneOS9.2.sdk.tar.xz file \n" ;;
+ xz -dc $1 | tar "$tarflags" - ;;
+ *)
+ printf "Make sure you give a iPhoneOS9.2.sdk.tar.xz file \n" ;;
esac
}
function verify_arch {
case "$1" in
- # Our good arches.
- armv7|arm64) ;;
- *)
- local
- acc="armv7 | arm64"
- error_message=$(
- printf '%s is not an acceptable arch. Try one of %s' "$1" "$acc"
- )
- printf "$error_message\n"
- exit
+ # Our good arches.
+ armv7|arm64) ;;
+ *)
+ local
+ acc="armv7 | arm64"
+ error_message=$(
+ printf '%s is not an acceptable arch. Try one of %s' "$1" "$acc"
+ )
+ printf "$error_message\n"
+ exit
esac
}
function verify_sdk_version {
sdk_version=$(basename "$1" | grep -P -o "[0-9].[0-9]+")
case "$sdk_version" in
- # Make sure the SDK is correct.
- [5-9].[0-9]) ;;
- *)
- printf 'No iPhone SDK version in file name\n'
+ # Make sure the SDK is correct.
+ [5-9].[0-9]) ;;
+ *)
+ printf 'No iPhone SDK version in file name\n'
esac
}
function do_build {
if [ $# -lt 2 ]; then
- printf "usage: $0 iPhoneOS.sdk.tar* \n" 1>&2
- printf "i.e. $0 /path/to/iPhoneOS.sdk.tar.xz armv7\n" 1>&2
- exit 1
+ printf "usage: $0 iPhoneOS.sdk.tar* \n" 1>&2
+ printf "i.e. $0 /path/to/iPhoneOS.sdk.tar.xz armv7\n" 1>&2
+ exit 1
fi
mkdir -p $out
@@ -54,7 +54,7 @@ function do_build {
pushd "$cctools_port"/usage_examples/ios_toolchain &> /dev/null
export LC_ALL=C
-
+
local
triple='%s-apple-darwin11'
target_dir="$PWD/target"
@@ -75,12 +75,12 @@ function do_build {
extract "$1"
local sys_lib=$(
- find $sdk_dir -name libSystem.dylib -o -name libSystem.tbd | head -n1
- )
+ find $sdk_dir -name libSystem.dylib -o -name libSystem.tbd | head -n1
+ )
if [ -z "$sys_lib" ]; then
- printf "SDK should contain libSystem{.dylib,.tbd}\n" 1>&2
- exit 1
+ printf "SDK should contain libSystem{.dylib,.tbd}\n" 1>&2
+ exit 1
fi
local sys_root=$(readlink -f "$(dirname $sys_lib)/../..")
@@ -96,18 +96,18 @@ function do_build {
printf "int main(){return 0;}" | clang -xc -O2 -o "$target_dir"/bin/dsymutil -
clang -O2 -std=c99 $alt_wrapper \
- -DTARGET_CPU=$(printf '"%s"' "$2") \
- -DNIX_APPLE_HDRS=$(
- printf '"%s"' "-I$out/$sdk/usr/include"
- ) \
- -DNIX_APPLE_FRAMEWORKS=$(
- printf '"%s"' "$out/$sdk/System/Library/Frameworks"
- ) \
- -DNIX_APPLE_PRIV_FRAMEWORKS=$(
- printf '"%s"' "$out/$sdk/System/Library/PrivateFrameworks"
- ) \
- -DOS_VER_MIN=$(printf '"%s"' "7.1") \
- -o "$target_dir/bin/$triple-clang"
+ -DTARGET_CPU=$(printf '"%s"' "$2") \
+ -DNIX_APPLE_HDRS=$(
+ printf '"%s"' "-I$out/$sdk/usr/include"
+ ) \
+ -DNIX_APPLE_FRAMEWORKS=$(
+ printf '"%s"' "$out/$sdk/System/Library/Frameworks"
+ ) \
+ -DNIX_APPLE_PRIV_FRAMEWORKS=$(
+ printf '"%s"' "$out/$sdk/System/Library/PrivateFrameworks"
+ ) \
+ -DOS_VER_MIN=$(printf '"%s"' "7.1") \
+ -o "$target_dir/bin/$triple-clang"
pushd "$target_dir"/bin &>/dev/null
@@ -141,8 +141,8 @@ function do_build {
local me=`whoami`
for d in bin libexec SDK; do
- chown -R $me:$me target/$d
- cp -R target/$d $out
+ chown -R $me:$me target/$d
+ cp -R target/$d $out
done
# Crucial piece
diff --git a/third_party/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix b/third_party/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix
index ad6083a1ea..abd2235189 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix
@@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "julia-bin";
- version = "1.6.3";
+ version = "1.6.4";
src = {
x86_64-linux = fetchurl {
url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
- sha256 = "0jrijj9snfx70692z2301rjassvwjcsjbxdsjyif9hyp9hrrqif7";
+ sha256 = "0ci1dd8g1pgpp6j1v971zg8xpw120hdjblf9zcyhgs4pfvj4l92j";
};
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
'';
patches = [
# Source release Nix patch(es) relevant for binary releases as well.
- ./patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
./patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
];
postPatch = ''
@@ -62,7 +61,7 @@ stdenv.mkDerivation rec {
'';
meta = {
- description = "High-level, high-performance dynamic language for technical computing.";
+ description = "High-level, high-performance, dynamic language for technical computing";
homepage = "https://julialang.org";
# Bundled and linked with various GPL code, although Julia itself is MIT.
license = lib.licenses.gpl2Plus;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix b/third_party/nixpkgs/pkgs/development/compilers/julia/1.7-bin.nix
similarity index 54%
rename from third_party/nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix
rename to third_party/nixpkgs/pkgs/development/compilers/julia/1.7-bin.nix
index dfda8da9e4..0743fe3fdd 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/julia/1.7-bin.nix
@@ -1,43 +1,43 @@
-{ autoPatchelfHook, fetchurl, lib, makeWrapper, openssl, stdenv }:
+{ autoPatchelfHook, fetchurl, lib, stdenv }:
stdenv.mkDerivation rec {
pname = "julia-bin";
- version = "1.0.5";
+ version = "1.7.0";
src = {
x86_64-linux = fetchurl {
url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
- sha256 = "00vbszpjmz47nqy19v83xa463ajhzwanjyg5mvcfp9kvfw9xdvcx";
+ sha256 = "0h0d9kfg00vglg2qmcx0k8c2gzn445i0xbsfw6wy1idf72kg76bj";
};
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
# Julia’s source files are in different locations for source and binary
- # releases. Thus we temporarily create symlinks to allow us to share patches
+ # releases. Thus we temporarily create a symlink to allow us to share patches
# with source releases.
prePatch = ''
- ln -s share/julia/stdlib/v${lib.versions.majorMinor version} stdlib
ln -s share/julia/test
'';
patches = [
# Source release Nix patch(es) relevant for binary releases as well.
- ./patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
+ ./patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
];
postPatch = ''
# Revert symlink hack.
- rm stdlib test
+ rm test
+
+ # Julia fails to pick up our Certification Authority root certificates, but
+ # it provides its own so we can simply disable the test. Patching in the
+ # dynamic path to ours require us to rebuild the Julia system image.
+ substituteInPlace share/julia/stdlib/v${lib.versions.majorMinor version}/NetworkOptions/test/runtests.jl \
+ --replace '@test ca_roots_path() != bundled_ca_roots()' \
+ '@test_skip ca_roots_path() != bundled_ca_roots()'
'';
- buildInputs = [ makeWrapper ];
nativeBuildInputs = [ autoPatchelfHook ];
installPhase = ''
runHook preInstall
cp -r . $out
- # Setting `LD_LIBRARY_PATH` resolves `Libdl` failures. Not sure why this is
- # only necessary on v1.0.x and a cleaner solution is welcome, but after
- # staring at `strace` for a few hours this is as clean as I could make it.
- wrapProgram $out/bin/julia \
- --suffix LD_LIBRARY_PATH : $out/lib
runHook postInstall
'';
@@ -45,7 +45,6 @@ stdenv.mkDerivation rec {
dontStrip = true;
doInstallCheck = true;
- installCheckInputs = [ openssl ];
preInstallCheck = ''
# Some tests require read/write access to $HOME.
export HOME="$TMPDIR"
@@ -62,19 +61,11 @@ stdenv.mkDerivation rec {
'';
meta = {
- description = "High-level, high-performance dynamic language for technical computing";
+ description = "High-level, high-performance, dynamic language for technical computing";
homepage = "https://julialang.org";
# Bundled and linked with various GPL code, although Julia itself is MIT.
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ninjin raskin ];
platforms = [ "x86_64-linux" ];
- knownVulnerabilities = [
- # Built with libgit2 v0.27.2:
- # https://github.com/JuliaLang/julia/blob/e0837d1e64a9e4d17534a9f981e9a2a3f221356f/deps/libgit2.version
- # https://nvd.nist.gov/vuln/detail/CVE-2020-12278
- "CVE-2020-12278"
- # https://nvd.nist.gov/vuln/detail/CVE-2020-12279
- "CVE-2020-12279"
- ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch b/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
deleted file mode 100644
index 0de1f7c010..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 4954b99efae367da49412edd31a7bd832ec62c69 Mon Sep 17 00:00:00 2001
-From: Pontus Stenetorp
-Date: Mon, 15 Mar 2021 05:55:18 +0000
-Subject: [PATCH 2/3] nix: Skip tests that require network access
-
-Necessary as the Nix build sandbox does not permit network access.
----
- stdlib/Sockets/test/runtests.jl | 40 ++++++++++++++++-----------------
- test/file.jl | 4 ++--
- 2 files changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/stdlib/Sockets/test/runtests.jl b/stdlib/Sockets/test/runtests.jl
-index 6145f87616..9cc7a001e5 100644
---- a/stdlib/Sockets/test/runtests.jl
-+++ b/stdlib/Sockets/test/runtests.jl
-@@ -151,33 +151,33 @@ defaultport = rand(2000:4000)
- end
-
- @testset "getnameinfo on some unroutable IP addresses (RFC 5737)" begin
-- @test getnameinfo(ip"192.0.2.1") == "192.0.2.1"
-- @test getnameinfo(ip"198.51.100.1") == "198.51.100.1"
-- @test getnameinfo(ip"203.0.113.1") == "203.0.113.1"
-- @test getnameinfo(ip"0.1.1.1") == "0.1.1.1"
-- @test getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
-- @test getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
-- @test getnameinfo(ip"2001:db8::1") == "2001:db8::1"
-+ @test_skip getnameinfo(ip"192.0.2.1") == "192.0.2.1"
-+ @test_skip getnameinfo(ip"198.51.100.1") == "198.51.100.1"
-+ @test_skip getnameinfo(ip"203.0.113.1") == "203.0.113.1"
-+ @test_skip getnameinfo(ip"0.1.1.1") == "0.1.1.1"
-+ @test_skip getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
-+ @test_skip getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
-+ @test_skip getnameinfo(ip"2001:db8::1") == "2001:db8::1"
- end
-
- @testset "getnameinfo on some valid IP addresses" begin
- @test !isempty(getnameinfo(ip"::")::String)
-- @test !isempty(getnameinfo(ip"0.0.0.0")::String)
-- @test !isempty(getnameinfo(ip"10.1.0.0")::String)
-- @test !isempty(getnameinfo(ip"10.1.0.255")::String)
-- @test !isempty(getnameinfo(ip"10.1.255.1")::String)
-- @test !isempty(getnameinfo(ip"255.255.255.255")::String)
-- @test !isempty(getnameinfo(ip"255.255.255.0")::String)
-- @test !isempty(getnameinfo(ip"192.168.0.1")::String)
-- @test !isempty(getnameinfo(ip"::1")::String)
-+ @test_skip !isempty(getnameinfo(ip"0.0.0.0")::String)
-+ @test_skip !isempty(getnameinfo(ip"10.1.0.0")::String)
-+ @test_skip !isempty(getnameinfo(ip"10.1.0.255")::String)
-+ @test_skip !isempty(getnameinfo(ip"10.1.255.1")::String)
-+ @test_skip !isempty(getnameinfo(ip"255.255.255.255")::String)
-+ @test_skip !isempty(getnameinfo(ip"255.255.255.0")::String)
-+ @test_skip !isempty(getnameinfo(ip"192.168.0.1")::String)
-+ @test_skip !isempty(getnameinfo(ip"::1")::String)
- end
-
- @testset "getaddrinfo" begin
-- let localhost = getnameinfo(ip"127.0.0.1")::String
-- @test !isempty(localhost) && localhost != "127.0.0.1"
-- @test !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
-- @test getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
-- @test try
-+ let localhost = getnameinfo(ip"::")::String
-+ @test_skip !isempty(localhost) && localhost != "127.0.0.1"
-+ @test_skip !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
-+ @test_skip getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
-+ @test_skip try
- getaddrinfo(localhost, IPv6)::IPv6 != ip"::"
- catch ex
- isa(ex, Sockets.DNSError) && ex.code == Base.UV_EAI_NONAME && ex.host == localhost
-diff --git a/test/file.jl b/test/file.jl
-index e86476f975..579276f82c 100644
---- a/test/file.jl
-+++ b/test/file.jl
-@@ -874,8 +874,8 @@ if !Sys.iswindows() || (Sys.windows_version() >= Sys.WINDOWS_VISTA_VER)
- else
- @test_throws ErrorException symlink(file, "ba\0d")
- end
--@test_throws ArgumentError download("good", "ba\0d")
--@test_throws ArgumentError download("ba\0d", "good")
-+@test_skip @test_throws ArgumentError download("good", "ba\0d")
-+@test_skip @test_throws ArgumentError download("ba\0d", "good")
-
- ###################
- # walkdir #
---
-2.29.3
-
diff --git a/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch b/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
deleted file mode 100644
index d47efe25c5..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ffe227676352a910754d96d92e9b06e475f28ff1 Mon Sep 17 00:00:00 2001
-From: Pontus Stenetorp
-Date: Thu, 8 Apr 2021 04:25:19 +0000
-Subject: [PATCH 2/6] nix: Skip `tempname` test broken in sandbox
-
-Reported upstream:
-
- https://github.com/JuliaLang/julia/issues/38873
----
- test/file.jl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/test/file.jl b/test/file.jl
-index 0f39bc7c14..bd4dd78f62 100644
---- a/test/file.jl
-+++ b/test/file.jl
-@@ -95,7 +95,7 @@ end
- @test dirname(t) == tempdir()
- mktempdir() do d
- t = tempname(d)
-- @test dirname(t) == d
-+ @test_skip dirname(t) == d
- end
- @test_throws ArgumentError tempname(randstring())
- end
---
-2.29.3
-
diff --git a/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch b/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
new file mode 100644
index 0000000000..243a9cfd76
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
@@ -0,0 +1,30 @@
+From 44c2c979c4f2222567ce65f506cf47fb87482348 Mon Sep 17 00:00:00 2001
+From: Pontus Stenetorp
+Date: Thu, 8 Apr 2021 04:37:44 +0000
+Subject: [PATCH 5/6] nix: Enable parallel unit tests for sandbox
+
+Disabled by default due to lack of networking in the Nix sandbox. This
+greatly speeds up the build process on a multi-core system.
+---
+ test/runtests.jl | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/test/runtests.jl b/test/runtests.jl
+index 2f9cd058bb..2f8c19fa32 100644
+--- a/test/runtests.jl
++++ b/test/runtests.jl
+@@ -83,8 +83,9 @@ prepend!(tests, linalg_tests)
+ import LinearAlgebra
+ cd(@__DIR__) do
+ n = 1
+- if net_on
+- n = min(Sys.CPU_THREADS, length(tests))
++ if net_on || haskey(ENV, "NIX_BUILD_CORES")
++ x = haskey(ENV, "NIX_BUILD_CORES") ? parse(Int, ENV["NIX_BUILD_CORES"]) : Sys.CPU_THREADS
++ n = min(x, Sys.CPU_THREADS, length(tests))
+ n > 1 && addprocs_with_testenv(n)
+ LinearAlgebra.BLAS.set_num_threads(1)
+ end
+--
+2.29.3
+
diff --git a/third_party/nixpkgs/pkgs/development/compilers/kotlin/default.nix b/third_party/nixpkgs/pkgs/development/compilers/kotlin/default.nix
index 9f2efdb409..4a92fd87f2 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/kotlin/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "kotlin";
- version = "1.5.31";
+ version = "1.6.0";
src = fetchurl {
url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
- sha256 = "sha256-ZhERKG8+WsBqrzqUA9hp2alqF2tisUGBS+YmpHJJ/p4=";
+ sha256 = "sha256-F0yS4SpUwJAf2fC62s8VFMKLUZepVlTk2rF3UpPd4dw=";
};
propagatedBuildInputs = [ jre ] ;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/kotlin/native.nix b/third_party/nixpkgs/pkgs/development/compilers/kotlin/native.nix
index 13c7143461..b1a50cdcf4 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/kotlin/native.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/kotlin/native.nix
@@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
pname = "kotlin-native";
- version = "1.5.31";
+ version = "1.6.0";
src = let
getArch = {
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
"https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
getHash = arch: {
- "macos-aarch64" = "sha256-+9AF42AlPn1/8c14t8u+NN8FkoEmdt6tpmIKU9Rp2AM=";
- "macos-x86_64" = "sha256-/eciSo4Eps2TTsv1XU1Rlm+KBmgQT0MWp2s/OAYtGt4=";
- "linux-x86_64" = "sha256-Y2t+nlTu+j+h0oRneo7CJx0PmLAkqKYBJ+8go7rargM=";
+ "macos-aarch64" = "sha256-HLI6E3Y8l/5vAgjT39ezBCEYhCGV3pdjx1B1fL57qO4=";
+ "macos-x86_64" = "sha256-cJV+dP9/pJHlJx55HMqd7KC/OIWEzPXKmobCZLBZ+ec=";
+ "linux-x86_64" = "sha256-C5R2hdPg1cOA9WcSZYkN22Ca3/pslEcp554tuy/HxnQ=";
}.${arch};
in
fetchurl {
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
runHook preInstall
mkdir -p $out
+ rm bin/kotlinc
mv * $out
runHook postInstall
@@ -58,7 +59,7 @@ stdenv.mkDerivation rec {
standard library.
'';
license = lib.licenses.asl20;
- maintainers = with lib.maintainers; [ ];
+ maintainers = with lib.maintainers; [ fabianhjr ];
platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ldc/binary.nix b/third_party/nixpkgs/pkgs/development/compilers/ldc/binary.nix
index 7b43a2c2e8..05928d396c 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ldc/binary.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ldc/binary.nix
@@ -3,8 +3,8 @@
let
inherit (stdenv) hostPlatform;
- OS = if stdenv.hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
- ARCH = toString hostPlatform.parsed.cpu.name;
+ OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
+ ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name;
in stdenv.mkDerivation {
pname = "ldc-bootstrap";
inherit version;
@@ -37,6 +37,6 @@ in stdenv.mkDerivation {
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
maintainers = with maintainers; [ ThomasMader lionello ];
- platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ldc/bootstrap.nix b/third_party/nixpkgs/pkgs/development/compilers/ldc/bootstrap.nix
index fde4c84268..18c656b27f 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ldc/bootstrap.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ldc/bootstrap.nix
@@ -1,10 +1,11 @@
{ callPackage }:
callPackage ./binary.nix {
- version = "1.19.0";
+ version = "1.25.0";
hashes = {
# Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
- osx-x86_64 = "1bp3xkh9zp64dzq8isanib1gacb3nfbl70qv15qygwk1zan6zgy7";
- linux-x86_64 = "146grr2lwarfk13wgkpyb77xb6b3as1is2rf4s2hipqjmc8biy1h";
- linux-aarch64 = "1fv6jshfvi15m7masgxq1hgp216qjd5amizrqdf26vhrq3a08li3";
+ osx-x86_64 = "1xaqxf1lz8kdb0n5iycfpxpvabf1zy0akg14kg554sm85xnsf8pa";
+ linux-x86_64 = "1shzdq564jg3ga1hwrvpx30lpszc6pqndqndr5mqmc352znkiy5i";
+ linux-aarch64 = "04i4xxwhq02d98r3qrrnv5dbd4xr4d7ph3zv94z2m58z3vgphdjh";
+ osx-arm64 = "0b0cpgzn23clggx0cvdaja29q7w7ihkmjbnf1md03h9h5nzp9z1v";
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ldc/generic.nix b/third_party/nixpkgs/pkgs/development/compilers/ldc/generic.nix
index f79fb24a56..93ee83cb0a 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ldc/generic.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ldc/generic.nix
@@ -132,6 +132,6 @@ stdenv.mkDerivation rec {
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
maintainers = with maintainers; [ ThomasMader lionello ];
- platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/lingua-franca/default.nix b/third_party/nixpkgs/pkgs/development/compilers/lingua-franca/default.nix
new file mode 100644
index 0000000000..b843fd5e85
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/lingua-franca/default.nix
@@ -0,0 +1,41 @@
+{ lib, pkgs, stdenv, fetchFromGitHub, jdk11_headless }:
+
+stdenv.mkDerivation {
+ pname = "lfc";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "revol-xut";
+ repo = "lingua-franca-nix-releases";
+ rev = "11c6d5297cd63bf0b365a68c5ca31ec80083bd05";
+ sha256 = "DgxunzC8Ep0WdwChDHWgG5QJbJZ8UgQRXtP1HZqL9Jg=";
+ };
+
+ buildInputs = [ jdk11_headless ];
+
+ _JAVA_HOME = "${jdk11_headless}/";
+
+ postPatch = ''
+ substituteInPlace bin/lfc \
+ --replace 'base=`dirname $(dirname ''${abs_path})`' "base='$out'" \
+ --replace "run_lfc_with_args" "${jdk11_headless}/bin/java -jar $out/lib/jars/org.lflang.lfc-0.1.0-SNAPSHOT-all.jar"
+ '';
+
+ installPhase = ''
+ cp -r ./ $out/
+ chmod +x $out/bin/lfc
+ '';
+
+ meta = with lib; {
+ description = "Polyglot coordination language";
+ longDescription = ''
+ Lingua Franca (LF) is a polyglot coordination language for concurrent
+ and possibly time-sensitive applications ranging from low-level
+ embedded code to distributed cloud and edge applications.
+ '';
+ homepage = "https://github.com/lf-lang/lingua-franca";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ revol-xut ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix
index 93cdc7307d..30a2d016d6 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix
@@ -65,6 +65,28 @@ in stdenv.mkDerivation (rec {
sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
stripLen = 1;
})
+
+ # Fix missing includes for GCC 11
+ (fetchpatch {
+ name = "headers-gcc-11.patch";
+ url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
+ sha256 = "0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
+ stripLen = 1;
+ })
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
+ (fetchpatch {
+ name = "dfaemitter-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/0841916e87a39e3c223c986e8da31e4a9a1432e3.patch";
+ sha256 = "1kckghvsngs51mqm82asy0s9vr19h8aqbw43a0w44mccqw6bzrwf";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
index f0148850db..81ac4cb1ed 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -65,6 +65,26 @@ in stdenv.mkDerivation (rec {
sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
stripLen = 1;
})
+ # gcc-11 compat upstream patch
+ (fetchpatch {
+ url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
+ sha256 = "sha256:0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
+ stripLen = 1;
+ })
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
+ (fetchpatch {
+ name = "dfaemitter-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/0841916e87a39e3c223c986e8da31e4a9a1432e3.patch";
+ sha256 = "1kckghvsngs51mqm82asy0s9vr19h8aqbw43a0w44mccqw6bzrwf";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix
index 78c2831a2f..a775af3031 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix
@@ -44,6 +44,8 @@ let
];
postPatch = ''
+ (cd tools && ln -s ../../clang-tools-extra extra)
+
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
lib/Driver/ToolChains/*.cpp
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/13/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/13/default.nix
index 13be739671..6c87366ea3 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/13/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/13/default.nix
@@ -244,7 +244,12 @@ let
inherit llvm_meta;
stdenv = if stdenv.hostPlatform.useLLVM or false
then overrideCC stdenv buildLlvmTools.clangNoLibcxx
- else stdenv;
+ else (
+ # libcxx >= 13 does not build on gcc9
+ if stdenv.cc.isGNU && lib.versionOlder stdenv.cc.version "10"
+ then pkgs.gcc10Stdenv
+ else stdenv
+ );
};
libcxxabi = callPackage ./libcxxabi {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix
index a15bcc872a..957f29e449 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix
@@ -46,7 +46,8 @@ in stdenv.mkDerivation (rec {
buildInputs = [ libxml2 libffi ]
++ optional enablePFM libpfm; # exegesis
- propagatedBuildInputs = [ ncurses zlib ];
+ propagatedBuildInputs = optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ ncurses ]
+ ++ [ zlib ];
checkInputs = [ which ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix
index 6388cd65fb..fa99e275a6 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix
@@ -66,6 +66,14 @@ stdenv.mkDerivation ({
# stripLen = 1;
#})
./gnu-install-dirs.patch
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix
index 0907c89561..5925fab104 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix
@@ -64,6 +64,14 @@ stdenv.mkDerivation ({
sha256 = "0fxgrxmfnjx17w3lcq19rk68b2xksh1bynz3ina784kma7hp4wdb";
})
./gnu-install-dirs.patch
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix
index 1663b8c729..0bb76f9162 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix
@@ -1,4 +1,5 @@
{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
+, fetchpatch
, standalone ? stdenv.hostPlatform.useLLVM or false
, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
# on musl the shared objects don't build
@@ -21,6 +22,13 @@ stdenv.mkDerivation {
export TRIPLE=x86_64-apple-darwin
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
+ '' + lib.optionalString (!stdenv.cc.isClang) ''
+ pushd libcxx-*
+ patch -p2 < ${fetchpatch {
+ url = "https://github.com/llvm/llvm-project/commit/76ccec07b4fa0cc68dfd07d557e7fb661804a468.patch";
+ sha256 = "1lgzkfkp7qinfc6gd8x5di1iq1gqdv81249c6f02chn9q122sbq1";
+ }}
+ popd
'';
patches = [
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
index 4a9b4f5182..e4410bedf9 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -68,6 +68,14 @@ in stdenv.mkDerivation ({
sha256 = "0k6k1p5yisgwx417a67s7sr9930rqh1n0zv5jvply8vjjy4b3kf8";
})
./gnu-install-dirs.patch
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
index 6f14b375c6..8bb2293f81 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -63,6 +63,22 @@ in stdenv.mkDerivation ({
sha256 = "0rwx6jpqq4xnf4mvfm8v2d4r34y1yi05am0mx5k2d5bha9j64lqg";
})
./gnu-install-dirs.patch
+
+ # Fix missing includes for GCC 11
+ (fetchpatch {
+ name = "headers-gcc-11.patch";
+ url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
+ sha256 = "0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
+ stripLen = 1;
+ })
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
index e763d3e1e7..f8c474775e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -1,6 +1,7 @@
{ lib, stdenv, llvm_meta
, pkgsBuildBuild
, fetch
+, fetchpatch
, cmake
, python3
, libffi
@@ -60,6 +61,22 @@ in stdenv.mkDerivation (rec {
# Force a test to evaluate the saved benchmark for a CPU for which LLVM has
# an execution model. See NixOS/nixpkgs#119673.
../../exegesis-force-bdver2.patch
+
+ # Fix missing includes for GCC 11
+ (fetchpatch {
+ name = "headers-gcc-11.patch";
+ url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
+ sha256 = "0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
+ stripLen = 1;
+ })
+
+ # Fix invalid std::string(nullptr) for GCC 12
+ (fetchpatch {
+ name = "nvptx-gcc-12.patch";
+ url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
+ sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
+ stripLen = 1;
+ })
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
postPatch = optionalString stdenv.isDarwin ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix
index 78c2831a2f..a775af3031 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix
@@ -44,6 +44,8 @@ let
];
postPatch = ''
+ (cd tools && ln -s ../../clang-tools-extra extra)
+
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
lib/Driver/ToolChains/*.cpp
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix
index 129cc69bf6..06dfd1870b 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
'';
preCheck = ''
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
'';
postInstall = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/nextpnr/default.nix b/third_party/nixpkgs/pkgs/development/compilers/nextpnr/default.nix
index 07d301187a..ed64d9e6a6 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/nextpnr/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/nextpnr/default.nix
@@ -14,14 +14,14 @@ let
in
stdenv.mkDerivation rec {
pname = "nextpnr";
- version = "2021.09.27";
+ version = "2021.11.24"; # tagged as 0.1, but we'll keep tracking HEAD
srcs = [
(fetchFromGitHub {
owner = "YosysHQ";
repo = "nextpnr";
- rev = "9d8d3bdbc48133ff7758c9c5293e5904bc6e5ba7";
- sha256 = "sha256-5Axo8qX2+ATqQ170QqfhRwYfCRQLCKBW1kc89x9XljE=";
+ rev = "fd2d4a8f999947ece42f791e19ddc4c2d8b823f2";
+ sha256 = "sha256-bGh3svJeVRJO0rTnSYoTndeQrTENx6j9t+GCGX4RX4k=";
name = "nextpnr";
})
(fetchFromGitHub {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ocaml/ber-metaocaml.nix b/third_party/nixpkgs/pkgs/development/compilers/ocaml/ber-metaocaml.nix
index d3ab0d6e1c..895706312c 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ocaml/ber-metaocaml.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ocaml/ber-metaocaml.nix
@@ -4,7 +4,7 @@
}:
let
- useX11 = stdenv.isi686 || stdenv.isx86_64;
+ useX11 = stdenv.hostPlatform.isx86;
x11deps = [ libX11 xorgproto ];
inherit (lib) optionals;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ocaml/generic.nix b/third_party/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
index e4cec4cf52..ec52e56c1f 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
@@ -64,9 +64,15 @@ stdenv.mkDerivation (args // {
"-target ${stdenv.targetPlatform.config}"
];
dontAddStaticConfigureFlags = lib.versionOlder version "4.08";
- configurePlatforms = lib.optionals (lib.versionAtLeast version "4.08") [ "host" "target" ];
+
+ # on aarch64-darwin using --host and --target causes the build to invoke
+ # `aarch64-apple-darwin-clang` while using assembler. However, such binary
+ # does not exist. So, disable these configure flags on `aarch64-darwin`.
+ # See #144785 for details.
+ configurePlatforms = lib.optionals (lib.versionAtLeast version "4.08" && !(stdenv.isDarwin && stdenv.isAarch64)) [ "host" "target" ];
# x86_64-unknown-linux-musl-ld: -r and -pie may not be used together
- hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie";
+ hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie"
+ ++ lib.optionals (args ? hardeningDisable) args.hardeningDisable;
buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
buildInputs = optional (!lib.versionAtLeast version "4.07") ncurses
@@ -76,7 +82,7 @@ stdenv.mkDerivation (args // {
preConfigure = optionalString (!lib.versionAtLeast version "4.04") ''
CAT=$(type -tp cat)
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
- '' + optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+ '' + optionalString (stdenv.isDarwin && !lib.versionAtLeast version "4.13") ''
# Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176
# This is required for aarch64-darwin, everything else works as is.
AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c"
diff --git a/third_party/nixpkgs/pkgs/development/compilers/open-watcom-bin/default.nix b/third_party/nixpkgs/pkgs/development/compilers/open-watcom/bin.nix
similarity index 98%
rename from third_party/nixpkgs/pkgs/development/compilers/open-watcom-bin/default.nix
rename to third_party/nixpkgs/pkgs/development/compilers/open-watcom/bin.nix
index 9a1066dd3c..81d321c046 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/open-watcom-bin/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/open-watcom/bin.nix
@@ -87,6 +87,7 @@ in
stdenvNoCC.mkDerivation rec {
pname = "open-watcom-bin";
version = "1.9";
+ name = "${pname}-unwrapped-${version}";
src = fetchurl {
url = "http://ftp.openwatcom.org/install/open-watcom-c-linux-${version}";
diff --git a/third_party/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix b/third_party/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix
new file mode 100644
index 0000000000..da63df43d5
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix
@@ -0,0 +1,119 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+
+# Docs cause an immense increase in build time, up to 2 additional hours
+, withDocs ? false
+, dosbox
+, ghostscript
+, withGUI ? false
+}:
+
+stdenv.mkDerivation rec {
+ pname = "open-watcom-v2";
+ version = "unstable-2021-11-30";
+ name = "${pname}-unwrapped-${version}";
+
+ src = fetchFromGitHub {
+ owner = "open-watcom";
+ repo = "open-watcom-v2";
+ rev = "982c958eb4840e1c6a98773ba0600f652500f5a7";
+ sha256 = "18dp9nd1gjnpd1870149v67vzxbna25l6zi052z1r51xvaqwc3cx";
+ };
+
+ postPatch = ''
+ patchShebangs *.sh
+
+ for dateSource in cmnvars.sh bld/wipfc/configure; do
+ substituteInPlace $dateSource \
+ --replace '`date ' '`date -ud "@$SOURCE_DATE_EPOCH" '
+ done
+
+ substituteInPlace bld/watcom/h/banner.h \
+ --replace '__DATE__' "\"$(date -ud "@$SOURCE_DATE_EPOCH" +'%b %d %Y')\"" \
+ --replace '__TIME__' "\"$(date -ud "@$SOURCE_DATE_EPOCH" +'%T')\""
+
+ substituteInPlace build/makeinit \
+ --replace '%__CYEAR__' '%OWCYEAR'
+ '' + lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ substituteInPlace build/mif/local.mif \
+ --replace '-static' ""
+ '';
+
+ nativeBuildInputs = [ ]
+ ++ lib.optional (withDocs || withGUI) dosbox
+ ++ lib.optional withDocs ghostscript;
+
+ configurePhase = ''
+ runHook preConfigure
+
+ export OWROOT=$(realpath $PWD)
+ export OWTOOLS=${if stdenv.cc.isClang then "CLANG" else "GCC"}
+ export OWDOCBUILD=${if withDocs then "1" else "0"}
+ export OWGHOSTSCRIPTPATH=${lib.optionalString withDocs "${ghostscript}/bin"}
+ export OWGUINOBUILD=${if withGUI then "0" else "1"}
+ export OWNOBUILD=
+ export OWDISTRBUILD=0
+ export OWDOSBOX=${lib.optionalString (withDocs || withGUI) "${dosbox}/bin/dosbox"}
+ export OWVERBOSE=0
+ export OWRELROOT=$out
+
+ source cmnvars.sh
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ ./build.sh build
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ ./build.sh cprel
+
+ runHook postInstall
+ '';
+
+ # Stripping breaks many tools
+ dontStrip = true;
+
+ meta = with lib; {
+ description = "The v2 fork of the Open Watcom suite of compilers and tools";
+ longDescription = ''
+ A fork of Open Watcom: A C/C++/Fortran compiler and assembler suite
+ targeting a multitude of architectures (x86, IA-32, Alpha AXP, MIPS,
+ PowerPC) and operating systems (DOS, OS/2, Windows, Linux).
+
+ Main differences from Open Watcom 1.9:
+
+ - New two-phase build system - Open Watcom can be built by the host's
+ native C/C++ compiler or by itself
+ - Code generator properly initializes pointers by DLL symbol addresses
+ - DOS tools now support long file names (LFN) if appropriate LFN driver
+ is loaded by DOS
+ - Open Watcom is ported to 64-bit hosts (Win64, Linux x64)
+ - Librarian supports x64 CPU object modules and libraries
+ - RDOS 32-bit C run-time compact memory model libraries are fixed
+ - Resource compiler and Resource editors support Win64 executables
+ - Open Watcom text editor is now self-contained, it can be used as
+ standalone tool without any requirements for any additional files or
+ configuration
+ - Broken C++ compiler pre-compiled header template support is fixed
+ - Many C++ compiler crashes are fixed
+ - Debugger has no length limit for any used environment variable
+ '' + lib.optionalString (!withDocs) ''
+
+ The documentation has been excluded from this build for build time reasons. It can be found here:
+ https://github.com/open-watcom/open-watcom-v2/wiki/Open-Watcom-Documentation
+ '';
+ homepage = "https://open-watcom.github.io";
+ license = licenses.watcom;
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "x86_64-windows" "i686-windows" ];
+ maintainers = with maintainers; [ OPNA2608 ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/open-watcom/wrapper.nix b/third_party/nixpkgs/pkgs/development/compilers/open-watcom/wrapper.nix
new file mode 100644
index 0000000000..423ce4b264
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/open-watcom/wrapper.nix
@@ -0,0 +1,128 @@
+# Arguments that this derivation gets when it is created with `callPackage`
+{ stdenv
+, lib
+, symlinkJoin
+, makeWrapper
+, runCommand
+, file
+}:
+
+open-watcom:
+
+let
+ wrapper =
+ {}:
+ let
+ binDirs = with stdenv.hostPlatform; if isWindows then [
+ (lib.optionalString is64bit "binnt64")
+ "binnt"
+ (lib.optionalString is32bit "binw")
+ ] else if (isDarwin && is64bit) then [
+ "osx64"
+ ] else [
+ (lib.optionalString is64bit "binl64")
+ "binl"
+ ];
+ includeDirs = with stdenv.hostPlatform; [
+ "h"
+ ]
+ ++ lib.optional isWindows "h/nt"
+ ++ lib.optional isLinux "lh";
+ listToDirs = list: lib.strings.concatMapStringsSep ":" (dir: "${placeholder "out"}/${dir}") list;
+ name = "${open-watcom.pname}-${open-watcom.version}";
+ in
+ symlinkJoin {
+ inherit name;
+
+ paths = [ open-watcom ];
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ mkdir $out/bin
+
+ for binDir in ${lib.strings.concatStringsSep " " binDirs}; do
+ for exe in $(find ${open-watcom}/$binDir \
+ -type f -executable \
+ ${lib.optionalString stdenv.hostPlatform.isLinux "-not -iname '*.so' -not -iname '*.exe'"} \
+ ); do
+ if [ ! -f $out/bin/$(basename $exe) ]; then
+ makeWrapper $exe $out/bin/$(basename $exe) \
+ --set WATCOM ${open-watcom} \
+ --prefix PATH : ${listToDirs binDirs} \
+ --set EDPATH ${open-watcom}/eddat \
+ --set INCLUDE ${listToDirs includeDirs}
+ fi
+ done
+ done
+ '';
+
+ passthru = {
+ unwrapped = open-watcom;
+ tests = let
+ wrapped = wrapper { };
+ in {
+ simple = runCommand "${name}-test-simple" { nativeBuildInputs = [ wrapped ]; } ''
+ cat <test.c
+ #include
+ int main() {
+ printf ("Testing OpenWatcom C89 compiler.\n");
+ return 0;
+ }
+ EOF
+ cat test.c
+ # Darwin target not supported, only host
+ wcl386 -fe=test_c test.c
+ ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "./test_c"}
+
+ cat <test.cpp
+ #include
+ #include
+ int main() {
+ std::cout << "Testing OpenWatcom C++ library implementation." << std::endl;
+ watcom::istring HELLO ("HELLO");
+ if (HELLO != "hello") {
+ return 1;
+ }
+ if (HELLO.find ("ello") != 1) {
+ return 2;
+ }
+ return 0;
+ }
+ EOF
+ cat test.cpp
+ # Darwin target not supported, only host
+ wcl386 -fe=test_cpp test.cpp
+ ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "./test_cpp"}
+ touch $out
+ '';
+ cross = runCommand "${name}-test-cross" { nativeBuildInputs = [ wrapped file ]; } ''
+ cat <test.c
+ #include
+ int main() {
+ printf ("Testing OpenWatcom cross-compilation.\n");
+ return 0;
+ }
+ EOF
+ cat test.c
+
+ echo "Test compiling"
+ wcl386 -bcl=linux -fe=linux test.c
+ wcl386 -bcl=nt -fe=nt test.c
+ wcl386 -bcl=dos4g -fe=dos4g test.c
+ wcl -bcl=windows -fe=windows test.c
+ wcl -bcl=dos -fe=dos test.c
+
+ echo "Test file format"
+ file ./linux | grep "32-bit" | grep "Linux"
+ file ./nt.exe | grep "PE32" | grep "Windows"
+ file ./dos4g.exe | grep "MS-DOS" | grep "LE executable"
+ file ./windows.exe | grep "MS-DOS" | grep "Windows 3.x"
+ file ./dos.exe | grep "MS-DOS" | grep -v "LE" | grep -v "Windows 3.x"
+ touch $out
+ '';
+ };
+ };
+ };
+in
+lib.makeOverridable wrapper
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/11.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/11.nix
index 0f19b19b60..6f4b78286d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/11.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/11.nix
@@ -74,6 +74,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/12.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/12.nix
index 3bbe124773..8f2b6d4054 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/12.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/12.nix
@@ -83,6 +83,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
];
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/13.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/13.nix
index ed79ceafc5..7fb1c35cf9 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/13.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/13.nix
@@ -83,6 +83,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/14.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/14.nix
index 247cf941f0..29a5c3cc5c 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/14.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/14.nix
@@ -78,6 +78,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/15.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/15.nix
index d41a245c54..987d018cdf 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/15.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/15.nix
@@ -78,6 +78,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/16.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/16.nix
index df8a3a68f4..e6fd12a632 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/16.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/16.nix
@@ -84,6 +84,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/17.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/17.nix
index 857f7c75c1..757fe8f101 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/17.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/17.nix
@@ -86,6 +86,12 @@ let
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "images" ];
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/8.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/8.nix
index 7a69038d5e..8d68c2a601 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/8.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/8.nix
@@ -155,6 +155,12 @@ let
"-lgtk-x11-2.0" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
+ # -j flag is explicitly rejected by the build system:
+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
+ # Note: it does not make build sequential. Build system
+ # still runs in parallel.
+ enableParallelBuilding = false;
+
buildFlags = [ "all" ];
doCheck = false; # fails with "No rule to make target 'y'."
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/16.nix
similarity index 100%
rename from third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
rename to third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/16.nix
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/17.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/17.nix
new file mode 100644
index 0000000000..813702a2fb
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/darwin/17.nix
@@ -0,0 +1,81 @@
+{ lib, stdenv, fetchurl, unzip, setJavaClassPath }:
+let
+ # Details from https://www.azul.com/downloads/?version=java-17-lts&os=macos&package=jdk
+ # Note that the latest build may differ by platform
+ dist = {
+ x86_64-darwin = {
+ arch = "x64";
+ zuluVersion = "17.30.15";
+ jdkVersion = "17.0.1";
+ sha256 = "sha256-CdZP5XY3O0MUQigRvIQC+7dwAXaCKw4eK/L/imytEOs=";
+ };
+
+ aarch64-darwin = {
+ arch = "aarch64";
+ zuluVersion = "17.30.19";
+ jdkVersion = "17.0.1";
+ sha256 = "sha256-zhBCXOnO/fsj6+q+vAlEz7QVMRFKLVvYnjwZzFz6mRM=";
+ };
+ }."${stdenv.hostPlatform.system}";
+
+ jce-policies = fetchurl {
+ # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
+ url = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
+ sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
+ };
+
+ jdk = stdenv.mkDerivation rec {
+ pname = "zulu${dist.zuluVersion}-ca-jdk";
+ version = dist.jdkVersion;
+
+ src = fetchurl {
+ url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+ inherit (dist) sha256;
+ curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
+ };
+
+ nativeBuildInputs = [ unzip ];
+
+ installPhase = ''
+ mkdir -p $out
+ mv * $out
+
+ unzip ${jce-policies}
+ mv -f ZuluJCEPolicies/*.jar $out/lib/security/
+
+ # jni.h expects jni_md.h to be in the header search path.
+ ln -s $out/include/darwin/*_md.h $out/include/
+
+ if [ -f $out/LICENSE ]; then
+ install -D $out/LICENSE $out/share/zulu/LICENSE
+ rm $out/LICENSE
+ fi
+ '';
+
+ preFixup = ''
+ # Propagate the setJavaClassPath setup hook from the JDK so that
+ # any package that depends on the JDK has $CLASSPATH set up
+ # properly.
+ mkdir -p $out/nix-support
+ printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+ # Set JAVA_HOME automatically.
+ cat <> $out/nix-support/setup-hook
+ if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+ EOF
+ '';
+
+ # fixupPhase is moving the man to share/man which breaks it because it's a
+ # relative symlink.
+ postFixup = ''
+ ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
+ '';
+
+ passthru = {
+ home = jdk;
+ };
+
+ meta = import ./meta.nix lib;
+ };
+in
+jdk
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix
index 223a1921ef..e977d2b002 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, writeText, gradleGen, pkg-config, perl, cmake
+{ stdenv, lib, fetchurl, writeText, gradle_4, pkg-config, perl, cmake
, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg, python2, ruby
, openjdk11-bootstrap }:
@@ -7,9 +7,9 @@ let
update = ".0.3";
build = "1";
repover = "${major}${update}+${build}";
- gradle_ = (gradleGen.override {
+ gradle_ = (gradle_4.override {
java = openjdk11-bootstrap;
- }).gradle_4_10;
+ });
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}-${build}";
@@ -108,6 +108,9 @@ in makePackage {
passthru.deps = deps;
+ # Uses a lot of RAM, OOMs otherwise
+ requiredSystemFeatures = [ "big-parallel" ];
+
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix b/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
index c36cbaa03f..26c16895c5 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradleGen
+{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_5
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg, python3, ruby }:
@@ -7,9 +7,9 @@ let
update = ".0.1";
build = "+1";
repover = "${major}${update}${build}";
- gradle_ = (gradleGen.override {
+ gradle_ = (gradle_5.override {
java = openjdk11_headless;
- }).gradle_5_6;
+ });
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
diff --git a/third_party/nixpkgs/pkgs/development/compilers/pakcs/default.nix b/third_party/nixpkgs/pkgs/development/compilers/pakcs/default.nix
index e2dceaab39..a08a1b245d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/pakcs/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/pakcs/default.nix
@@ -16,14 +16,14 @@ let
curry-frontend = (haskellPackages.override {
overrides = self: super: {
- curry-base = haskell.lib.overrideCabal (super.callPackage ./curry-base.nix {}) (drv: {
+ curry-base = haskell.lib.compose.overrideCabal (drv: {
inherit src;
postUnpack = "sourceRoot+=/frontend/curry-base";
- });
- curry-frontend = haskell.lib.overrideCabal (super.callPackage ./curry-frontend.nix {}) (drv: {
+ }) (super.callPackage ./curry-base.nix {});
+ curry-frontend = haskell.lib.compose.overrideCabal (drv: {
inherit src;
postUnpack = "sourceRoot+=/frontend/curry-frontend";
- });
+ }) (super.callPackage ./curry-frontend.nix {});
};
}).curry-frontend;
in stdenv.mkDerivation {
diff --git a/third_party/nixpkgs/pkgs/development/compilers/qbe/default.nix b/third_party/nixpkgs/pkgs/development/compilers/qbe/default.nix
index 8f6ea0825f..fd6dea1cb1 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/qbe/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/qbe/default.nix
@@ -6,12 +6,12 @@
stdenv.mkDerivation rec {
pname = "qbe";
- version = "unstable-2021-10-26";
+ version = "unstable-2021-11-10";
src = fetchgit {
url = "git://c9x.me/qbe.git";
- rev = "900805a8fe5cfa799966c4ef221524e967c44ca5";
- sha256 = "sha256-ahUpG2JH3Ee6FUGfTYZZ2TLk5tF6ovvMxbsjZjVug2o=";
+ rev = "b0f16dad64d14f36ffe235b2e9cca96aa3ce35ba";
+ sha256 = "sha256-oPgr8PDxGNqIWxWsvVr9B8oN0Io/pUuzgIkZfY/qD+o=";
};
makeFlags = [ "PREFIX=$(out)" ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix b/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix
index dbc6f40a68..0937ff8bd8 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix
@@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
description = "Facebook's friendly syntax to OCaml";
license = licenses.mit;
inherit (ocaml.meta) platforms;
- maintainers = with maintainers; [ superherointj ];
+ maintainers = with maintainers; [ ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/roslyn/default.nix b/third_party/nixpkgs/pkgs/development/compilers/roslyn/default.nix
index f05b821676..df07eea54e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/roslyn/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/roslyn/default.nix
@@ -85,9 +85,6 @@ in stdenv.mkDerivation rec {
rm NuGet.config
install -m644 -D ${nuget-config} fake-home/.nuget/NuGet/NuGet.Config
ln -s ${packages}/lib/dotnet fake-home/.nuget/packages
- HOME=$(pwd)/fake-home dotnet add \
- src/NuGet/Microsoft.Net.Compilers.Toolset/Microsoft.Net.Compilers.Toolset.Package.csproj \
- package -n -v 5.10.0-preview.2.7169 nuget.build.tasks.pack
HOME=$(pwd)/fake-home dotnet msbuild -r -v:m -t:pack \
-p:Configuration=Release \
-p:RepositoryUrl="${meta.homepage}" \
diff --git a/third_party/nixpkgs/pkgs/development/compilers/roslyn/deps.nix b/third_party/nixpkgs/pkgs/development/compilers/roslyn/deps.nix
index 0ddd7e7cba..b08bd0740a 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/roslyn/deps.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/roslyn/deps.nix
@@ -137,10 +137,18 @@
}
{
name = "microsoft.netcore.app.host.linux-x64";
- version = "3.1.19";
+ version = "3.1.21";
src = fetchurl {
- url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.19/microsoft.netcore.app.host.linux-x64.3.1.19.nupkg";
- sha256 = "10fs93kg8vhhm1l05815m8yqz796i6gk824pk1bps239mshmkybr";
+ url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.21/microsoft.netcore.app.host.linux-x64.3.1.21.nupkg";
+ sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7";
+ };
+ }
+ {
+ name = "microsoft.netcore.app.host.linux-arm64";
+ version = "3.1.21";
+ src = fetchurl {
+ url = "https://globalcdn.nuget.org/packages/microsoft.netcore.app.host.linux-arm64.3.1.21.nupkg";
+ sha256 = "0mv79mv0g539437jy4cxvkic7iqgh2xs1nlpd8bzx7jha27g5mlr";
};
}
{
@@ -271,14 +279,6 @@
sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
};
}
- {
- name = "nuget.build.tasks.pack";
- version = "5.10.0-preview.2.7169";
- src = fetchurl {
- url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.build.tasks.pack/5.10.0-preview.2.7169/nuget.build.tasks.pack.5.10.0-preview.2.7169.nupkg";
- sha256 = "0siby8s8km50hfwvqx34nfnn9qwhygxlhw57wm1j5d22nf16kasb";
- };
- }
{
name = "richcodenav.envvardump";
version = "0.1.1643-alpha";
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/1_45.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/1_45.nix
deleted file mode 100644
index 2c695f1844..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/rust/1_45.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-# New rust versions should first go to staging.
-# Things to check after updating:
-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
-# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
-# This testing can be also done by other volunteers as part of the pull
-# request review, in case platforms cannot be covered.
-# 2. The LLVM version used for building should match with rust upstream.
-# 3. Firefox and Thunderbird should still build on x86_64-linux.
-
-{ stdenv, lib
-, buildPackages
-, newScope, callPackage
-, CoreFoundation, Security, SystemConfiguration
-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
-, makeRustPlatform
-, llvmPackages_5, llvm_10
-} @ args:
-
-import ./default.nix {
- rustcVersion = "1.45.2";
- rustcSha256 = "0273a1g3f59plyi1n0azf21qjzwml1yqdnj5z472crz37qggr8xp";
-
- llvmSharedForBuild = pkgsBuildBuild.llvmPackages_10.libllvm.override { enableSharedLibraries = true; };
- llvmSharedForHost = pkgsBuildHost.llvmPackages_10.libllvm.override { enableSharedLibraries = true; };
- llvmSharedForTarget = pkgsBuildTarget.llvmPackages_10.libllvm.override { enableSharedLibraries = true; };
-
- llvmBootstrapForDarwin = llvmPackages_5;
-
- # For use at runtime
- llvmShared = llvm_10.override { enableSharedLibraries = true; };
-
- # Note: the version MUST be one version prior to the version we're
- # building
- bootstrapVersion = "1.44.1";
-
- # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
- bootstrapHashes = {
- i686-unknown-linux-gnu = "e69689b0a1b66599cf83e7dd54f839419007e44376195e93e301a3175da3d854";
- x86_64-unknown-linux-gnu = "a41df89a461a580536aeb42755e43037556fba2e527dd13a1e1bb0749de28202";
- x86_64-unknown-linux-musl = "7eeef2b7488ee96015db10bc52c43f6e023debc9a955ccb8efb382522bf35be9";
- arm-unknown-linux-gnueabihf = "ea18ccdfb62a153c2d43d013fdec56993cc9267f1cdc6f3834df8a2b9b468f08";
- armv7-unknown-linux-gnueabihf = "d44294732cf268ea84908f1135f574ab9489132a332eaa9d5bda547374b15d54";
- aarch64-unknown-linux-gnu = "a2d74ebeec0b6778026b6c37814cdc91d14db3b0d8b6d69d036216f4d9cf7e49";
- x86_64-apple-darwin = "a5464e7bcbce9647607904a4afa8362382f1fc55d39e7bbaf4483ac00eb5d56a";
- powerpc64le-unknown-linux-gnu = "22deeca259459db31065af7c862fcab7fbfb623200520c65002ed2ba93d87ad2";
- };
-
- selectRustPackage = pkgs: pkgs.rust_1_45;
-
- rustcPatches = [
- ];
-}
-
-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_5" "llvm_10" ])
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/1_55.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/1_55.nix
deleted file mode 100644
index edd1f538e3..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/rust/1_55.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-# New rust versions should first go to staging.
-# Things to check after updating:
-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
-# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
-# This testing can be also done by other volunteers as part of the pull
-# request review, in case platforms cannot be covered.
-# 2. The LLVM version used for building should match with rust upstream.
-# Check the version number in the src/llvm-project git submodule in:
-# https://github.com/rust-lang/rust/blob//.gitmodules
-# 3. Firefox and Thunderbird should still build on x86_64-linux.
-
-{ stdenv, lib
-, buildPackages
-, newScope, callPackage
-, CoreFoundation, Security, SystemConfiguration
-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
-, makeRustPlatform
-, llvmPackages_11
-, llvmPackages_12, llvm_12
-} @ args:
-
-import ./default.nix {
- rustcVersion = "1.55.0";
- rustcSha256 = "07l28f7grdmi65naq71pbmvdd61hwcpi40ry7kp7dy7m233rldxj";
-
- llvmSharedForBuild = pkgsBuildBuild.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
- llvmSharedForHost = pkgsBuildHost.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
- llvmSharedForTarget = pkgsBuildTarget.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
-
- llvmBootstrapForDarwin = llvmPackages_11;
-
- # For use at runtime
- llvmShared = llvm_12.override { enableSharedLibraries = true; };
-
- # Note: the version MUST be one version prior to the version we're
- # building
- bootstrapVersion = "1.54.0";
-
- # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
- bootstrapHashes = {
- i686-unknown-linux-gnu = "1cd06090463711d50d98374ef52c1a84b9f4e3e35febaaef4890fb10536ceb3a";
- x86_64-unknown-linux-gnu = "350354495b1d4b6dd2ec7cf96aa9bc61d031951cf667a31e8cf401dc508639e6";
- x86_64-unknown-linux-musl = "3571db0018fcd32f3b579a32b2301826dbd1cce44b373aed8e8a31c2a6f52fe8";
- arm-unknown-linux-gnueabihf = "77f4e4c2195f75466c6de0b1d8fd7fb8cef3d12666e3aae777dcfd0d71d080ca";
- armv7-unknown-linux-gnueabihf = "dd01ccb6a53d5e895a6755a78c213ae601a347366688941d5c543b5af5835d6d";
- aarch64-unknown-linux-gnu = "33a50c5366a57aaab43c1c19e4a49ab7d8ffcd99a72925c315fb1f9389139e6f";
- aarch64-unknown-linux-musl = "49d94116a357ea13f5a3231de2472f59210028c3cf81f158b8a367c3155ac544";
- x86_64-apple-darwin = "5eb27a4f5f7a4699bc70cf1848e340ddd74e151488bfcb26853fd584958e3d33";
- aarch64-apple-darwin = "801b3b15b992b0321261de8b8ea2728e9a74822c6cb99bf978b34e217c7825ba";
- powerpc64le-unknown-linux-gnu = "67cadf7ac5bd2e3d5fb4baede69846059f17c4e099f771329b266d08b875ed71";
- riscv64gc-unknown-linux-gnu = "6113a6cce3500033d0dc0d170b54c5f22562ef3025fd58d804c822a2499c74d7";
- };
-
- selectRustPackage = pkgs: pkgs.rust_1_55;
-
- rustcPatches = [
- ];
-}
-
-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_12" "llvm_12"])
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/1_56.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/1_56.nix
new file mode 100644
index 0000000000..49df8bcd5e
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/rust/1_56.nix
@@ -0,0 +1,63 @@
+# New rust versions should first go to staging.
+# Things to check after updating:
+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
+# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
+# This testing can be also done by other volunteers as part of the pull
+# request review, in case platforms cannot be covered.
+# 2. The LLVM version used for building should match with rust upstream.
+# Check the version number in the src/llvm-project git submodule in:
+# https://github.com/rust-lang/rust/blob//.gitmodules
+# 3. Firefox and Thunderbird should still build on x86_64-linux.
+
+{ stdenv, lib
+, buildPackages
+, newScope, callPackage
+, CoreFoundation, Security, SystemConfiguration
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
+, makeRustPlatform
+, llvmPackages_11
+, llvmPackages_13, llvm_13
+} @ args:
+
+import ./default.nix {
+ rustcVersion = "1.56.1";
+ rustcSha256 = "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3";
+
+ llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
+ llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
+ llvmSharedForTarget = pkgsBuildTarget.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
+
+ llvmBootstrapForDarwin = llvmPackages_11;
+
+ # For use at runtime
+ llvmShared = llvm_13.override { enableSharedLibraries = true; };
+
+ # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
+ llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_13;
+
+ # Note: the version MUST be one version prior to the version we're
+ # building
+ bootstrapVersion = "1.55.0";
+
+ # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
+ bootstrapHashes = {
+ i686-unknown-linux-gnu = "6e42b6c44d2eb4170f4144423fa3c33338d8d5c3ea00b03bbac200c877bc9e98";
+ x86_64-unknown-linux-gnu = "2080253a2ec36ac8ed6e060d30802d888533124b8d16545cfd4af898b365eaac";
+ x86_64-unknown-linux-musl = "f24f68587253c4bfbe59d3d10fe4897068d9130538de6b2d02097a25718030c2";
+ arm-unknown-linux-gnueabihf = "483444153d35cda51c6aec2c24bc4c97fa4fd30b28df4b60bf9763bd6e06da3a";
+ armv7-unknown-linux-gnueabihf = "8c72f0eb75b10db970fb546c3b41f5e97df294d5dbbf0b8fa96e17f2b281ee9c";
+ aarch64-unknown-linux-gnu = "eebdb2e659ed14884a49f0457d44e5e8c9f89fca3414533752c6dbb96232c156";
+ aarch64-unknown-linux-musl = "2ce36a7d34f1f2aa43b4cbc0b437d96eefb45743828bf9ae699ff581ae257f28";
+ x86_64-apple-darwin = "2e345ac7724c192c9487a2c6bd4f6c52c884d791981510288830d27d9a0bf2f3";
+ aarch64-apple-darwin = "70c71d30d0de76912fcd88d503a6cb4323cfe6250c1a255be7e0d4e644b3d40a";
+ powerpc64le-unknown-linux-gnu = "12bf6447d338cbe2b55539b84e6369b17e7eefe938d1ba7e3dd69781c9cc9812";
+ riscv64gc-unknown-linux-gnu = "effceb45346fef3b0b54b357336e6f374f788b803bb1bee4084f25eace8907f3";
+ };
+
+ selectRustPackage = pkgs: pkgs.rust_1_56;
+
+ rustcPatches = [
+ ];
+}
+
+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_13" "llvm_13"])
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/default.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/default.nix
index 7912055db6..6dfc8a4906 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/rust/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/rust/default.nix
@@ -10,6 +10,7 @@
, llvmSharedForBuild
, llvmSharedForHost
, llvmSharedForTarget
+, llvmPackagesForBuild # Exposed through rustc for LTO in Firefox
}:
{ stdenv, lib
, buildPackages
@@ -17,39 +18,17 @@
, CoreFoundation, Security, SystemConfiguration
, pkgsBuildTarget, pkgsBuildBuild
, makeRustPlatform
-}: rec {
- # https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch
- toTargetArch = platform:
- if platform.isAarch32 then "arm"
- else platform.parsed.cpu.name;
+}:
- # https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
- toTargetOs = platform:
- if platform.isDarwin then "macos"
- else platform.parsed.kernel.name;
+let
+ # Use `import` to make sure no packages sneak in here.
+ lib' = import ../../../build-support/rust/lib { inherit lib; };
+in
+{
+ lib = lib';
- # Returns the name of the rust target, even if it is custom. Adjustments are
- # because rust has slightly different naming conventions than we do.
- toRustTarget = platform: with platform.parsed; let
- cpu_ = platform.rustc.platform.arch or {
- "armv7a" = "armv7";
- "armv7l" = "armv7";
- "armv6l" = "arm";
- "armv5tel" = "armv5te";
- "riscv64" = "riscv64gc";
- }.${cpu.name} or cpu.name;
- vendor_ = platform.rustc.platform.vendor or {
- "w64" = "pc";
- }.${vendor.name} or vendor.name;
- in platform.rustc.config
- or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
-
- # Returns the name of the rust target if it is standard, or the json file
- # containing the custom target spec.
- toRustTargetSpec = platform:
- if (platform.rustc or {}) ? platform
- then builtins.toFile (toRustTarget platform + ".json") (builtins.toJSON platform.rustc.platform)
- else toRustTarget platform;
+ # Backwards compat before `lib` was factored out.
+ inherit (lib') toTargetArch toTargetOs toRustTarget toRustTargetSpec;
# This just contains tools for now. But it would conceivably contain
# libraries too, say if we picked some default/recommended versions from
@@ -85,7 +64,7 @@
version = rustcVersion;
sha256 = rustcSha256;
inherit enableRustcDev;
- inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget;
+ inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackagesForBuild;
patches = rustcPatches;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
index baa29064e2..f479b05201 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
@@ -7,12 +7,12 @@ rec {
inherit rustc cargo;
};
- fetchCargoTarball = buildPackages.callPackage ../../../build-support/rust/fetchCargoTarball.nix {
+ fetchCargoTarball = buildPackages.callPackage ../../../build-support/rust/fetch-cargo-tarball {
git = buildPackages.gitMinimal;
- inherit stdenv cargo;
+ inherit cargo;
};
- buildRustPackage = callPackage ../../../build-support/rust {
+ buildRustPackage = callPackage ../../../build-support/rust/build-rust-package {
git = buildPackages.gitMinimal;
inherit stdenv cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook
fetchCargoTarball importCargoLock rustc;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/rust-src.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/rust-src.nix
index 489795ecec..4239e92b03 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/rust/rust-src.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/rust/rust-src.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustc, minimalContent ? true }:
+{ lib, stdenv, rustc, minimalContent ? true }:
stdenv.mkDerivation {
name = "rust-src";
@@ -6,9 +6,20 @@ stdenv.mkDerivation {
phases = [ "unpackPhase" "installPhase" ];
installPhase = ''
mv src $out
- rm -rf $out/{${if minimalContent
- then "ci,doc,etc,grammar,llvm-project,llvm-emscripten,rtstartup,rustllvm,test,tools,vendor,stdarch"
- else "ci,doc,etc,grammar,llvm-project,llvm-emscripten,rtstartup,rustllvm,test,vendor"
- }}
+ rm -rf $out/{${lib.concatStringsSep "," ([
+ "ci"
+ "doc"
+ "etc"
+ "grammar"
+ "llvm-project"
+ "llvm-emscripten"
+ "rtstartup"
+ "rustllvm"
+ "test"
+ "vendor"
+ ] ++ lib.optionals minimalContent [
+ "tools"
+ "stdarch"
+ ])}}
'';
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/rust/rustc.nix b/third_party/nixpkgs/pkgs/development/compilers/rust/rustc.nix
index dae9440924..187127cfbf 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/rust/rustc.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/rust/rustc.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
-, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget
+, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackagesForBuild
, fetchurl, file, python3
, darwin, cmake, rust, rustPlatform
, pkg-config, openssl
@@ -174,7 +174,10 @@ in stdenv.mkDerivation rec {
requiredSystemFeatures = [ "big-parallel" ];
- passthru.llvm = llvmShared;
+ passthru = {
+ llvm = llvmShared;
+ llvmPackages = llvmPackagesForBuild;
+ };
meta = with lib; {
homepage = "https://www.rust-lang.org/";
diff --git a/third_party/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix b/third_party/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
index b421fe5d2e..b4ca255339 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
@@ -16,10 +16,10 @@ let platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
in
stdenv.mkDerivation rec {
pname = "sagittarius-scheme";
- version = "0.9.7";
+ version = "0.9.8";
src = fetchurl {
url = "https://bitbucket.org/ktakashi/${pname}/downloads/sagittarius-${version}.tar.gz";
- sha256 = "18pjj6f5qvixv5hbl1k4d3jqfcmi9qyx0gz0cjwrzpxa8brpwld8";
+ sha256 = "sha256-CdnBpTq+c04JdipfhIiI8EkVFsCc00Gh+cA5zYENMqI=";
};
preBuild = ''
# since we lack rpath during build, need to explicitly add build path
diff --git a/third_party/nixpkgs/pkgs/development/compilers/sbcl/2.1.10.nix b/third_party/nixpkgs/pkgs/development/compilers/sbcl/2.1.10.nix
new file mode 100644
index 0000000000..8cf6f50b58
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/sbcl/2.1.10.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+ version = "2.1.10";
+ sha256 = "0f5ihj486m7ghh3nc0jlnqa656sbqcmhdv32syz2rjx5b47ky67b";
+}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/sbcl/common.nix b/third_party/nixpkgs/pkgs/development/compilers/sbcl/common.nix
index d2450315eb..9cfb38109f 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/sbcl/common.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/sbcl/common.nix
@@ -2,8 +2,8 @@
{ lib, stdenv, fetchurl, fetchpatch, writeText, sbclBootstrap
, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
-, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system || "aarch64-darwin" == stdenv.hostPlatform.system)
-, linkableRuntime ? (stdenv.isi686 || stdenv.isx86_64)
+, threadSupport ? (stdenv.hostPlatform.isx86 || "aarch64-linux" == stdenv.hostPlatform.system || "aarch64-darwin" == stdenv.hostPlatform.system)
+, linkableRuntime ? stdenv.hostPlatform.isx86
, disableImmobileSpace ? false
# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
# Note that the created binaries still need `patchelf --set-interpreter ...`
diff --git a/third_party/nixpkgs/pkgs/development/compilers/scala-runners/default.nix b/third_party/nixpkgs/pkgs/development/compilers/scala-runners/default.nix
index 0f0de015af..57756b423d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/scala-runners/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/scala-runners/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
dontBuild = true;
installPhase = ''
mkdir -p $out/bin $out/lib
- sed -ie "s| cs | ${coursier}/bin/coursier |" scala-runner
+ sed -ie "s| cs | ${coursier}/bin/cs |" scala-runner
cp scala-runner $out/lib
ln -s $out/lib/scala-runner $out/bin/scala
ln -s $out/lib/scala-runner $out/bin/scalac
diff --git a/third_party/nixpkgs/pkgs/development/compilers/scala/2.x.nix b/third_party/nixpkgs/pkgs/development/compilers/scala/2.x.nix
index 571aeb0cc3..f39ab7ed68 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/scala/2.x.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/scala/2.x.nix
@@ -26,8 +26,8 @@ let
};
"2.13" = {
- version = "2.13.6";
- sha256 = "Sd+SUDzRHMPGSWg9s2jlh4t+eS5AFW0jd+UjJuk17UM=";
+ version = "2.13.7";
+ sha256 = "FO8WAIeGvHs3E1soS+YkUHcB9lE5bRb9ikijWkvOqU4=";
pname = "scala_2_13";
};
};
diff --git a/third_party/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix b/third_party/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
index 05d1ead1fb..b954fdbe1e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
@@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, makeWrapper, jre, ncurses }:
stdenv.mkDerivation rec {
- version = "3.0.0";
+ version = "3.1.0";
pname = "dotty-bare";
src = fetchurl {
url = "https://github.com/lampepfl/dotty/releases/download/${version}/scala3-${version}.tar.gz";
- sha256 = "/F2yv4XH0I3oC3IFqj+jwpzShCtTEfTzg+J26Xl+P+Y=";
+ sha256 = "9bsZ2FtIb6AvA3W3r2Vv0dPNicuYjMBz3X48z45Avv8=";
};
propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/seexpr/default.nix b/third_party/nixpkgs/pkgs/development/compilers/seexpr/default.nix
index 5dfa08c457..f13ec5174d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/seexpr/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/seexpr/default.nix
@@ -1,22 +1,35 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libpng, zlib, qt4,
-bison, flex, libGLU, python2Packages
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libpng
+, zlib
+, qt4
+, bison
+, flex
+, libGLU
+, python3Packages
}:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "seexpr";
- version = "2.11";
+ version = "3.0.1";
+
src = fetchFromGitHub {
- owner = "wdas";
- repo = "SeExpr";
- rev = "v2.11";
- sha256 = "0a44k56jf6dl36fwgg4zpc252wq5lf9cblg74mp73k82hxw439l4";
+ owner = "wdas";
+ repo = "SeExpr";
+ rev = "v${version}";
+ sha256 = "sha256-r6mgyb/FGz4KYZOgLDgmIqjO+PSmneD3KUWjymZXtEk=";
};
+ cmakeFlags = [ "-DENABLE_SSE4=OFF" ];
+
nativeBuildInputs = [ cmake ];
- buildInputs = [ libGLU libpng zlib qt4 python2Packages.pyqt4 bison flex ];
+ buildInputs = [ libGLU libpng zlib qt4 python3Packages.pyqt4 python3Packages.boost bison flex ];
+
meta = with lib; {
description = "Embeddable expression evaluation engine from Disney Animation";
- homepage = "https://www.disneyanimation.com/technology/seexpr.html";
+ homepage = "https://wdas.github.io/SeExpr/";
maintainers = with maintainers; [ hodapp ];
license = licenses.asl20;
platforms = platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/shaderc/default.nix b/third_party/nixpkgs/pkgs/development/compilers/shaderc/default.nix
index 40c216d79c..ae9d0f8810 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/shaderc/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/shaderc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3 }:
+{ lib, stdenv, fetchFromGitHub, cmake, darwin, python3 }:
# Like many google projects, shaderc doesn't gracefully support separately compiled dependencies, so we can't easily use
# the versions of glslang and spirv-tools used by vulkan-loader. Exact revisions are taken from
# https://github.com/google/shaderc/blob/known-good/known_good.json
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
ln -s ${spirv-headers} third_party/spirv-tools/external/spirv-headers
'';
- nativeBuildInputs = [ cmake python3 ];
+ nativeBuildInputs = [ cmake python3 ] ++ lib.optionals stdenv.isDarwin [ darwin.cctools ];
postInstall = ''
moveToOutput "lib/*.a" $static
@@ -53,6 +53,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
inherit (src.meta) homepage;
description = "A collection of tools, libraries and tests for shader compilation";
+ platforms = platforms.all;
license = [ licenses.asl20 ];
};
}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/souffle/default.nix b/third_party/nixpkgs/pkgs/development/compilers/souffle/default.nix
index e57062642b..dada4dfe9e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/souffle/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/souffle/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
, perl, ncurses, zlib, sqlite, libffi
, autoreconfHook, mcpp, bison, flex, doxygen, graphviz
, makeWrapper
@@ -19,6 +19,16 @@ stdenv.mkDerivation rec {
sha256 = "1fa6yssgndrln8qbbw2j7j199glxp63irfrz1c2y424rq82mm2r5";
};
+ patches = [
+ # Pull pending unstream inclusion fix for ncurses-6.3:
+ # https://github.com/souffle-lang/souffle/pull/2134
+ (fetchpatch {
+ name = "ncurses-6.3.patch";
+ url = "https://github.com/souffle-lang/souffle/commit/9e4bdf86d051ef2e1b1a1be64aff7e498fd5dd20.patch";
+ sha256 = "0jw1b6qfdf49dx2qlzn1b2yzrgpnkil4w9y3as1m28w8ws7iphpa";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook bison flex mcpp doxygen graphviz makeWrapper perl ];
buildInputs = [ ncurses zlib sqlite libffi ];
@@ -29,7 +39,7 @@ stdenv.mkDerivation rec {
# see 565a8e73e80a1bedbb6cc037209c39d631fc393f and parent commits upstream for
# Wno-error fixes
- patchPhase = ''
+ postPatch = ''
substituteInPlace ./src/Makefile.am \
--replace '-Werror' '-Werror -Wno-error=deprecated -Wno-error=other'
diff --git a/third_party/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix b/third_party/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
index e4549a7d65..0dff7f0e1b 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
@@ -2,29 +2,30 @@
, fetchFromGitHub
, cmake
, pkg-config
-
, lit
-, llvm_8
+, llvm_11
}:
stdenv.mkDerivation rec {
pname = "SPIRV-LLVM-Translator";
- version = "8.0.1-2";
+ version = "unstable-2021-06-13";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-LLVM-Translator";
- rev = "v${version}";
- sha256 = "0hxalc3fkliqs61hpr97phbm3qsx4b8vgnlg30aimzr6aas403r5";
+ rev = "c67e6f26a7285aa753598ef792593ac4a545adf9";
+ sha256 = "sha256-1s3lVNTQDl+pUvbzSMsp3cOUSm6I4DzqJxnLMeeE3F4=";
};
- nativeBuildInputs = [ pkg-config cmake llvm_8.dev ];
+ nativeBuildInputs = [ pkg-config cmake llvm_11.dev ];
- buildInputs = [ llvm_8 ];
+ buildInputs = [ llvm_11 ];
checkInputs = [ lit ];
- cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=ON" ];
+ cmakeFlags = [
+ "-DLLVM_INCLUDE_TESTS=ON"
+ ];
# FIXME: CMake tries to run "/llvm-lit" which of course doesn't exist
doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/vala/default.nix b/third_party/nixpkgs/pkgs/development/compilers/vala/default.nix
index ba64e53876..76f13ec689 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/vala/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/vala/default.nix
@@ -28,18 +28,8 @@ let
# 0.40.12: https://github.com/openembedded/openembedded-core/raw/8553c52f174af4c8c433c543f806f5ed5c1ec48c/meta/recipes-devtools/vala/vala/disable-graphviz.patch
"0.40" = ./disable-graphviz-0.40.12.patch;
- # NOTE: the openembedded-core project doesn't have a patch for 0.44.1
- # We've reverted the addition of the "--disable-valadoc" option
- # and then applied the following patch.
- # 0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch
- "0.44" = ./disable-graphviz-0.44.3.patch;
-
- "0.46" = ./disable-graphviz-0.46.1.patch;
-
"0.48" = ./disable-graphviz-0.46.1.patch;
- "0.50" = ./disable-graphviz-0.46.1.patch;
-
"0.52" = ./disable-graphviz-0.46.1.patch;
"0.54" = ./disable-graphviz-0.46.1.patch;
@@ -113,29 +103,19 @@ in rec {
sha256 = "1pxpack8rrmywlf47v440hc6rv3vi8q9c6niwqnwikxvb2pwf3w7";
};
- vala_0_46 = generic {
- version = "0.46.13";
- sha256 = "0d7l4vh2xra3q75kw3sy2d9bn5p6s3g3r7j37bdn6ir8l3wp2ivs";
- };
-
vala_0_48 = generic {
- version = "0.48.19";
- sha256 = "sha256-gLdlijfZhE/NG0Mdr8WATeYWpYGW5PHxGeWyrraLSgE=";
- };
-
- vala_0_50 = generic {
- version = "0.50.10";
- sha256 = "sha256-vnIf8/AYHqttM+zKzygfZvMI+qHl5VTwj99nFZpFlRU=";
+ version = "0.48.20";
+ sha256 = "sha256-RrHIF/dIUfvMOV/E+eoRlQLPh7kzPMllbhzczAvTN24=";
};
vala_0_52 = generic {
- version = "0.52.5";
- sha256 = "sha256-hKG7MSs+Xcrkt7JcRVmNN14stpIzzvtZoV0jUMdr3ZE=";
+ version = "0.52.8";
+ sha256 = "sha256-d3t9HLVnFewyJUXQEw5/9Y2eem0b2WtuKX6eYOgRh5M=";
};
vala_0_54 = generic {
- version = "0.54.1";
- sha256 = "0jlhd6hr9mai7hhc2c78w6zmnzf7xncp7fhyiavkqqzhhsn7gpjx";
+ version = "0.54.2";
+ sha256 = "iE3nRTF9TVbk6M7emT3I8E1Qz8o2z2DS8vJ4wwwrExE=";
};
vala = vala_0_54;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch b/third_party/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
deleted file mode 100644
index fc971c2649..0000000000
--- a/third_party/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index f70234759..b3d6c3833 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -13,19 +13,9 @@ SUBDIRS = \
- doc \
- gobject-introspection \
- vapigen \
-- $(NULL)
--
--if ENABLE_VALADOC
--SUBDIRS += \
- libvaladoc \
- valadoc \
- $(NULL)
--endif
--
--DISTCHECK_CONFIGURE_FLAGS = \
-- --enable-valadoc \
-- --enable-unversioned \
-- $(NULL)
-
- if ENABLE_UNVERSIONED
- aclocaldir = $(datadir)/aclocal
-diff --git a/configure.ac b/configure.ac
-index 504db13aa..622397747 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS)
- AC_SUBST(GMODULE_LIBS)
-
- AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check)
--AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
--if test x$enable_valadoc = xyes; then
-+AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
-+if test x$enable_graphviz = xyes; then
- PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
- AC_MSG_CHECKING([for CGRAPH])
-+ VALAFLAGS="$VALAFLAGS -D HAVE_GRAPHVIZ"
- cgraph_tmp_LIBADD="$LIBADD"
- cgraph_tmp_CFLAGS="$CFLAGS"
- LIBADD="$LIBADD $LIBGVC_LIBS"
-@@ -198,8 +199,8 @@ if test x$enable_valadoc = xyes; then
- LIBADD="$cgraph_tmp_LIBADD"
- CFLAGS="$cgraph_tmp_CFLAGS"
- fi
-+AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes)
- AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
--AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
-
- AC_PATH_PROG([XSLTPROC], [xsltproc], :)
- AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index d2684a0e0..b343c7c10 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -6,16 +6,11 @@ SUBDIRS = \
-
- dist_man_MANS = \
- valac.1 \
-+ valadoc.1 \
- vala-gen-introspect.1 \
- vapigen.1 \
- $(NULL)
-
--if ENABLE_VALADOC
--dist_man_MANS += \
-- valadoc.1 \
-- $(NULL)
--endif
--
- EXTRA_DIST = \
- valac.h2m \
- valadoc.h2m \
-@@ -24,11 +19,7 @@ EXTRA_DIST = \
- $(NULL)
-
- if HAVE_HELP2MAN
--if ENABLE_VALADOC
- manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
--else
--manpages: valac.1 vala-gen-introspect.1 vapigen.1
--endif
- @rm $^
- $(MAKE) $(AM_MAKEFLAGS) $^
-
-@@ -37,13 +28,11 @@ valac.1:
- --include $(srcdir)/valac.h2m \
- --libtool --no-info \
- --output=$@
--if ENABLE_VALADOC
- valadoc.1:
- $(HELP2MAN) $(top_builddir)/valadoc/valadoc \
- --include $(srcdir)/valadoc.h2m \
- --libtool --no-info \
- --output=$@
--endif
- vala-gen-introspect.1:
- $(HELP2MAN) $(top_builddir)/gobject-introspection/gen-introspect \
- --include $(srcdir)/vala-gen-introspect.h2m \
-@@ -60,15 +49,12 @@ endif
- if ENABLE_UNVERSIONED
- install-data-hook:
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f valac@PACKAGE_SUFFIX@.1 valac.1
--if ENABLE_VALADOC
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f valadoc@PACKAGE_SUFFIX@.1 valadoc.1
--endif
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
- endif
-
-
--if ENABLE_VALADOC
- COMMON_VALADOCFLAGS = \
- --force \
- --verbose \
-@@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
- @touch $@
-
- internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
--endif
-
- clean-local:
- rm -rf $(builddir)/internal-apis
-diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
-index 7456fb836..107338e91 100644
---- a/libvaladoc/Makefile.am
-+++ b/libvaladoc/Makefile.am
-@@ -119,10 +119,6 @@ libvaladoc_la_VALASOURCES = \
- content/tablerow.vala \
- content/taglet.vala \
- content/text.vala \
-- charts/chart.vala \
-- charts/chartfactory.vala \
-- charts/hierarchychart.vala \
-- charts/simplechartfactory.vala \
- parser/manyrule.vala \
- parser/oneofrule.vala \
- parser/optionalrule.vala \
-@@ -149,13 +145,24 @@ libvaladoc_la_VALASOURCES = \
- highlighter/codetoken.vala \
- highlighter/highlighter.vala \
- html/basicdoclet.vala \
-- html/htmlchartfactory.vala \
- html/linkhelper.vala \
- html/cssclassresolver.vala \
- html/htmlmarkupwriter.vala \
- html/htmlrenderer.vala \
- $(NULL)
-
-+if ENABLE_GRAPHVIZ
-+libvaladoc_la_VALASOURCES += \
-+ charts/chart.vala \
-+ charts/chartfactory.vala \
-+ charts/hierarchychart.vala \
-+ charts/simplechartfactory.vala \
-+ html/htmlchartfactory.vala \
-+ $(NULL)
-+
-+LIBGVC_PKG = --vapidir $(top_srcdir)/vapi --pkg libgvc
-+endif
-+
- libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \
- libvaladoc.vala.stamp \
- $(libvaladoc_la_VALASOURCES:.vala=.c) \
-@@ -175,11 +182,11 @@ libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES)
- --library valadoc \
- --vapi valadoc@PACKAGE_SUFFIX@.vapi \
- --vapidir $(top_srcdir)/vapi --pkg gmodule-2.0 \
-- --vapidir $(top_srcdir)/vapi --pkg libgvc \
- --vapidir $(top_srcdir)/gee --pkg gee \
- --vapidir $(top_srcdir)/vala --pkg vala \
- --vapidir $(top_srcdir)/ccode --pkg ccode \
- --vapidir $(top_srcdir)/codegen --pkg codegen \
-+ $(LIBGVC_PKG) \
- --pkg config \
- $(filter %.vala %.c,$^)
- touch $@
-@@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc
-
- valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc
- cp $< $@
-+if !ENABLE_GRAPHVIZ
-+ sed -i "s/libgvc //g" $@
-+endif
-
- vapidir = $(datadir)/vala/vapi
- dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi
-@@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps
-
- valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps
- cp $< $@
-+if !ENABLE_GRAPHVIZ
-+ sed -i "s/libgvc//g" $@
-+endif
-
- EXTRA_DIST = \
- $(libvaladoc_la_VALASOURCES) \
-diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala
-index 46578c28f..f6ce7097c 100644
---- a/libvaladoc/html/basicdoclet.vala
-+++ b/libvaladoc/html/basicdoclet.vala
-@@ -46,7 +46,11 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- protected HtmlRenderer _renderer;
- protected Html.MarkupWriter writer;
- protected Html.CssClassResolver cssresolver;
-+#if HAVE_GRAPHVIZ
- protected Charts.Factory image_factory;
-+#else
-+ protected void* image_factory;
-+#endif
- protected ErrorReporter reporter;
- protected string package_list_link = "../index.html";
-
-@@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- this.linker = new LinkHelper ();
-
- _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
-+#if HAVE_GRAPHVIZ
- this.image_factory = new SimpleChartFactory (settings, linker);
-+#endif
- }
-
-
-@@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- }
-
- protected void write_image_block (Api.Node element) {
-+#if HAVE_GRAPHVIZ
- if (element is Class || element is Interface || element is Struct) {
- unowned string format = (settings.use_svg_images ? "svg" : "png");
- var chart = new Charts.Hierarchy (image_factory, element);
-@@ -1044,6 +1051,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- this.get_img_path_html (element, format)});
- writer.add_usemap (chart);
- }
-+#endif
- }
-
- public void write_namespace_content (Namespace node, Api.Node? parent) {
-diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala
-index 5aa4afdea..e79b0b8f5 100644
---- a/libvaladoc/html/htmlmarkupwriter.vala
-+++ b/libvaladoc/html/htmlmarkupwriter.vala
-@@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter {
- }
- }
-
-+#if HAVE_GRAPHVIZ
- public unowned MarkupWriter add_usemap (Charts.Chart chart) {
- string? buf = (string?) chart.write_buffer ("cmapx");
- if (buf != null) {
- raw_text ("\n");
- raw_text ((!) buf);
- }
-+#else
-+ public unowned MarkupWriter add_usemap (void* chart) {
-+#endif
-
- return this;
- }
diff --git a/third_party/nixpkgs/pkgs/development/compilers/yosys/default.nix b/third_party/nixpkgs/pkgs/development/compilers/yosys/default.nix
index f2624d1241..4101f06a34 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/yosys/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/yosys/default.nix
@@ -34,13 +34,13 @@
stdenv.mkDerivation rec {
pname = "yosys";
- version = "0.10+1";
+ version = "0.11+52";
src = fetchFromGitHub {
- owner = "YosysHQ";
- repo = "yosys";
- rev = "7a7df9a3b4996b17bb774377483b15de49aa3d9b";
- sha256 = "sha256-gi/Q6loIQ75NTbS9b/Q8sdrl9NGBDae2+AAGHVYB0WI=";
+ owner = "YosysHQ";
+ repo = "yosys";
+ rev = "2be110cb0ba645f95f62ee01b6a6fa46a85d5b26";
+ hash = "sha256-A1QKu6SbtpJJPF8/LA5SMUP3/+n5giM6rOYdc6vkl90=";
};
enableParallelBuilding = true;
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
patches = [
./plugin-search-dirs.patch
+ ./fix-clang-build.patch # see https://github.com/YosysHQ/yosys/issues/2011
];
postPatch = ''
@@ -104,12 +105,5 @@ stdenv.mkDerivation rec {
license = licenses.isc;
platforms = platforms.all;
maintainers = with maintainers; [ shell thoughtpolice emily ];
- #In file included from kernel/driver.cc:20:
- #./kernel/yosys.h:42:10: fatal error: 'map' file not found
- ##include